Classer et relier les donnees du Budget de l'Etat
Comment organiser la documentation et les donnees budgetaires pour qu'elles soient retrouvables, comparables et navigables dans le temps ?
Le probleme
Chaque annee, la Direction du Budget produit des centaines de documents (PAP, RAP, DPT, jaunes, circulaires) et des jeux de donnees chiffrees (credits AE/CP, emplois ETPT, performance, depenses fiscales, recettes). Ces deux mondes — documentation et data — partagent la meme structure hierarchique mais vivent dans des silos separes.
Cette nomenclature est la cle de liaison entre les documents et les donnees. Un document comme PAP2025_BG_Defense_DA.pdf et une ligne de credits du programme 178 sont relies par la meme mission DA.
Le cycle budgetaire
Les donnees arrivent en trois temps chaque annee, avec des documents associes a chaque etape :
L'enjeu est de pouvoir suivre un programme ou une mission a travers ces etapes (PLF → LFI → PLR) et d'une annee a l'autre, meme quand la nomenclature evolue.
Les defis
🔄 Nomenclature variable
Les codes mission et programme peuvent changer d'une annee a l'autre. Des programmes sont crees, supprimes, fusionnes, deplaces entre missions. 57 programmes supprimes et ~30 crees entre 2014 et 2025.
🏛 Ministeres instables
Les noms de ministeres changent a chaque remaniement. Entre PLF 2024 et PLF 2025, seuls 5 noms sur 17 sont restes identiques. Le nom de ministere ne peut jamais servir de cle.
📊 Formats heterogenes
Les fichiers open data changent de schema au fil des ans : 7 colonnes en 2014, 12 en 2020 (codes uniquement), 16 en 2024 (avec libelles). Les noms de colonnes AE/CP varient d'un fichier a l'autre.
⏱ Publication en 24h
Les donnees doivent etre chargees dans les 24h suivant la publication officielle. Pas le temps de modifier du code : le systeme doit etre pilote par configuration.
La solution : nomenclature versionnee + identite canonique
Les documents (PDFs) sont automatiquement lies aux donnees via la nomenclature : le fichier FR_2025_PLF_DA_PGM_178.pdf est rattache au programme 178, mission DA, et donc a toutes les lignes de credits correspondantes.