EU project results are hard to find because the metadata describing them is broken, not because the results were never published. We learned this by doing the unglamorous work: ingesting CORDIS and Erasmus+ open data into our consortium graph and watching the same four failure classes surface in every batch. Organisation names written many different ways, result links that no longer resolve, topics buried in free text, and identifiers that stop at the programme border. Each one is a parsing nuisance for a data engineer and a discoverability failure for the project concerned. A result that cannot be matched to its organisation, resolved at its URL, or filed under a recognisable topic is, for any practical search, invisible.
On paper the system works. Horizon grant agreements oblige beneficiaries to disseminate results, and CORDIS publishes a structured record for every funded project. Erasmus+ projects get an entry on the Erasmus+ Project Results Platform, with descriptions, partners, and links to outputs. Both datasets are open and downloadable. The promise is that a coordinator preparing a new proposal, or an evaluator checking a novelty claim, can find what has already been built with public money.
The reality is what a parser sees on line one. Open data is not the same as usable data, and the gap between the two is exactly the gap between "published" and "findable". To build a graph, our pipeline had to answer four questions for every record: is this organisation the same as that one, does this link still lead anywhere, what is this project actually about, and is this Erasmus+ beneficiary the same legal entity as that Horizon participant. Everywhere the data makes those questions hard for a machine, it makes them impossible for a human searching by hand, and the human fails silently. They conclude the prior work does not exist.
The same university appears under its native-language name, its English translation, an abbreviation, a pre-merger historical name, and with or without its legal form suffix. Sometimes with diacritics, sometimes stripped of them, occasionally with a whole department pasted into the name field. Nothing in the record marks these as one institution. Search for a partner's past results and you get the slice of their work filed under the spelling you happened to guess. Their track record looks thinner than it is, and other slices belong, as far as any search engine can tell, to strangers.
Erasmus+ result entries and project websites are recorded as URLs, and URLs decay. Project websites are typically paid for from the grant, and when the funding ends the hosting quietly ends with it. The metadata survives while the evidence behind it disappears. A dead link is worse than no link: it looks like documentation and behaves like a locked door, and it tells every future reader that following EU project references is not worth their time.
Classification fields exist, but they are coarse, and what a project is actually about lives in summaries written in grant-application register: acronym-heavy, aspiration-heavy, tuned for evaluators rather than searchers. A practitioner looking for "assessment tools for adult educators" will not match a summary that promises "innovative methodologies for competence validation pathways". The result is not filed anywhere a stranger would look, so only people who already know the project can find the project.
Within one programme, identifiers mostly hold together. Across programmes, they do not. The organisation identifiers used in Horizon data and those in Erasmus+ data are different systems, and the datasets do not ship a mapping between them. Establishing that one legal entity ran an Erasmus+ partnership and later a Horizon project is a matching problem you must solve yourself, not a lookup. Cross-programme track records, the exact thing an evaluator or a coordinator vetting a partner wants, are the hardest thing to reconstruct.
These are not merely pipeline complaints. Two concrete harms follow.
The first is duplicated proposals. A consortium that cannot find prior results in its field will, in good faith, propose to build them again. Public money funds the same intellectual output twice, and the second team spends its project discovering what the first team already knew.
The second is uncheckable novelty claims. Evaluators are asked to judge whether a proposal goes beyond the state of the art, but the state of the art funded by the EU itself is scattered across name variants, dead links, and unsearchable summaries. Honest applicants cannot cite prior work properly, weak applicants are not caught repeating it, and "insufficient innovation" rejections land partly on projects whose real sin was that nobody could see the field clearly. Unfindability degrades the quality of both writing and evaluation.
The same rot undermines partner selection. Choosing partners based on their actual delivery history requires exactly the cross-programme record the data resists, which is why we treat partner due diligence and the mapping of repeat consortia as graph problems rather than search problems.
Building the graph forced us to write down rules, and the rules matter more than the code.
What we normalise: legal-form suffixes, casing, diacritics, and whitespace in organisation names; merges backed by a strong shared identifier; conservative name-plus-country matching where the evidence is unambiguous and a human could verify the rule.
What we refuse to guess: we never merge two organisations on name similarity alone, because a wrong merge silently corrupts every track record it touches. We never assign a topic the project's own text does not support. And when records contradict each other (two spellings, two countries, two websites for one participant), we keep both, with provenance, rather than electing a winner. A graph that admits "these two records might be the same entity" is honest. A graph that guessed is a liability wearing the costume of an answer.
None of this requires waiting for the data publishers to change. At project level:
Dissemination platforms that outlive the grant are a build-and-operate problem, and that is a service you can buy rather than improvise; it is part of what we do at StrandsUnited.
The deeper fix is organisational. Metadata rots because in most consortia nobody owns it: the coordinator owns reporting, partners own their outputs, and the public record belongs to everyone, which means no one. Put it in the dissemination work package as a deliverable with a named person: verify names and identifiers at kickoff, check every result link before each report, and run a final pass at project end confirming that every output resolves and every partner is findable under one name. It is a few hours of boring work per period, and it is the difference between a project that ends and a project that disappears.
Our grant intelligence engine maintains a consortium graph of 114,731 organisations and 83,490 projects, built by ingesting CORDIS and Erasmus+ open data covering 2014-2027. Every failure class in this article is one our pipeline handles daily, and the normalisation rules described are the ones it runs. The coordinator-side advice comes from the other half of our work: building and operating community and knowledge platforms, including Impactful, where keeping results findable after the funding ends is the job.