Comptes des collectivités

collectivités
opendata
datatouille

(Christian Quest) #1

La DGFIP et la DGCL publient via un site internet les comptes des collectivités.

Ce site permet de télécharger des données pour une collectivité et pour une année sous forme de fichier .ods

Par contre, aucun téléchargement global n’est prévu et ce site web est un vrai clicodrome.

J’ai scrapé ces fichiers pour toutes les communes d’un département (l’Ain) et toutes les années de 2000 à 2016 et remis ça en json avec les chiffres essentiels (pas les multiples calculs et comparaison avec les autres communes).

Le fichier de test est dispo sur http://data.cquest.org/dgfip_comptes_collectivites/


(Nicolas Bonnel) #2

Super, c’est très intéressant, beau travail !

2 petites questions :

  • Où peut on trouver les informations de métadonnées ? Les champs sont plutôt compréhensibles sauf quelques un comme “fctva”
  • Serait-il possible d’ajouter le code INSEE de la commune pour pouvoir faire des jointures plus facilement ou l’info n’est pas présente dans les fichiers ?

(Christian Quest) #3

FCTVA… c’est le nom que j’ai trouvé dans le fichier ODS, il y a de la doc disponible sur le site d’origine… mais je n’arrive pas à accéder en ce moment (peut être parce que je scrape en même temps).

Pour le code INSEE, j’ai ajouté ça pour le retrouver lors de la conversion .ods vers json, les prochains fichiers devraient l’avoir.

La doc est ici: https://www.impots.gouv.fr/cll/zf1/departements/flux.ex?_flowExecutionKey=e2s1&_eventId=methodologie


(Christian Quest) #4

J’ai sorti un export en CSV, sûrement plus facile à exploiter.

Il y a un fichier par année, le contenu peut encore évoluer, je vise à avoir les mêmes colonnes, quitte à ce qu’elles soient vides. Il manque quelques codes INSEE de commune, parfois en lien avec les fusions ou changements de noms.

Pour parser ces nombreux fichiers .ods j’ai tenté plusieurs approches:

  1. soffice : appel direct de libreoffice pour convertir les .ods en csv
  2. unoconv: ligne de commande qui exploite le moteur de libreoffice pour faire la conversion en csv
  3. parsing direct du xml des fichiers .ods (avec lxml en python)… la solution la plus stable et surtout la plus rapide (80ms par fichier au lieu d’environ 1s).

La conversion .ods > csv pour une année prends du coup dans les 10 minutes, et peut se paralléliser (ce qui ne semblait pas possible avec unoconv ou soffice).

Ah oui… FCTVA est un Fonds de Compensation de la TVA -> https://www.collectivites-locales.gouv.fr/fonds-compensation-taxe-sur-valeur-ajoutee-fctva

J’ai fait un petit calcul… c’est environ 1.4 million de requêtes qui ont été nécessaires pour récupérer plus de 600.000 fichiers .ods et comme j’ai été cool, je n’ai rien parallélisé :wink:

Pour les curieux, les scripts utilisés sont dispos sur https://github.com/etalab/comptes-collectivites


(Jean-Marc Lazard) #5

merci beaucoup Christian pour cette ressource, on l’a intégrée ici si certains veulent l’explorer par filtres et récupérer des bouts via téléchargement ou API


(Charles Nepote) #6

Superbe ! Deux petites remarques de détail :

  • les champs dep et depcom sont vus comme des chiffres par LibreOffice ce qui donne “1” et “1004” pour Ambérieu-en-Bugey ; ils sont bien traités si tu mets ces champs entre guillemets dans le CSV
  • POURQUOI LES NOMS DE COMMUNES EN MAJUSCULE ET NON ACCENTUES ? :wink: J’aurais eu tendance à mettre les versions majuscule initiale et article initial : “Les Mées” plutôt que “MEES (LES)”

(Charles Nepote) #7

@jean-marc.lazard : très chouette. Une broutille, on ne peut pas trier par année dans le mode “tableau” (et ces dernières sont dans le désordre). (Exemple.)


(Thomas) #8

@cquest Je ne sais pas si tu es passé par là mais cela peut potentiellement te servir: les scripts de scrapping de NosFinancesLocales.fr avec le site associé
Comme le libellé de NosFinanceLocales indique 2000 à 2012 mais que MAJ repo du scraper = 2017, à jour?!


(Benjamin Ooghe-Tabanou) #9

Le site de visualisation ne présente les données que jusque 2012, mais elles sont dispo de 2000 à 2015 en téléchargement ici : http://www.nosdonnees.fr/dataset/donnees-comptables-et-fiscales-des-collectivites-locales
Le site a changé donc le scraper ne tourne plus, mais Christian a pris la relève manifestement :slight_smile:


(Jean-Marc Lazard) #10

merci du feedback, tric activé !


(Christian Quest) #11

Le site des comptes des collectivités a changé, donc l’extraction était à refaire.

Pour les noms de communes, ce sont ceux présents dans les fichiers d’origine, je les ai conservé car tous n’ont pas été retrouvé avec la simple petite requête sqlite actuelle dans le COG historique de l’INSEE… d’où le côté encore “beta” du résultat.

Pour les dep, depcom avec quote… en fait je les génère mais csvstack les supprime. J’ai corrigé ça.

J’ai complété hier par d’autres données, le détail des dotations de fonctionnement (de 2014 à 2017): http://data.cquest.org/dgcl_dgf/
C’est là aussi du quick and dirty… j’y ai passé à peine 1h (bien plus simple, une cinquantaine de CSV à recombiner).

C’est sur un autre site (de la DGCL cette fois), qu’on les trouve: http://www.dotations-dgcl.interieur.gouv.fr/consultation/dotations_en_ligne.php


(Christian Quest) #12

Je viens de mettre à jour ces données avec les comptes individuels des communes pour l’année 2017…

On passe à plus de 660.000 lignes de CSV !

Ah oui, le gag, les fichiers .ods téléchargeables sur le site de la DGFiP ne s’ouvrent qu’avec une version 5.x de LibreOffice. Heureusement que j’ai mon fait mon propre parsing XML !


(Joël Gombin) #13

Super @cquest !
Envisages-tu de faire de même pour les autres strates de collectivités (départements, régions) ?


(Christian Quest) #14

Si on me le demande gentiment :wink:


(Joël Gombin) #15

alors je te demande très gentiment… (blague à part ce serait super pour mettre les comptes d’une collectivité donnée en regard des autres)


(Nicolas Truet) #16

Travail intéressant qui présente surtout l’intérêt de pouvoir remonter l’historique depuis 2000.

Mais l’idéal serait que la DGFIP publie l’historique depuis 2000 des données brutes des balances comptables comme elle le fait pour les exercices postérieurs à 2010 pour les Communes, Intercommunalités, Départements, Régions, Syndicats, Groupements divers et autres EPL (https://www.data.gouv.fr/fr/datasets/balances-comptables-des-communes/).

Car avec les données brutes des balances, il est possible de faire tous les retraitements souhaités sans être dépendant des agrégats de la DGFIP et cela permet aussi de choisir sa propre méthodologie sans dépendre de celle de la DGFIP (par exemple, en analyse financière des collectivités seules les opérations réelles sont habituellement prises en compte, alors que les agrégats de la DGFIP intègrent les opérations d’ordre qui brouillent la lecture… ou encore le fait que la DGFIP contracte des montants soit dépenses nettes ou recettes nettes alors qu’elles apparaissent dans les comptes des collectivités en dépenses et recettes, éloignant ainsi la présentation faite des comptes soumis au vote des conseils municipaux).