Accuracy and classification methodology
Every record in the feed carries structured tags: sectors, geography, funding type, stage fit, organisation type, key requirements, a summary and a relevance score. This page explains where those tags come from, how errors are handled, and where the system is weakest. It is written for people who will check our work, and we would rather you did.
The pipeline
Classification is the fifth of six pipeline steps described in How we source data. In detail:
Prefilters do the heavy lifting. Procurement records are gated by procurement classification codes and multilingual keyword filters before any model sees them. This removes the overwhelming majority of irrelevant records (cleaning contracts, office supplies, generic services) deterministically and cheaply. Roughly half of EU procurement volume is handled by code prefilter alone.
A language model classifier does the tagging. Records that pass the gate are classified by a language model against a controlled vocabulary: fixed sector list, ISO country codes, enumerated funding types and stage bands. Free-text tags are not permitted; the taxonomy is closed, which keeps counts comparable across time and queries.
Confidence routing. Low-confidence classifications do not enter the public feed. They route to a human review queue and are published only after review. The system degrades to slower rather than to wrong.
Relevance scoring. Every procurement record gets a 0 to 100 sustainability relevance score. Default views hide records scoring under 40. This is a tunable filter, not a hidden judgement: set the threshold to 0 and you see everything we ingested.
Match scores are explainable
Match scoring checks your profile against each record on five points out of 100: sector overlap (up to 50), geography (up to 20), stage (up to 15), organisation type (up to 10) and check size (up to 5). A call that excludes your country is marked down, and a check you have not filled in is skipped rather than guessed. It is not a black box and it is deliberately simple; you can verify any score by reading the card. Free accounts see the score; Pro adds the breakdown and the sort by fit.
Known weaknesses
Stated plainly because you will find them anyway:
- Sector classification is good, not perfect. Records at taxonomy boundaries (storage vs grid, adaptation vs resilience) are the main error class. The relevance score is the mitigation: borderline records score lower and default views suppress them.
- Funder enrichment depth varies widely across the directory, as noted on the coverage map.
- The raw signal stream is high-volume and noisier than the curated feed. The weekly wire is the edited view; the raw stream is for power users who accept triage as the cost of earliness.
- Translation happens at ingest for titles and summaries. Full descriptions may remain in the source language; the source link always gives you the original.
Verify it yourself
Take any record and follow its source link; the classification either holds up against the original or it does not. A fully dissected example, every field annotated, is at Sample unlocked opportunity. Found a misclassification? [email protected] with the record URL. Corrections feed the review queue.