CoolFace
Datasetpublic

jaydem/eu-contract-awards

EU Public Contract Awards Every public contract award published in the Supplement to the Official Journal of the European Union over the last twelve months: 374,443 awards, with the buyer, the winning company, the sector, and the value converted to euro. The European Union publishes this. It is free, and it is served by an API that needs no key. Almost nobody uses it, because getting from that API to a table you can work with takes a day of unpleasant work: the values arrive in… See the full description on the dataset page: https://huggingface.co/datasets/jaydem/eu-contract-awards.

sourceHugging Facecc-by-4.0updated 24d agoView on Hugging Face
0likes86downloads
Dataset Card

EU Public Contract Awards

Every public contract award published in the Supplement to the Official Journal of the European Union over the last twelve months: 374,443 awards, with the buyer, the winning company, the sector, and the value converted to euro.

The European Union publishes this. It is free, and it is served by an API that needs no key. Almost nobody uses it, because getting from that API to a table you can work with takes a day of unpleasant work: the values arrive in twenty currencies, the names arrive as multilingual dictionaries, and a handful of the numbers are wrong in ways that quietly ruin any total. That work is what this dataset is.

What is in it

ColumnWhat it holds
notice_idTED publication number, e.g. 503333-2025
publishedDate the award notice appeared
notice_typecan-standard, can-social, can-desg, can-tran
buyerThe contracting authority
buyer_country, buyer_country_nameISO-3 code and its name
cpv_main, cpv_main_labelMain CPV code, and what it means in words
cpv_divisionsThe two-digit CPV divisions, space separated
contract_natureworks, supplies or services
winnerThe company that won it
winner_countries, winner_countWhere the winners are, and how many
value, currencyAs published, in the buyer's own currency
value_eurConverted to euro at the ECB rate on the publication date
value_sourceWhich TED field the figure came from — see below
value_qualityok, implausible, or none
titleThe notice title, in English where TED provides one
ted_urlThe official notice, which is always the authority

Read this before you sum anything

Country totals are not comparable. Reporting conventions differ, and the difference is enormous. The median Swedish award in this data is €4,000,000; the median German one is €226,236. Sweden is not buying eighteen times bigger: Swedish authorities publish the ceiling of a framework agreement, German ones publish what the contract was actually worth. The thousand largest rows account for 39% of the total value in the file. Counts and per-country medians are sound. Cross-country sums are not, and anyone quoting a single headline figure for "the size of EU procurement" from this file is quoting an artefact.

`value_source` matters. TED carries up to three different values per notice, and they mean different things: the tender value, the value stated for the notice as a whole, and the buyer's pre-tender estimate. value_eur falls back through them in that order, and value_source records which one it used. In the last twelve months: 80% tender_value, 6% estimated_value, under 1% notice_value, and 13% with no value published at all.

168 values in the full archive are simply wrong. One German notice records a contract worth €74,654,684,654,465,482,752. These are typing mistakes by the authority, not mega-projects. They are kept exactly as published, because the notice is a public record and altering it would be worse — but they are marked value_quality = implausible so a single one cannot wreck your average. Filter on value_quality = ok unless you have a reason not to.

Load `cpv_main` as text, not as a number. 2.8% of CPV codes begin with a zero — 03111700 is vegetable seeds — and any tool that guesses the column is an integer will silently turn that into 3111700 and break every join against the CPV vocabulary. The column is declared as a string in this card, so the Hugging Face viewer and datasets get it right; in pandas, pass dtype={"cpv_main": str}.

`-1` and `0` mean "not disclosed", not zero. TED uses them as sentinels. They are reported here as an absent value, not as a contract worth nothing.

How it was built

POST https://api.ted.europa.eu/v3/notices/search with scope: ALL, one month at a time, taking the four award notice types. Multilingual fields flattened to English where available. Euro conversion at the European Central Bank's daily reference rate for the publication date, or the most recent rate before it when the notice fell on a weekend.

The code is open: <https://github.com/jaydemks/bidledger> — scripts/awards.py, scripts/enrich_awards.py, scripts/export_awards.py. You can rebuild this from scratch in about an hour, and you should, if you need to be certain of it.

Coverage

Twelve months, 374,443 awards. 90% name a winner; 87% carry a usable value. Germany, Poland, France, Spain, Czechia and Romania supply the most notices.

The two-year archive

This file is the last twelve months, and it is free for good. If you need the run before it — 719,960 awards from August 2024, twice the history, refreshed monthly for a year — that version is sold to pay for the work:

https://bidledger.gumroad.com/l/eu-contract-awards

Nothing is held back from the free file to make the paid one look better: it is the same pipeline, the same columns, the same documentation, over a longer period. And the source is public either way — the code above rebuilds all of it in about an hour if you would rather spend the hour than the money. That is a fair trade to state plainly rather than hide.

Licence and attribution

Data from Tenders Electronic Daily, the supplement to the Official Journal of the European Union, re-used under the European Commission's open data policy (Decision 2011/833/EU), which permits commercial re-use with attribution. This packaging is released under CC BY 4.0.

This is an independent project. It is not affiliated with, endorsed by, or operated by the European Union or any contracting authority. TED remains the authoritative source, and every row links back to it.