Data Sources & Methodology

Last reviewed: 3 September 2026
Transparency level: Full methodology disclosed
Live sources right now: 9 active and producing data, 8 with tenders seen in the last 25 hours, out of 10 registered in the scraper registry.

Overview

TenderWatch aggregates public-sector procurement data from official national and EU-level sources. All data ingested into TenderWatch originates from publicly accessible feeds published by government bodies under their transparency obligations. We do not scrape private systems, internal procurement portals, or anything behind authentication.

We believe transparency in methodology outweighs any external certification badge for our use case. This page documents exactly where data comes from, how often it's refreshed, how it's validated, and how to report errors.

Active data sources

1. PLACSP — Plataforma de Contratación del Sector Público (Spain)

Source details: PLACSP
URLcontrataciondelsectorpublico.gob.es
FormatAtom 1.0 / RSS feed (XML)
Update frequencyHourly
CoverageAll Spanish central government, regional (CCAA), and local administration tenders
Legal basisLey 9/2017 de Contratos del Sector Público (transposición de Directivas UE 2014/24/EU y 2014/25/EU)
Fields extractedTitle, description, expediente ID, buyer (organismo), NUTS region, estimated value, currency, publication date, deadline, source URL

2. TED — Tenders Electronic Daily (EU)

Source details: TED
URLted.europa.eu
FormateForms XML (since 2023) + legacy PDF/HTML
Update frequencyDaily (Mon–Fri)
CoverageEU public procurement above threshold (€5.4M works, €143k supplies/services) and below-threshold voluntary notices
Legal basisDirective 2014/24/EU on public procurement; EU Official Journal (TED publishes in OJ S)
Fields extractedTitle, description, buyer name + country, CPV code, estimated value, currency, publication date, deadline, source URL

FTS — Find a Tender Service (United Kingdom)

Source details: FTS
URLfind-tender.service.gov.uk
FormatOCDS (Open Contracting Data Standard) JSON
Update frequencyDaily (planned; currently intermittent due to upstream rate limits)
CoverageUK central government tenders (post-Brexit equivalent of OJEU/TED for UK)
Legal basisUK Procurement Act 2023 (in force from 28 October 2024); Public Contracts Regulations 2015 (transitional)
Fields extractedTitle, description, buyer name, estimated value (GBP), publication date, deadline, OCDS release JSON URL
StatusBeta. FTS ingestion is currently intermittent — see upstream status. UK tenders may appear with delay.

4. TenderNed (Netherlands)

Source details: TenderNed
URLtenderned.nl
FormatJSON API (paginated) + Atom RSS fallback
Update frequencyHourly (round-robin)
CoverageAll Dutch central, regional and municipal government tenders (above + below threshold)
Legal basisEU Directives 2014/24/EU, 2014/25/EU (Netherlands is EU member)
Fields extractedTitle, buyer name, procedure, type of contract (works/services/supplies), publication date, deadline, link to detail page
StatusLive since 2026-09-08. ~25 new tenders per fetch.

5. BOAMP (France)

Source details: BOAMP
URLboamp.fr
FormatJSON (Opendatasoft API)
Update frequencyHourly (round-robin)
CoverageAll French public tenders above + below threshold (1.5M+ historic records in catalog)
Legal basisCode de la commande publique (transposition of EU Directives)
Fields extractedTitle (objet), buyer, procedure type, department code, publication date, response deadline, awarded supplier if any
StatusLive since 2026-09-08. Filtered to last 7 days on each run.

6. Doffin (Norway)

Source details: Doffin
URLdoffin.no
FormatJSON API (Doffin REST)
Update frequencyHourly (round-robin)
CoverageNorwegian public sector and EEA tenders. Norwegian + English.
Legal basisNorwegian Public Procurement Act (Lov om offentlige anskaffelser)
Fields extractedTitle, buyer, procedure type, publication date, response deadline, source URL
StatusLive — producing data on every scheduled run.

7. Sell2Wales (Wales, United Kingdom)

Source details: Sell2Wales
URLsell2wales.gov.wales
FormatOCDS / JSON open data
Update frequencyHourly (round-robin)
CoverageWelsh Government, 22 unitary authorities, NHS Wales, universities, Welsh police and utilities.
Legal basisPublic Procurement (England, Wales and Scotland) Regulations 2015; Welsh Government open data duty
Fields extractedTitle, buyer (organisation), notice type, publication date, response deadline, value, source URL
StatusLive — producing data on every scheduled run.

8. Public Contracts Scotland (Scotland, United Kingdom)

Source details: Public Contracts Scotland
URLpubliccontractsscotland.gov.uk
FormatJSON API
Update frequencyHourly (round-robin)
CoverageScottish Government, 32 unitary authorities, NHS Scotland, universities, Scottish police.
Legal basisPublic Contracts (Scotland) Regulations 2006
Fields extractedTitle, buyer, notice type, publication date, response deadline, source URL
StatusLive — producing data on every scheduled run.

9. Simap (Switzerland)

Source details: Simap
URLsimap.ch
FormatXML / REST
Update frequencyRegistered — currently not in the active rotation
CoverageSwiss Confederation and 26 cantons. German, French, Italian and English.
Legal basisSwiss Federal Act on Public Procurement (APG / CPA)
Fields extractedTitle, buyer, notice type, publication date, response deadline, source URL
StatusRegistered in the scraper registry. Its last successful run is older than the current freshness window, so it is not counted as a fresh source.

10. IMO (International Maritime Organization)

