Interfaces de donnees

Etat des lieux des formats de donnees constates par reverse-engineering des fichiers bruts livres par la Direction du Budget (2023-2026)

Les 4 sources de donnees constatees

L'analyse des ZIP livres revele 4 types de fichiers distincts, avec des niveaux de stabilite variables :

1. Nomenclature XLS

MiS_PGM_ACT_SSA.xls — binaire .xls
Format le plus stable. Identique sur toutes les annees.
  • 8 colonnes, ~2 600 lignes par annee
  • Hierarchie complete : TTR/CAT/MIN/MSN/PGM/ACT/SSA
  • Codes normalises : PGM-NN (actions), PGM-NN-NN (sous-actions)
  • Disponible pour : PLR 2023, PLF 2024, PLF 2025, PLRG 2024, PLF 2026

2. Credits XLS

Credits_Destination_Nature_YC_RetD.xls ou PLF20XX-credits.xls
2 variantes de colonnes constatees (PLF vs PLR).
  • 12 colonnes, 2 300 a 3 600 lignes selon exercice
  • Granularite : action × categorie × titre
  • Montants AE et CP
  • Disponible pour : PLR 2023, PLF 2024, PLF 2025, PLRG 2024, PLF 2026

3. CSV open data

entrants/plf open data/*.csv
Schema variable d'une annee a l'autre (7 a 16 colonnes).
  • Granularite plus fine : sous-action × categorie + FdC/AdP
  • Inclut les libelles (missions, programmes, actions)
  • Disponible pour : PLF 2014-2025, LFI 2019-2023, PLR 2018
  • Encodage variable : latin-1 (2019), utf-8-sig (2020+)

4. Documents PDF

BA/ BG/ CAS/ CCF/ CCO/ COM/ — arborescence par budget
Structure de dossiers stable, conventions de nommage stables.
  • ~230 PDF par exercice (missions + programmes)
  • Nommage: FR_{annee}_{exercice}_{mission}_PGM_{code}.pdf
  • HTML structures en complement pour 2023-2024 uniquement
  • Disponible pour : PLR 2023, PLF 2024, PLF 2025, PLRG 2024, PLF 2026

Schema de la nomenclature XLS

Le fichier MiS_PGM_ACT_SSA.xls est la source la plus fiable pour la nomenclature. Son schema est rigoureusement identique depuis au moins 2022 :

ColonneTypeDescriptionExemple
Type ligne stringType d'entite : TTR, CAT, MIN, MSN, PGM, ACT, SSAPGM
Type BudgetstringType de budget (vide pour MIN, TTR, CAT)BG
codestring/intCode : entier pour PGM/MIN, PGM-NN pour ACT, PGM-NN-NN pour SSA178, 178-01, 178-01-03
MissionstringCode mission 2 lettres (pour PGM, ACT, SSA)DA
MinistereintCode ministere numerique (pour PGM)6
LibellestringLibelle complet de l'entitePreparation et emploi des forces
Libelle abregestringLibelle court pour datavizPrep.&empl.forces
commentFPstringCommentaire (souvent vide)

Les types de lignes forment une hierarchie :

TTR (7 titres) → CAT (20 categories) MIN (17-21 ministeres) └→ MSN (45-48 missions, code 2 lettres) └→ PGM (162-191 programmes, code 3 chiffres) └→ ACT (786-820 actions, code PGM-NN) └→ SSA (1 505-1 589 sous-actions, code PGM-NN-NN)

Schema des credits XLS

12 colonnes dans tous les cas, mais avec 2 variantes de nommage selon l'exercice :

RoleFormat PLFFormat PLRTypeDescription
AnneeexerciceexerciceintAnnee budgetaire
Exerciceloiloistring"PLF" ou "PLR"
Type budgettypeBudgettypeBudgetstringBG, BA, CAS, CCF
MinistereministereministereintCode numerique ministere
MissionmissionmissionstringCode 2 lettres
ProgrammeprogrammeprogrammeintCode 3 chiffres
ActionactionactionstringFormat PGM-NN
Sous-actionsous-actionsous_actionstringFormat PGM-NN-NN (souvent vide)
CategoriecategoriecategorieintCode categorie (21, 31, 51...)
TitretitretitreintCode titre (2-7)
AEaeAE EXECfloatAutorisations d'engagement
CPcpCP EXECfloatCredits de paiement

Les 3 lignes surlignees sont les seules differences entre les 2 variantes. Les fichiers PLR contiennent ~50% de lignes en plus (detail d'execution plus fin).

Fichiers concernes :

  • Format PLF : PLF 2024 (PLF2024-credits.xls), PLF 2025, PLF 2026 (Credits_Destination_Nature_YC_RetD.xls)
  • Format PLR : PLRG 2023, PLRG 2024 (Credits_Destination_Nature_YC_RetD.xls)

Schema des CSV open data

Les CSV publies sur data.gouv.fr ont un schema plus riche mais variable selon les annees. Voici les 3 grandes generations constatees :

GenerationAnneesColonnesParticularites
Generation 1 2014, 2019 7-12 Colonnes variables, encodage latin-1 (2019), pas de sous-action ni categorie
Generation 2 2020-2023 12 Format stabilise, nombres avec espaces (460 459), pas de FdC/AdP
Generation 3 2024-2025 16 Ajout sous-actions, FdC/AdP, ministere, libelles complets

Colonnes du format generation 3 (le plus complet, 2024-2025) :

Type Mission ; Mission ; Code Mission ; Programme ; Libelle Programme ; Action ; Libelle Action ; Sous Action ; Libelle SousAction ; Categorie ; Code Titre ; AE PLF ; CP PLF ; AE Prev FDC/ADP ; CP Prev FDC/ADP ; Ministere

Convention de nommage des documents PDF

Deux conventions coexistent selon le type d'exercice et le niveau hierarchique :

NiveauConvention PLF (PAP)Convention PLR (RAP)
Mission PAP{annee}_{type}_{nom}_{code}.pdf
Ex: PAP2025_BG_Defense_DA.pdf
FR_{annee}_PLR_{type}_MSN_{code}.pdf
Ex: FR_2023_PLR_BG_MSN_DA.pdf
Programme FR_{annee}_PLF_{mission}_PGM_{code}.pdf
Ex: FR_2025_PLF_DA_PGM_178.pdf
FR_{annee}_PLR_{mission}_PGM_{code}.pdf
Ex: FR_2023_PLR_DA_PGM_178.pdf

L'arborescence des dossiers est stable :

entrants/{annee}/{exercice}/ ← PLF/ ou PLRG/ {type_budget}/ MSN/{code_mission}/ → PDF mission (1 par mission) PGM/{code_programme}/ → PDF programme (1 par programme) + HTML (5 sections) pour 2023-2024 uniquement

Les HTML structures (_CREDITS, _JPE, _STRAT, _PERF, _OPE) ne sont disponibles que pour le PLR 2023 et le PLF 2024. Ce sont les memes donnees que les PDF mais en format parsable (tableaux HTML avec CSS FARANDOLE).

Articulation des sources

Le diagramme ci-dessous montre comment les differentes sources se combinent dans la pipeline :

┌─────────────────────────┐ │ MiS_PGM_ACT_SSA.xls │ Nomenclature complete │ (toutes annees) │ avec libelles et │ 8 cols, ~2600 lignes │ libelles abreges └───────────┬─────────────┘ │ ▼ ┌─────────────────────────┐ NOMENCLATURE ┌─────────────────────────┐ │ Credits XLS (dataviz) │──── versionnee ────│ CSV open data │ │ 12 cols, codes seuls │ par annee │ 16 cols, avec libelles │ │ 2300-3600 lignes │ │ + FdC/AdP │ └───────────┬─────────────┘ └───────────┬─────────────┘ │ │ ▼ ▼ CREDITS CREDITS (AE/CP par action (AE/CP par sous-action × categorie) × categorie + FdC/AdP) │ │ └──────────────┬───────────────────────────────┘ │ ▼ ┌──────────────┐ │ donnees_ │ Table unifiee │ budget │ dans SQLite └──────┬───────┘ │ ▼ ┌──────────────┐ │ Documents │ Lies via les codes │ PDF/HTML │ mission + programme └──────────────┘

Regle de priorite : quand les CSV open data existent pour une annee, ils sont preferes aux XLS dataviz car ils ont une granularite plus fine (sous-actions) et des colonnes supplementaires (FdC/AdP, libelles). Les XLS dataviz sont la source de repli pour les annees sans CSV open data, et la source primaire pour la nomenclature complete (avec libelles abreges et commentaires, absents des CSV).

Matrice de couverture par annee

AnneeExerciceNomenclature XLSCredits XLSCSV open dataDocuments PDFHTML structures
2014PLFoui (7 cols)
2019PLFoui (latin-1)
2019LFIoui
2020PLFoui (espaces)
2020LFIoui
2021PLFoui (espaces)
2021LFIoui
2022PLFCSV equivalentoui (espaces)
2022LFIoui
2023PLFoui (16 cols)
2023LFIoui
2023PLRouioui (PLR)209 PDF694 HTML
2024PLFouioui (PLF)oui (16 cols)217 PDF665 HTML
2024PLRouioui (PLR)229 PDF
2025PLFouioui (PLF)oui (16 cols)229 PDF
2026PLFouioui (PLF)224 PDF

Les lignes vertes correspondent aux donnees nouvellement ajoutees. Les annees 2014-2022 ne disposent que de CSV open data (sans documents PDF ni XLS dataviz dans le perimetre actuel).

Observations cles du reverse-engineering

  1. La nomenclature XLS est la source la plus stable — memes 8 colonnes, memes conventions de codes, meme format binaire .xls sur toutes les annees constatees. C'est le pivot naturel du systeme.
  2. Les credits XLS ont 2 variantes previsibles — PLF (minuscules, tiret) et PLR (majuscules EXEC, underscore). La difference est purement cosmetique (noms de colonnes), pas structurelle.
  3. Les CSV open data sont plus riches mais instables — 3 generations de schemas en 10 ans, encodages variables, noms de colonnes variables. Chaque annee necessite sa propre config YAML.
  4. Les HTML structures ont disparu a partir du PLF 2025 — les 694 HTML du PLR 2023 et 665 du PLF 2024 sont les derniers. L'information equivalente n'est plus accessible que via les PDF.
  5. Le nommage des fichiers credits variePLF2024-credits.xls (specifique) vs Credits_Destination_Nature_YC_RetD.xls (generique). Les patterns glob dans les configs YAML absorbent ces variations.
  6. Le PLRG est range par annee budgetaire — le PLRG 2024 est dans entrants/2024/PLRG/, aux cotes du PLF 2024 dans entrants/2024/PLF/. Le sous-dossier PLF/ ou PLRG/ distingue l'exercice, l'annee du dossier parent identifie l'annee budgetaire.