Case Study · Reference Implementation
A reference system built by ProcureDataLab to show how newly published EU government tenders can be collected from TED (Tenders Electronic Daily) and delivered as one searchable feed.
Executive Summary
Tender Opportunity Monitor is a reference system built by ProcureDataLab to show how newly published EU government tenders can be collected from TED, the official EU procurement journal, and delivered as one searchable feed. It is not a client deliverable. It is a demonstration of how our team approaches procurement monitoring at the pipeline and product level.
Public buyers across the EU publish thousands of tenders every week, and TED lists them all, but its native interface was not built for ongoing tracking. Anyone who needs to see every relevant opportunity — a supplier chasing new business, a bid consultancy screening for clients, or a research team tracking a sector — ends up searching the portal by hand and hoping nothing was missed.
Tender Opportunity Monitor is designed to address this by polling TED on a recurring basis, converting each new tender into a consistent record, and storing it in one place. Instead of running the same search on TED's interface every day, a user searches once, filters by country, publication date, or deadline, and sees everything that matches.
Businesses that bid on public contracts can see new opportunities without running the same search on TED every day.
Bid consultancies and research teams can screen opportunities across countries and categories from a single interface.
The Challenge
One portal. One search bar.
What was published today across the EU, and did anyone see it in time to act?
TED · European UnionProposed Solution
Tender Opportunity Monitor is designed to replace manual searching with a pipeline that watches TED and delivers new tenders into a single, searchable database.
Automated collection
A collection step built to check TED's search interface on a recurring basis and pull tenders published since the last run, removing the need for manual checks.
Data normalization
Each tender is parsed into a common schema. Dates, currencies, and category codes are standardized so records from every member state read the same way.
Centralized storage
Cleaned records land in Airtable, with duplicate detection so a tender that is amended or reposted is not logged twice.
Search and filtering
Users search by keyword and filter by country, publication date, or deadline, without needing to run the search on TED directly.
Collection, normalization, and presentation are handled as separate steps, so additional portals can be added later without touching the parts that already work.
Data Source
The official journal for EU public procurement. It publishes tender notices above the EU threshold across all member states, making it the primary feed for pan-European opportunities.
TED alone publishes a steady stream of tenders every week, spanning categories from construction and IT services to professional services and general supplies across all 27 member states — enough range to make a single-source feed genuinely useful rather than a narrow slice of one sector.
The pipeline is designed to extend to additional national and regional portals as coverage needs grow, without changing how normalization, storage, or search already work.
Data Model
Every tender is reduced to the same ten fields. That consistency is what makes search and filtering possible across notices that were never designed to be compared directly.
A unique identifier so the same opportunity is never logged twice, even if it is amended or reposted.
The name of the opportunity, used for keyword search across the full database.
The agency or organization issuing the tender, standardized so the same buyer reads consistently across records.
The issuing member state, used as a primary filter.
When the tender went live, used to sort by recency and catch anything new since the last check.
The submission cutoff, converted to a single date format regardless of how the notice expressed it.
The sector or type of work, mapped to a shared category list.
The contract value where the notice discloses it, kept in its original currency alongside a standardized figure.
Kept for traceability, and ready to distinguish additional portals once they are added.
A direct link back to the original notice, so users can verify details or submit through TED.
System Architecture
TED
EU tenders
Data Collection
Checks TED's search interface for newly published tenders
Normalization
Standardizes dates, currencies, and category codes
Database
Airtable, deduplicated tender records
Search & Filtering
Keyword, country, publication date, deadline
A second portal can plug in at the collection stage without disturbing normalization, storage, or search. Deduplication happens at the database layer, so a tender that is reposted after an amendment appears once.
Sample Output
Every normalized tender lands in an Airtable base. These are live screenshots of that base, working against real, collected TED records.
Default view
No filters or groups applied — every collected tender in one table.
Filtered by deadline
Example filter: deadline on or after a chosen date.
Grouped by country
Grouped by country name, sorted by estimated value (descending), with the deadline filter still applied.
Full text search across tender titles catches relevant opportunities even when the exact phrasing varies by member state.
Narrow the list to a specific member state in one step.
Filter by publication date to see what is new, or by deadline to focus on what needs action soon.
Every record links back to the original TED notice for full details and submission.
Potential Applications
Bid Consultancies
Consultancies can screen EU tenders across countries and categories from one interface instead of running the same search on TED for each client.
GovTech Products
Opportunity monitoring can be embedded directly into a product aimed at helping suppliers find and track relevant public contracts.
Procurement Intelligence Platforms
The collection and normalization pipeline can feed an existing platform with a live stream of new opportunities.
Internal Procurement Teams
Government teams can use the same approach to track competing agencies or benchmark how quickly opportunities in their sector are being published.
Key Takeaways
Fragmented monitoring can be unified.
TED's own interface, checked on a recurring basis, is designed to become a dependable, filterable feed instead of a manual daily habit.
Normalization is what makes search possible.
Standardizing dates, currencies, and category codes is what allows a single keyword search or filter to work across notices that were never designed to be compared.
Deduplication protects trust in the data.
Catching a tender after an amendment or a repost keeps the database from becoming noisy and unreliable.
Centralization closes the timing gap.
New opportunities are designed to appear in the shared view as soon as they are collected, rather than whenever someone next happens to check the portal.
A Python script built to poll TED's search interface for newly published tenders.
Normalization logic for dates, currencies, and category codes, plus deduplication before records are stored.
Airtable as the searchable database, with views built for keyword search and filtering.
Tender Opportunity Monitor was built to demonstrate how ProcureDataLab approaches procurement monitoring, not as a completed client project. It shows the pipeline, the data model, and the search layer that this kind of system requires.
Talk to us