Source details: IMO
URLimo.org
FormatHTML listing
Update frequencyRegistered — currently not in the active rotation
CoverageIMO procurement notices (maritime and international organisations).
Legal basisIMO procurement regulations; public tender notices under UN procurement rules
Fields extractedTitle, description, reference, publication date, response deadline, source URL
StatusRegistered in the scraper registry. Its last successful run is older than the current freshness window, so it is not counted as a fresh source.

Fase 2 — Roadmap (verified sources, not yet ingested)

Estas fuentes están verificadas y operativas pero aún no integradas al pipeline automático de TenderWatch. Requieren browser automation (Playwright/nodriver) o registro oficial. Sprint separado tras validar el round-robin Tier A.

🇬🇧 Reino Unido (devolved + sector público)

UK additional sources (roadmap)
eTendersNIetendersni.gov.uk — Northern Ireland Executive + 11 councils + NI Housing Executive + NI Water.
MOD Defence Contractscontracts.mod.uk — licitaciones del Ministerio de Defensa UK.
NHS Supply Chainsupplychain.nhs.uk — framework agreements NHS.
Contracts Finder (legacy)contractsfinder.service.gov.uk — central gov below-threshold.

🇪🇺 UE + EEE + Suiza

EU/EEA additional sources (roadmap)
HILMA (Finlandia)hankintailmoitukset.fi — Hansel Oy + todas las administraciones finlandesas. CSV/Atom feed (gratuito).
Vergabeplattformen (Alemania)service.bund.de/vergabeplattformen — federación + 16 Länder. Heterogéneo, requiere agregación multi-fuente.
Portal BASE (Portugal)base.gov.pt — open data Open Contracting CSV. PT.
Udbudsportalen (Dinamarca)udbudsportalen.dk — todas las licitaciones públicas danesas. DA + EN.
eTenders (Irlanda)etenders.gov.ie — Office of Government Procurement + sector público irlandés. EN.

Para una guía paso-a-paso de cómo registrarse como proveedor en cada uno de estos portales, ver Cómo registrarse como proveedor.

Methodology

Collection pipeline

  1. Fetch: Cron-triggered scrapers download source feeds (HTTP GET, no authentication).
  2. Parse: XML/JSON parsed into canonical Tender records (source, source_id, title, description, buyer, value, dates, URL).
  3. PII redaction: Before any text is processed by an LLM, PII is stripped (emails, phones, names, expediente IDs). Redacted text is never shown to users — only LLM summaries are.
  4. LLM summarisation: Each tender is summarised in Spanish (peninsular strict) and British English (en-GB). Summaries are stored separately and tagged by source.
  5. Deduplication: Same tender across sources is linked via normalised source_id; canonical record is kept.
  6. Index: Indexed for fast search (MySQL FULLTEXT on title + description).

Update cadence

  • PLACSP: Every hour. ~50–200 new tenders per run.
  • TED: Once per business day (Mon–Fri), 07:00 UTC.
  • FTS: Once per business day (Mon–Fri), 08:00 UTC. Intermittent due to upstream throttling.

Validation

Every ingested tender is validated against the following checks:

  • URL reachable: Source URL must return HTTP 200 at scrape time.
  • Required fields: source_id, title, buyer_country, source_url must be present and non-empty.
  • Title length: Between 10 and 500 characters (anything outside this range is rejected or cleaned).
  • Date sanity: deadline_date must be after publication_date and not more than 5 years in the future.
  • Value sanity: estimated_value ≥ 0 and < €10 billion (anti-typo).

Error reporting

If you find an error in a tender (wrong title, broken source URL, outdated data):

  • Email: tickets@libertydreams.co.uk
  • Include the tender URL and a description of the issue.
  • We aim to investigate within 2 business days and correct the source pipeline (not just the display).

Licensing and reuse

All data ingested by TenderWatch is sourced from public-sector feeds published under national and EU transparency legislation. TenderWatch holds no proprietary rights over the underlying data; we provide value through aggregation, multilingual summarisation, and search.

Reuse by third parties: If you wish to reuse TenderWatch data (e.g. for journalism, research, or another service), please contact tickets@libertydreams.co.uk. Bulk export is available to enterprise customers via API.

What TenderWatch extracts vs what it does not

For each scraped tender, TenderWatch extracts only the descriptive and administrative fields of the notice: official title, technical description of the contract object, contracting body name, country, CPV code, procedure type, estimated value, publication date, submission deadline, official language, canonical URL of the source notice, and the full raw payload (in the internal raw field, kept for traceability).

TenderWatch does NOT extract direct identification or contact fields of the procurement officer (contact-point name, personal email, direct telephone, fax). These fields stay at the public source and never travel to our database, nor to the AI provider we use to generate summaries.

Empirical analysis (sample of 260 TED notices + 6 full XMLs, October 2026): 0.0% of examined tenders carry identifiable PII within scraped fields. This property is preserved by an automated regression test (tests/test_pii_regression.py) which asserts that no scraper promotes PII fields into the Tender model.

Historial del catálogo de fuentes

  • 2026-09-03: Source catalogue documented; methodology page first published.
  • 2026-09-01: PII redaction pipeline verified; LLM summary language enforcement (Spanish peninsular strict, British English en-GB).
  • 2026-08-25: PLACSP parser fix for Atom feed (corrected corruption of expediente IDs in description field).
  • 2026-08-15: PLACSP, TED, FTS scrapers deployed.

Nota: TenderWatch no mantiene un changelog público de producto (decisión §13). Este historial documenta únicamente cambios al catálogo de fuentes scrapeadas; las novedades operativas se reportan solo internamente al equipo.

Gestionar cookies