EU Public Procurement Market Stats (TED)
Pricing
$10.00 / 1,000 segment rows
EU Public Procurement Market Stats (TED)
Turn EU contract award notices from TED into market statistics per country, CPV sector, month or buyer: award value, median contract size, bids per tender, single-bid share, SME and cross-border win rates.
Pricing
$10.00 / 1,000 segment rows
Rating
0.0
(0)
Developer
Kayorama
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Most TED scrapers give you a pile of notices. This Actor gives you the numbers you would otherwise build in a spreadsheet from that pile: how much was awarded in a sector and country, what a typical contract is worth, how many companies bid, how often only one bid came in, and how often SMEs or foreign suppliers win.
It reads contract award notices and new calls for tender from the official TED Search API (Tenders Electronic Daily, the EU's public procurement journal) and returns one row per market segment.
Who it is for
- Bid teams deciding which countries and sectors are worth entering
- Consultancies writing market sizing or go-to-market notes for public sector clients
- Researchers and journalists looking at competition in public buying (single-bid rates are a common red-flag indicator)
- Anyone who wants a monthly view of a market without reading thousands of notices
What you get per row
| Field | What it means |
|---|---|
segment | The group, for example POL / 72 (Poland, IT services) or 2026-09 |
cpvDivisionLabel | Plain name of the CPV division |
awardNotices | Contract award notices published in the period |
totalAwardValueEur | Sum of the notice values, converted to EUR |
medianAwardValueEur, p90AwardValueEur, largestAwardValueEur | Typical, large and largest award |
avgTendersPerAward | Average number of tenders received |
singleBidSharePct | Share of awards where only one tender came in |
openProcedureSharePct | Share of awards run as an open procedure |
smeWinnerSharePct | Share of winning suppliers flagged as micro, small or medium |
crossBorderAwardSharePct | Share of awards with a winner from another country |
competitionNotices | New calls for tender in the same segment and period |
topBuyers | Biggest contracting authorities by awarded value |
A run summary (matched vs analysed notices, exchange rate date, top segments) is saved in the key-value store as SUMMARY.
Example input
{"cpvPrefixes": ["72", "48"],"buyerCountries": ["DEU", "FRA", "ESP", "POL", "SWE", "NLD"],"groupBy": "countryCpv","daysBack": 90}
This run (tested on 30 October 2026) read 3,809 award notices and 5,967 calls for tender and returned 12 rows, one per country and division, in under a minute.
Other useful set-ups:
groupBy: "month"with one country and one CPV prefix gives you a trend linegroupBy: "buyer"lists every contracting authority in a niche with its own stats- Leave both filters empty and use
groupBy: "country"for an EU-wide overview
Things to know before you rely on the numbers
- Values are what buyers publish. Framework agreements often state a maximum ceiling, so a single framework can dominate
totalAwardValueEur. Use the median andlargestAwardValueEurto spot that. - Non-EUR values are converted with the latest ECB reference rates. The date is in
fxRatesDate. - A notice is placed in one segment. With a CPV filter it goes to the division that matched your filter. Joint procurements go to the first buyer country in your filter.
maxNoticescaps how many notices are read per type. If the cap cuts the data short, the log says so andSUMMARY.truncatedis true.- Notices published before the eForms switch (late 2023) have fewer structured fields, so some percentages can be empty for older periods.
Data and privacy
The Actor only requests organisation-level and aggregate fields from TED. It never asks for winner names, contact points, email addresses or phone numbers, and it does not store individual notices. Buyers in TED are public bodies. TED data is EU open data and may be reused, including commercially (see the TED legal notice and Commission Decision 2011/833/EU).
Pricing
Pay per event: you pay a small amount per segment row in the dataset, plus the standard Actor start event. Empty runs cost almost nothing. See the Pricing tab for current rates.
Questions or a custom version
Open an issue on the Actor page. Custom procurement datasets or dashboards can be ordered at https://studio.kayorama.nl/custom-web-scraping.