Known Issues & Limitations
Known Issues & Limitations documents the currently known issues, limitations, and workarounds when working with TED Open Data service.
Notices
Do not use ?notice count
There is a mismatch between the count of distinct notices based on notice id and distinct count of notices based on notice publication numbers. It is because of the current logic used for identifying a notice (UUID without version number). That is, the notice UUID (without the version number) can be used by more than one published notice. This issue will be fixed in the future. Currently, when we count the number of distinct notices using notice object it could be less than the distinct count of notices based on notice publication numbers.
For example, for the notice - https://ted.europa.eu/en/notice/-/detail/00176184-2026 , 00176184-2026 is the publication number and a2add710-2c39-45f3-ae16-4edf2f5c191c is the notice UUID without the version number.
Workaround: Use distinct count of publication numbers to count the number of distinct notices.
# Use this
(COUNT(DISTINCT ?noticePublicationNumber) AS ?NoticeCount) .
# NOT this
(COUNT(DISTINCT ?notice) AS ?NoticeCount) .
# Assuming your query pattern is as below
GRAPH ?g {
?notice a epo:Notice ;
epo:hasNoticePublicationNumber ?noticePublicationNumber ;
epo:hasPublicationDate ?pubDate .
}
Old forms (or non-eForms) data not available
Though it is mentioned that the start date of the data is from 1st of March 2023, it is to be noted that the old forms data is not available within the named graphs. Also, all of the queries provided in the explore (previouly query library) works only for eForms. To fetch old forms data, additional logic is required.
ePO
Version of ePO used is 4.2
The current data (triples) in open data service are processed as per version 4.2 of ePO (eProcurement Ontology). The latest version of ePO is 5.2. In the future, data will be reprocessed to match the latest version of ePO.
Data Quality Issues
Typo in property name: isSubmitedBy
The property epo:isSubmitedBy is misspelled in the current data (single 't' instead of isSubmittedBy). This affects queries that traverse from a Tender to a Tenderer.
Workaround: Use epo:isSubmitedBy (with single 't') in your queries until the data is reprocessed.
# Use this (current data)
?tender epo:isSubmitedBy ?tenderer .
# NOT this (correct spelling, but won't match current data)
# ?tender epo:isSubmittedBy ?tenderer .
Missing winner information in some notices
Some result notices do not include winner (tenderer) information. This means queries that require winner details may return fewer results than expected.
Workaround: Use OPTIONAL when fetching winner information to avoid losing the entire notice from results.
OPTIONAL {
?tenderer a epo:Tenderer ;
epo:playedBy ?org .
?org epo:hasLegalName ?winnerName .
}
Query Performance Limitations
Data and data quality
Currencies
Currently, financial values are only available in original currencies (as it is present in the eForms). This limitation prevents the users to compare financial values across notices. In the future, open data service may provide financial values in euros in addition to the original currency.
Data quality issues
Data quality issues present in source / original XML files are also present in the triples in the open data service. No data cleansing is done when transforming from XML to RDF triples.
Winning tender
Currently, there is no indicator to indicate whether a tender is a winning tender. A tender linked to the settled contract is considered as the winning tender.