Dépenses festives des communes : comptes et marchés
Ce que les 34 518 communes couvertes ont porté en 2024 sur les huit comptes de fêtes, cérémonies et communication, et ce que leurs marchés publics disent de ces dépenses.
- Fichier
- 282 Ko, JSON
- Calculé le
- 21/08/2026
- Licence
- Licence ouverte
- Étapes de calcul
- 16, détaillées plus bas
Le code de ce calcul n’est pas publié. Ce qui l’est, et qui permet de le refaire, est la méthode : la section « Comment il est construit » ci-dessous en donne les étapes dans l’ordre, avec leurs seuils.
Le fichier porte en tête un objet _meta : ses sources, sa licence, sa date de calcul, l’adresse de cette page et une phrase d’attribution toute faite.
D’où viennent les données
Chaque source avec son producteur, sa licence, son lien de téléchargement chez lui, et les fichiers que nous en lisons : leur format, les colonnes retenues, et ce qui piège à la lecture.
Balances comptables des collectivités et des établissements publics locaux
Direction générale des finances publiques (DGFiP) · Licence ouverte · exercice 2024, budgets principaux
balances comptables, un fichier par famille de collectivités et par exercice
CSV compressés en gzip, séparateur point-virgule, exercices 2010 à 2025. Les 14 fichiers de balances effectivement lus pour cet agrégat portent 81 420 876 lignes
Colonnes lues
exer, siren, ndept, insee, categ, cbudg, budget, nomen, compte, fonction, sd, sc, bedeb, obnetdebTrois pièges qui ne lèvent aucune erreur. Le budget principal se repère par budget = « BP » de 2010 à 2015, puis par cbudg = « 1 » : chercher « 1 » sur les six premiers exercices ne renvoie rien, et les séries longues sortaient à zéro avant que les deux schémas soient ramenés à un jeu de colonnes unique. La catégorie de collectivité manque avant 2017 : elle est alors déduite du nom du fichier, un fichier de communes n'en contenant que des communes. Et le fichier ne porte pas le code INSEE des communes : il porte ndept sur trois signes et insee sur trois signes, dont la concaténation n'est pas le code INSEE.
Plan des comptes développé des instructions M14, M52 et M57
DGCL, projet Totem · Licence ouverte · seule source des libellés de comptes
huit plans de comptes, M14, M52, M57 et leurs variantes
CSV, un fichier par nomenclature
Colonnes lues
code, intitulé, TYPE (nature ou fonction)L'ordre de lecture est un ordre de priorité : le M57 abrégé d'abord, nomenclature de la très grande majorité des communes depuis 2024. Retirer un seul de ces huit fichiers fait perdre des libellés, et un compte non libellé ne peut pas être reconnu comme résiduel : un premier calcul sur la seule nomenclature M57 abrégée donnait 7,6 % de charges en comptes « Autres » au lieu de 14,7 %, faute de reconnaître un compte de personnel de 5,8 Md€.
Données essentielles de la commande publique, marchés valides, arrêté du 22 décembre 2022
Ministères économiques et financiers · Licence ouverte · régime en vigueur, 689 062 marchés
marchés valides des deux régimes déclaratifs
JSON, 689 062 marchés pour le régime en vigueur
Colonnes lues
acheteur.id, objet, montant, codeCPV, dateNotification, dureeMois, titulairesLes deux régimes ne se fusionnent jamais : celui dont l'identifiant dit « v3 » relève de l'arrêté de 2019 et s'arrête au 8 février 2024, et il ignore 96 communes de plus de 20 000 habitants qui ont migré vers l'autre. Le SIREN de la collectivité est en clair dans les balances, mais forme les neuf premiers signes du SIRET de l'acheteur dans les marchés : c'est la seule clé de rapprochement.
Données essentielles de la commande publique, marchés valides, arrêté du 22 mars 2019
Ministères économiques et financiers · Licence ouverte · régime ancien, arrêté au 08/02/2024, couche historique
Office des publications de l'Union européenne · Réutilisation autorisée · seule source des libellés de codes CPV
cpv-2008-ver-2013.zip
un ZIP contenant un XLSX, lui-même un ZIP de XML
Colonnes lues
colonne A le code, colonne K le libellé français, sur les vingt-quatre langues publiéesLu avec la bibliothèque standard plutôt qu'avec un lecteur de tableur : le projet n'ajoute pas de dépendance pour deux colonnes. Sans cette source, aucun libellé de code CPV ne serait publiable, et un libellé inventé serait exactement la donnée non sourcée que nous nous interdisons.
Recensement de la population 2020, base logement à l'IRIS, INSEE
INSEE · Licence ouverte · résidences secondaires, indicateur de poids touristique
base logement à l'IRIS
CSV du recensement, agrégé de l'IRIS à la commune à la lecture
Colonnes lues
code IRIS, logements, résidences secondairesNe couvre pas Mayotte : la part de résidences secondaires y est absente, jamais mise à zéro.
Population légale des communes
API géo, Etalab, d'après l'INSEE · Licence ouverte · dénominateur des ratios par habitant
communes.json
JSON de l'API géo
Colonnes lues
code, nom, populationEnviron deux communes sur mille ne se rattachent à aucune ligne : elles ont fusionné depuis l'exercice et ne figurent plus dans la liste du jour. Elles restent dans les totaux et sortent des seuls ratios par habitant.
Comment il est construit
Chaque étape est dans le script cité plus haut, dans cet ordre. Rien n’est fait à la main entre deux étapes.
- Les fichiers de balances sont lus l'un après l'autre, sans jamais être chargés en mémoire. Chaque ligne est d'abord ramenée à un schéma unique : le budget principal, quel que soit le nom de la colonne qui le porte selon l'exercice, et la catégorie de collectivité, déduite du nom du fichier quand elle manque.
- Seul le budget principal est retenu, ce qui écarte les budgets annexes. Sans ce filtre, un centre culturel municipal entre dans un classement de communes.
- Le montant retenu dépend de la classe du compte, et se tromper de colonne ne lève aucune erreur. En classe 6, les charges, la balance d'entrée est nulle : le solde débiteur vaut la dépense de l'exercice. En classe 7, les produits, le montant est au crédit. En classe 2, les immobilisations, le solde débiteur est la valeur brute accumulée depuis l'origine et l'achat de l'année est le champ d'opérations nettes : le compte 2184 affiche 1 386 M€ de solde pour 47 M€ d'acquisitions en 2024, soit un facteur trente.
- Le code INSEE d'une commune est reconstitué à partir de la codification de la DGFiP, et c'est un piège à lui seul. En métropole, le champ de département porte un zéro de tête à retirer, mais un seul : retirer tous les zéros de tête donnait « 2758 » au lieu de « 02758 », et ce sont les neuf premiers départements, donc 2 500 communes, qui sortaient de la jointure. En outre-mer, le champ vaut 101 à 104 et ne préfixe rien : le code est « 97 » suivi du code commune.
- Huit comptes sont retenus pour le dossier festif et regroupés en trois familles éditoriales, pas officielles : festivités (6232, 6233, 6234, 6257), communication (6231, 6236, 6237, 6238) et le compte agrégé 623. Les codes et leurs libellés sont sourcés, la famille où on les range est notre décision.
- Le compte agrégé est le parent des sept autres : l'additionner à ses propres enfants doublerait la dépense. Le recouvrement est donc mesuré commune par commune, un drapeau étant posé sur chacune selon qu'elle déclare l'agrégat, le détail ou les deux. Résultat : 25 024 communes ne déclarent que l'agrégat, 9 493 que le détail, 1 les deux. La somme est donc licite, et la couverture passe de 9 493 à 34 518 communes.
- Le classement en euros par habitant divise le total des familles par la population légale, arrondi au centime, et ne retient que les communes au-dessus du seuil de population. Le tri est décroissant. La part de résidences secondaires est publiée à côté de chaque ligne, et la corrélation entre les deux est calculée sur les communes où elle est connue.
- La distribution du budget festif par habitant est publiée en déciles, avec minimum, maximum, moyenne et écart type, plus la série individuelle des communes classées : c'est ce qui permet à l'histogramme et au nuage de points du dossier de lire l'agrégat au lieu d'ouvrir le fichier de recherche de 2,4 Mo au moment du build.
- Les marchés publics forment une couche séparée, jointe à la commune par le SIREN et jamais mêlée aux comptes. La famille festive d'un marché est déterminée par son code CPV, préfixe le plus long gagnant. Les préfixes sont stricts, huit signes et non quatre : un préfixe court attrapait toute la restauration collective, et « 15911 » plus « 15931 » au lieu de « 159 » évite l'eau et les jus des cantines.
- Les marchés sont dédoublonnés sur une clé sans l'objet : acheteur, montant, code CPV, date de notification et durée. Deux configurations produisent en effet des doublons dans la source, la republication du même marché avec des libellés qui ne diffèrent que par la casse et une apostrophe, et l'accord-cadre multi-attributaires, plusieurs lignes identiques qui sont un plafond partagé et non plusieurs marchés. L'heuristique sous-compte plutôt que de tripler, et le nombre de lignes écartées est publié.
- Les marchés déclarés au-delà d'un plafond de vraisemblance sont écartés des totaux et comptés à part comme aberrations. Quatre sont déclarés à 2 147 483 647 € exactement, soit deux puissance trente et un moins un, la plus grande valeur qu'un entier signé de 32 bits puisse contenir : ce n'est pas un plafond négocié, c'est un débordement logiciel.
- Les marchés dont le code CPV est manifestement faux sont vérifiés un par un, écartés des familles et publiés comme anecdotes, dont 1 303 683 € de gaz naturel rangés en « services pyrotechniques ». C'est une liste explicite et non une heuristique : un filtre par mots-clés se tromperait dans les deux sens, il rangeait « fourniture de bouleaux naturels peints en blanc » hors des décorations de Noël.
- Le taux d'appariement aux marchés est publié par tranche de population, jamais en global : la publication n'étant obligatoire qu'au-delà de 40 000 € HT, la plupart des petites communes n'en déclarent aucun, et un taux global ne mesurerait que la pyramide des tailles de communes françaises.
- Le croisement final oppose les deux couches sur le vingtième supérieur du classement : une commune qui dépense beaucoup et déclare des marchés festifs est documentée de bout en bout, une commune qui dépense autant sans aucun marché ne l'est pas. Les deux montants ne s'additionnent pas, ne se soustraient pas et ne se divisent jamais.
- La provenance est enregistrée pour chacun des 27 fichiers lus : chemin, nombre de lignes, date de récupération et empreinte SHA-256. C'est ce qui permet de dire exactement sur quelle version des sources un chiffre a été calculé.
- L'extraction finale relit la table de faits communale, et non les 202 millions de lignes d'origine, pour écrire les deux fichiers du site : l'agrégat publié, et le fichier de recherche par commune, en tableaux de tableaux plutôt qu'en objets pour tenir en quelques centaines de kilooctets.
Les garde-fous du calcul
Le calcul s’arrête et ne publie rien si l’une de ces conditions n’est pas vérifiée. C’est ce qui empêche un fichier source qui change de forme de produire des chiffres faux en silence.
- Plus d'un million de lignes lues et plus de dix milliards d'euros de charges, sinon la lecture a échoué.
- La balance d'entrée de la classe 6 doit rester nulle à moins d'un euro près : c'est ce qui autorise à lire le solde débiteur comme la dépense de l'exercice.
- La part de charges non libellées doit rester sous 5 %, faute de quoi le taux de comptes fourre-tout ne serait plus un plancher interprétable.
- Chaque compte suivi doit exister dans la source, et son libellé doit venir d'une nomenclature ou porter une mention d'absence explicite : jamais un intitulé inventé.
- Au plus deux classements peuvent tomber sous le seuil de collectivités : au-delà, c'est un compte choisi dans la mauvaise nomenclature.
- Plus de 99 % des communes d'un classement doivent être appariées à la population légale, et le recouvrement entre compte agrégé et compte détaillé doit rester sous 1 %.
- Le taux d'appariement aux marchés doit croître avec la taille de la commune, et au moins une commune du classement festif doit avoir un marché festif : sinon la jointure par code CPV est cassée.
- Le budget festif par habitant maximum doit rester sous 10 000 €, la base logement doit couvrir plus de 30 000 communes, et une part de résidences secondaires doit avoir été jointe au classement.
- Un autotest, lançable seul sur un jeu synthétique minuscule, vérifie les deux schémas de budget, l'exclusion des budgets annexes, la reconstitution du code INSEE, la lecture de la taxe de séjour et le croisement par fonction.
Seuils et choix assumés
Ce que nous avons décidé, et qui n’est pas dans la source. Un chiffre change si vous décidez autrement.
- Seuil du classement par habitant : 3 000 habitants, ce qui laisse 3 773 communes classables.
- Les préfixes de codes CPV sont stricts. Un préfixe de quatre signes attrapait toute la restauration collective, pour des milliards d'euros.
- La recherche par mots-clés du portail est inexploitable et n'est jamais utilisée : elle racinise, donc « artifice » remonte « intelligence artificielle » et « champagne » remonte Châlons-en-Champagne.
Ce que ce fichier ne dit pas
La partie qui protège de la reprise abusive, y compris la nôtre.
- Un compte n'est pas un achat : le fichier dit qu'une commune a dépensé sur « fêtes et cérémonies », jamais ce qu'elle a acheté.
- Sept communes sur dix ne déclarent que le compte agrégé. Une commune dont la seule famille est le compte non détaillé n'a pas dépensé moins, elle a déclaré moins finement.
- Les marchés disent quoi, jamais combien : un marché est un plafond dont la durée déclarée va de 1 à 48 mois, un compte est une dépense annuelle. Le classement se fait sur les comptes, jamais sur les marchés.
- « fêtes et cérémonies » porte le feu d'artifice du 14 juillet, les colis des anciens et la fête de la musique : le chiffre est vrai, la lecture morale ne l'est pas.
- un classement en euros par habitant est dominé par les communes touristiques : la population résidente n'est pas le bon dénominateur pour une station qui accueille dix fois ses habitants en août. publiée quand la commune la perçoit en propre, ce qui n'est le cas que de 1314 communes : une absence ne prouve pas l'absence de tourisme.
Ce que contient le fichier
| Clé | Ce qu’elle porte |
|---|---|
| source | sept sources, leurs liens, et le manifeste des 27 fichiers avec leur empreinte SHA-256 |
| granularite · perimetre · regroupement | ce que la source permet, le périmètre retenu, les trois familles et les libellés officiels des comptes |
| national · par_compte · distribution · nuage · correlations | totaux, déciles du budget festif par habitant et corrélation au tourisme |
| classement · croisement · recherche | les cinquante premières communes, le croisement compte contre marché, et les clés de la recherche par commune |
| anecdotes · aberrations · curiosites_festives · comptes_sans_nom | codes CPV faux vérifiés un par un, montants aberrants, comptes qu'aucune nomenclature ne nomme |
| marches · logement · reserves | la couche marchés publics, le poids touristique et les six réserves de lecture |
Où il sert sur le site
Toutes ces pages lisent ce fichier, et aucune n’y ajoute un chiffre de son cru.
- /donnees/festivites
- /dossiers/ce-que-la-fete-coute-a-votre-commune
- /insolites/du-gaz-en-feu-dartifice
- /classements
La base de travail derrière cet agrégat
L’agrégat ci-dessus est un extrait taillé pour les pages du site. Voici les fichiers dont il sort, tels que le script les écrit : plus gros, plus larges, et beaucoup moins relus.
À lire avant de s’en servir
Ces fichiers portent des chiffres que nous n’avons pas vérifiés un par un, et dont aucune page ne publie la valeur. Les réserves de la section précédente s’y appliquent toutes, et une de plus : un chiffre qui n’a pas passé le filtre de l’agrégat n’a pas été relu. Les sources et les licences sont les mêmes que ci-dessus.
7 494 KO · LICENCE OUVERTE · SHA-256 b11fff1232bbcc85…
La base de travail des comptes publics
Tout ce que le script calcule avant d'en extraire le dossier festif : les charges de chaque catégorie de collectivité, les comptes rangés par classe et par nomenclature, les séries par exercice depuis 2010, les classements, les départements, les fonctions et la couche marchés. C'est là que se trouve, entre autres, la part des charges rangées dans des comptes dont le libellé commence par « Autres ». Aucune page du site ne lit ce fichier : festivites.json en est l'extrait publié.
data/comptes-publics/2-resultats/comptes-publics.json
360 KO · LICENCE OUVERTE · SHA-256 cb03c175e707f84c…
Les séries nationales par compte et par exercice
Un CSV d'une ligne par exercice et par compte : classe, libellé officiel, nombre de collectivités qui déclarent le compte, montant, et acquisitions de l'année pour les comptes de classe 2. C'est le fichier à prendre pour suivre un poste de dépense dans le temps sans relire les balances.
data/comptes-publics/2-resultats/series-nationales.csv.gz
1 050 KO · LICENCE OUVERTE · SHA-256 40812e07b5074943…
Les marchés festifs par commune
Un CSV d'une ligne par acheteur : code INSEE, population, nombre de marchés festifs déclarés, montant notifié, bornes de notification, marchés au code CPV suspect et leur montant, plus le plus gros marché avec son libellé et son code. C'est la couche « quoi » du dossier, celle qui ne dit jamais « combien ».
data/comptes-publics/2-resultats/faits-marches.csv.gz
Les autres agrégats
- encombrants.json
- radars.json
- associations.json
- ban.json
- prenoms.json
- naissances.json
- alimconfiance.json
- marches-paris.json
Les règles de reprise, les fichiers servis aux cartes et ce que nous ne publions pas sont sur la page Télécharger les données.