Skip to main content
European data
data.europa.eu
Oficiálny portál pre údaje o Európe

CORDIS SDG Mapper: mapping Horizon Europe projects to SDG targets by rules a reader can run by hand

Created by: Attila Angyan

CORDIS SDG Mapper

Every Horizon Europe project in the CORDIS snapshot, 23,451 of them, is matched to UN Sustainable Development Goals and targets by a fixed rule that gives the same answer every time, with the evidence behind every match one click away. The method was registered and ratified by hash before any code was written, a sealed held-out sample was scored once under a frozen parameter set, and every number in the submission is checked against the artefact it came from by a script that fails if one drifts.

Live prototype: https://cordis-sdg-prototype.vercel.app/

Source and data: https://github.com/arthapraha/cordis-sdg

What you can find on the site

Home lists all 23,451 projects with their assignment level, goals and confidence, filters by level, goal, target and band, and opens each project's evidence: the exact phrases that produced every match, with the field they came from. Each project title links to its CORDIS record.

SDG Distribution shows the 17 goals with their project counts; a goal opens to list every one of its targets with the number of projects on each, and a click on a target lists those projects.

Evaluation & Metrics gives the held-out results and their ceiling. Notebook Figures holds the six charts. Methodology & Provenance carries the reproduction commands and the hash of every artefact, so anything on the site can be checked against the repository.

Image
Home page of the CORDIS SDG Mapper: 23,451 Horizon Europe projects with their SDG assignment level, assigned goals and confidence, with filters and a link to each project's evidence.
Image
SDG Distribution page of the CORDIS SDG Mapper: the 17 goals as cards, each with its project count and share, opening to the targets beneath it.

What was built, how it was validated, and where each deliverable is

Entry by Attila Angyan. Certificate, if any, in that one name. Licence: CC BY 4.0 for the documentation, the crosswalk and the synonym list; MIT for the code.

DATASETS USED

CORDIS: EU research projects under Horizon Europe (2021-2027): https://data.europa.eu/data/datasets/cordis-eu-research-projects-under-horizon-europe-2021-2027

EU Vocabularies: Sustainable Development Goals taxonomy (17 goals, 169 targets): https://op.europa.eu/en/web/eu-vocabularies/dataset/-/resource?uri=http://publications.europa.eu/resource/dataset/sdg

THE SIX DELIVERABLES

1. Notebook: cordis-sdg.ipynb (attached), executed, with requirements-notebook.txt (attached).

2. Mapping table: data/corpus/mapping-table-0246412.csv in the repository, 28,833 rows over 23,451 projects, 18 columns (project id, title, goal and target by URI and label, assignment level, confidence band and score, explanation, matched phrases with their source fields, fields present and absent, snapshot hash, pipeline commit). sha256 181d378a3078014193f3ae4f684b00b375ed62f3d24b2b34c060f6457b4a00d3. The platform's 5 MB file limit keeps the full file off this form; a sample of its first 5,277 rows is attached, byte-identical to the head of the full file. Full file: https://github.com/arthapraha/cordis-sdg/blob/main/data/corpus/mapping-table-0246412.csv

3. Supporting files to reproduce: the repository at commit 9f0893b, https://github.com/arthapraha/cordis-sdg (scripts/, data/terms/, data/crosswalk/, data/sample/, data/pipeline/, data/manifest.json). README.md carries the step-by-step reproduction block, run from a clean clone by two seats; scripts/test_reported_figures.py fails if any figure or hash quoted in the documents stops matching its artefact.

4. Summary of approach and findings: summary.md and summary.pdf (attached).

5. Working web prototype: https://cordis-sdg-prototype.vercel.app/ (static, no key, served from the repository's prototype/ folder, byte-identical to commit 9f0893b).

6. Description document: description-document.md and description-document.pdf (attached).

Also attached: limitations.md and limitations.pdf (limitations, uncertain cases, possible improvements); the six figures as PNG with figure-counts.json, the counts behind every chart.

THE NUMBERS, IN ONE PLACE

Held-out 100, scored once under the freeze: target-level precision 0.447, recall 0.221, F1 0.296. Recall ceiling of the method 0.442: 53 of the 95 reference pairs have no vocabulary evidence at any threshold. Development 50: two labellers agreed at Cohen's kappa 0.677 (target level). Whole snapshot: 9,394 projects with a target (40.1%), 6,882 goal level only (29.3%), 7,175 nothing (30.6%).

WHY WE THINK IT IS THE BEST ANSWER TO THE BRIEF

The decision path has no model in it and can be recomputed by hand from the evidence on each row; the method was fixed before the results existed; the held-out measurement is honest about its ceiling; the limitations are stated with their numbers; and everything, from the snapshot to the figures, is hashed and reproducible from a clone. The description document, section 8, answers the nine criteria one by one.

NázovDateFile
1. Notebook: methodology, data preparation, mapping logic and results (executed)2026-09-13 15:04cordis-sdg.ipynb
1. Notebook environment, pinned versions2026-09-13 15:04requirements-notebook.txt
2. Mapping table, sample: the first 5,277 rows of the full 28,833-row file, which is in the repository2026-09-13 15:05mapping-table-0246412-SAMPLE-first-5277-rows.csv
2. Mapping table: where the full file is and its hash2026-09-13 15:05README-mapping-table.txt
4. Summary of approach and findings (Markdown)2026-09-13 15:06summary.md
4. Summary of approach and findings (PDF)2026-09-13 15:06summary.pdf
6. Description document (Markdown)2026-09-13 15:07description-document.md
6. Description document (PDF)2026-09-13 15:07description-document.pdf
Limitations, uncertain cases and possible improvements (Markdown)2026-09-13 15:07limitations.md
Limitations, uncertain cases and possible improvements (PDF)2026-09-13 15:07limitations.pdf
3. The counts behind every figure2026-09-13 15:08figure-counts.json
Figure: confidence bands of the target assignments2026-09-13 15:08confidence-bands.png
Figure: how the pipeline and the reference disagree on the held-out 1002026-09-13 15:08disagreement-shape.png
Figure: projects with a target under each goal2026-09-13 15:08goals-by-project-count.png
Figure: the 25 most-linked targets2026-09-13 15:08most-linked-targets.png
Figure: the recall ceiling of the method2026-09-13 15:08recall-ceiling.png
Figure: evidence by source field2026-09-13 15:08relevance-by-field.png