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.

Le budget s'organise selon une nomenclature hierarchique : Type de budget (BG, BA, CAS, CCF) Mission (49 missions, code 2 lettres : DA = Defense, EC = Enseignement scolaire...) Programme (~170 programmes, code 3 chiffres : 178 = Preparation et emploi des forces) Action (~700 actions) Sous-action (~1 500 sous-actions) Croisee avec une nomenclature par nature : Titre (7 titres : personnel, fonctionnement, investissement...) Categorie (19 categories) Et rattachee a un Ministere (dont le nom change a chaque remaniement)

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 :

Automne N-1
PLF
Projet de loi
+ PAP
Dec./Janv.
LFI
Loi votee
+ amendements
Printemps N+1
PLR
Execution
+ RAP
Automne N
PLF N+1
Nouveau cycle

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

Chaque annee, la nomenclature est stockee comme un snapshot independant. Un programme est identifie par le triplet : (annee, type_budget, code) Pour suivre un programme dans le temps, une couche d'identite canonique lie les instances annuelles a une entite persistante : Programme 178 (2019) ─┐ Programme 178 (2020) ─┤ Programme 178 (2021) ─┼──→ PGM:178 "Preparation et emploi des forces" Programme 178 (2022) ─┤ Programme 178 (2023) ─┘ Quand un code change (ex: audiovisuel public CAS → BG en 2025), l'evenement est enregistre et les entites canoniques reliees.

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.

Donnees chargees

Annees
--
Programmes
--
Actions
--
Documents
--
Entites canoniques
--
Lignes de donnees
--