Analyse des données
Comment on passe de fichiers publics éparpillés entre l’ADEME, l’IGN et les impôts à une fiche par logement, avec son bâtiment, ses parcelles, ses ventes et une estimation de prix ? C’est ce que cette page raconte, avec les vrais chiffres et les astuces.
C’est un document vivant : quand une méthode change sur le site, la section change ici, et le journal des changements le note. Dernière mise à jour : 4 novembre 2026. Une question, une erreur repérée ? Écrivez-moi à eymeric.chauchat@gmail.com.
1. Les données de départ
Rien ici n’est inventé ni acheté : tout vient de données publiques. Le problème, c’est qu’aucune ne parle à l’autre. Un DPE ne connaît pas toujours son bâtiment, une vente ne connaît que ses parcelles, et les parcelles ne connaissent ni l’un ni l’autre.
| Source | Ce que c’est | Volume |
|---|---|---|
| ADEME, logements existants | Les DPE depuis la méthode de 2021 | 15,6 millions |
| ADEME, logements neufs | Les DPE des constructions neuves | 1,4 million |
| ADEME, tertiaire | Bureaux, commerces, bâtiments publics | 562 695 |
| ADEME, audits énergétiques | 713 680 audits, une ligne par étape de travaux | 3,2 millions de lignes |
| RNB (Référentiel national des bâtiments) | Chaque bâtiment de France, avec ses parcelles et ses adresses | 110 fichiers, 11,7 Go pour le national |
| Cadastre (IGN) | Chaque parcelle et sa contenance | 1,15 million de parcelles rien qu’en Ariège |
| DVF (DGFiP et Cerema) | Chaque vente immobilière | 4,7 millions de ventes d’un seul logement depuis 2021 |
Chaque jeu de l’ADEME a sa propre structure et son propre fichier, parce que le même nom de colonne ne veut pas dire la même chose d’un jeu à l’autre.
2. Récupérer 15 millions de DPE, poliment
L’API de l’ADEME est gratuite, et elle annonce ses limites : 500 ko/s et 20 secondes de calcul par minute pour un appel anonyme. À environ 247 lignes par seconde, tout télécharger prend 17 heures. J’ai mesuré 1, 3 et 6 connexions en parallèle : environ 315 lignes par seconde dans les trois cas. Ouvrir plus de connexions ne va donc pas plus vite, ça fatigue juste le serveur des autres.
- La base est construite une seule fois, à la main, sur mon ordinateur. Ensuite, chaque semaine, le site ne récupère que ce qui a bougé, grâce à la colonne
date_derniere_modification_dpe, que l’ADEME documente justement pour ça. Une semaine, c’est environ 150 000 lignes. - Le repère « à jour jusqu’au ». Un téléchargement complet dure plusieurs jours, et l’ADEME peut publier un nouveau lot pendant ce temps. Le repère est donc la date la plus récente que l’ADEME annonce au moment où chaque département commence, et on garde la plus ancienne : un lot publié en cours de route est repris la semaine suivante.
- La quarantaine. Certaines lignes contiennent des valeurs impossibles (un plafond à 5,5 × 10181 mètres de haut, par exemple). Elles sont mises de côté sans arrêter le chargement, et rien n’est publié tant que leur nombre n’a pas été vérifié.
Voir ce qui disparaît
L’ADEME retire parfois un DPE, mais l’API ne dit pas qu’il a été retiré : il disparaît, tout simplement. Le téléchargement de la semaine ne peut donc pas le voir. Alors chaque semaine, pour chaque département, je compare mon nombre de DPE avec celui de l’ADEME. S’ils sont égaux, rien à faire. S’ils diffèrent, je coupe la plage d’identifiants en 8 morceaux, je recompte chaque morceau, et je ne descends que dans ceux qui diffèrent. Sur les audits de l’Ariège : 8 comptages et 3 240 identifiants au lieu de 12 968, en 6,8 secondes.
Les trous sont aussi cherchés mois par mois, en comparant le nombre de DPE de chaque mois avec celui de l’ADEME, et les DPE manquants sont récupérés par leur identifiant. Le total publié correspond à celui de l’ADEME : 15 604 436. Un DPE retiré n’est pas effacé : il reste sur le site, marqué « Retiré du registre ADEME », avec la date où on l’a vu partir.
3. Ne rien perdre en route
Ici, « sans perte » a une définition précise : on reconstruit toutes les colonnes depuis les fichiers publiés, et on les compare aux DPE en direct chez l’ADEME. Si une seule valeur diffère, le test échoue.
- Pas de nombres à virgule flottante. Un nombre décimal stocké en flottant ne revient pas toujours exactement pareil. Chaque décimal est donc stocké comme un entier et une puissance de dix (78,5 devient 785 avec une décimale). C’est exact, et environ 5,5 Go plus léger que des flottants.
- Les noms de colonnes. Les CSV de l’ADEME nomment leurs colonnes par un libellé, qui peut changer. Le test compare donc avec les noms lus en direct chez l’ADEME, et deux colonnes qui arrivent sous le même nom arrêtent le chargement dès la première page.
- Une commune, plusieurs orthographes. « PAMIERS » et « Pamiers » : en Ariège, 13 codes communes sur 326 ont plusieurs écritures, et ce sont justement les grandes villes. Toutes les écritures sont gardées.
- L’outre-mer. Les coordonnées des DPE d’outre-mer sont dans un autre système que celles de la métropole, et l’ADEME les convertit comme si c’était la métropole : La Réunion atterrit en Écosse, la Guadeloupe au Bénin. Plutôt que de publier un point faux, je publie un point vide (8 700 DPE, 0,06 %), et les coordonnées brutes restent disponibles telles quelles.
- Les DPE sans adresse retrouvée. 531 646 DPE (3,4 %) n’ont pas pu être géolocalisés par l’ADEME, donc n’ont pas de département. Ils forment leur propre groupe, à côté des départements.
4. Relier un DPE à son bâtiment et à ses parcelles
Un DPE décrit un logement, mais pour connaître le terrain et les ventes, il faut savoir dans quel bâtiment il est. Le RNB donne à chaque bâtiment de France un identifiant, et la moitié des DPE (8 millions sur 15,6) le portent déjà. Pour les autres, je passe par l’adresse.
- Un index des adresses. Le RNB liste les adresses (BAN) de chaque bâtiment. J’en ai fait un index national : 40,5 millions de lignes, 350 Mo, reconstruit en 26 secondes. Un DPE sans identifiant de bâtiment trouve ses bâtiments par son adresse, avec le nombre de candidats affiché quand il y en a plusieurs.
- Un index par adresse, pas par DPE. Un nouveau DPE y trouve ses bâtiments dès sa publication, sans rien reconstruire.
- Sans les formes des bâtiments. Le contour de chaque bâtiment, c’est 90 % du fichier RNB. Le site n’en a pas besoin : 231 Mo de CSV deviennent 22 Mo pour l’Ariège.
Sur quelles parcelles est construit un bâtiment ?
Le RNB liste toutes les parcelles que le contour d’un bâtiment touche, même de quelques centimètres. Exemple réel, une maison à Tarbes : 99,94 % sur une parcelle de 634 m², 0,04 % sur celle du voisin (701 m²), 0,01 % sur une troisième (175 m²). Compter toutes ces parcelles lui donnerait 1 510 m² de terrain au lieu de 634.
La règle : un bâtiment est construit sur les parcelles qui portent au moins 10 % de son emprise, ou à défaut sur la plus grande. Un tiers des maisons débordent sur un voisin, et pour elles, compter toutes les parcelles touchées donnerait en médiane 2,2 fois trop de terrain. Avec cette règle, l’erreur médiane de l’estimation des maisons est de 16,6 %, contre 17,1 % en comptant toutes les parcelles.
5. Les ventes réelles
DVF, ce sont les ventes immobilières enregistrées par les impôts. Le problème : trois éditeurs, aucun complet.
- Les fichiers bruts de la DGFiP : les cinq dernières années, une ligne par bien, sans identifiant de vente.
- géo-DVF : les mêmes données, republiées plus tard (la dernière s’arrêtait à fin 2025).
- DVF+ du Cerema : une ligne par vente depuis 2014, mais livrée deux fois par an, région par région.
J’utilise DVF+ pour l’historique, et les fichiers bruts de la DGFiP pour les années récentes. L’astuce est dans ces fichiers bruts : une vente, c’est une suite de lignes consécutives avec la même date, la même nature et le même prix. Vérifié contre géo-DVF sur 2025 : 99,68 % des ventes retrouvées à l’identique, colonne par colonne. Regrouper simplement par date et prix n’en retrouverait que 91,5 % en Ariège.
Pourquoi une ligne par vente ? Parce que le prix est répété sur chaque ligne. Additionner les lignes, c’est afficher 2 800 000 € pour une maison vendue 400 000 €. Et un acte qui vend deux natures de biens (une maison et un terrain à bâtir, par exemple) devient deux ventes, comme le fait DVF+.
Les ventes ne sont visibles que connecté, jamais sur une page publique. L’Alsace-Moselle et Mayotte n’ont pas de DVF : il n’y a pas de ventes à afficher là-bas.
6. L’estimation de prix
Les ventes d’apprentissage
Je ne garde que les ventes d’un seul logement depuis 2021, d’au moins 10 m². Chaque vente est placée sur le bâtiment qui couvre le plus de ses parcelles, puis reçoit une classe énergie si un DPE du même type existe sur ce bâtiment, fait entre 24 mois avant la vente et 1 mois après (et pour un appartement, à 10 % près de la même surface). Si plusieurs DPE ne sont pas d’accord sur la classe, la vente n’en reçoit aucune.
| Ventes | Avec une classe énergie | |
|---|---|---|
| Ventes d’un seul logement | 4 727 907 | |
| Placées sur un bâtiment | 4 573 143 (96,7 %) | |
| Gardées après le nettoyage | 4 527 307 | 1 768 002 (39,1 %) |
| dont maisons | 2 602 812 | 1 196 542 (46,0 %) |
| dont appartements | 1 924 495 | 571 460 (29,7 %) |
Quatre modèles LightGBM
LightGBM, ce sont des arbres de décision entraînés les uns après les autres, chacun corrigeant les erreurs du précédent. Le site en utilise quatre, tous entraînés sur ces ventes :
- Le prix. Il regarde le logement (type, surface, terrain, dépendances, année de construction, classe énergie et GES), sa position, et le marché autour tel qu’il était le mois d’avant la vente : la moyenne des ventes dans des carrés de 250 m et de 1 km, les 10 ventes les plus proches des cinq dernières années, la médiane des 30 plus proches, la médiane de la commune. Rien de ce que le modèle voit ne vient du mois de la vente ou d’après. Une meilleure classe énergie ne peut jamais baisser le prix.
- Le bas et le haut de la fourchette. Deux modèles qui visent le prix sous lequel tombent 10 % et 90 % des ventes comparables.
- Le terrain. Le même modèle que le prix, mais contraint pour qu’un terrain plus grand ne baisse jamais la valeur. Il ne sert qu’à découper le prix d’une maison entre le logement et le terrain (voir plus bas).
La précision, mesurée sur des ventes jamais vues
Entraîné sur les 3 755 360 ventes d’avant juillet 2025, puis noté sur les 771 947 ventes de juillet 2025 à juin 2026. Le chiffre est l’erreur médiane sur le prix : la moitié des estimations se trompent de moins que ça.
| Erreur médiane | LightGBM | 10 ventes les plus proches | Régression hédonique | Médiane de la commune |
|---|---|---|---|---|
| France | 14,0 % | 17,8 % | 19,4 % | 20,0 % |
| Maisons | 15,9 % | 21,6 % | 21,0 % | 22,1 % |
| Appartements | 12,0 % | 14,1 % | 17,5 % | 17,8 % |
| Avec une classe énergie | 12,9 % | 18,0 % | 17,6 % | 19,2 % |
| Ariège (09) | 20,9 % | 27,5 % | 27,7 % | 30,0 % |
| Haute-Garonne (31) | 11,1 % | 13,2 % | 18,1 % | 17,7 % |
| Paris (75) | 12,2 % | 15,9 % | 17,9 % | 13,9 % |
38 % des estimations sont à moins de 10 % du vrai prix, 64 % à moins de 20 %. LightGBM gagne partout, alors c’est le seul que le site affiche. Les trois autres ne servent plus que comme informations données au modèle.
Pourquoi une perte de Huber ? Paris contient une queue de ventes mal enregistrées. Avec l’erreur quadratique classique, qui élève chaque erreur au carré, elles pèsent énormément : 16,0 % d’erreur à Paris, moins bien que la simple médiane de l’arrondissement. La perte de Huber compte les grosses erreurs linéairement : 12,2 % à Paris, et 14,0 % au lieu de 14,9 % pour la France.
Ce que vaut une classe énergie
Les ventes avec une classe, re-estimées à chaque lettre, comparées à D. Entre parenthèses, les chiffres publiés par les notaires en 2024.
| A | B | C | E | F | G | |
|---|---|---|---|---|---|---|
| Maisons | +16,2 % (+17 %) | +13,0 % (+13 %) | +7,9 % (+7 %) | −10,5 % (−9 %) | −20,3 % (−17 %) | −27,2 % (−25 %) |
| Appartements | +9,8 % (+16 %) | +7,1 % (+12 %) | +3,1 % (+6 %) | −4,2 % | −9,3 % | −13,3 % (−12 %) |
La fourchette
Elle devrait contenir 80 % des vrais prix, elle en contient 75,1 %. Elle s’élargit quand il y a peu de ventes comparables : en médiane, le haut vaut 2,3 fois le bas avec moins de 4 ventes comparables autour, 1,6 fois à partir de 13. Une fourchette large n’est pas un bug : c’est le modèle qui dit qu’il en sait moins.
Le logement et le terrain
On pourrait demander au modèle de prix « combien vaut la même maison sans terrain ? ». J’ai essayé sur 33 388 ventes de maisons (Ariège, Gironde, Hautes-Pyrénées) : 12,4 % des maisons obtiennent un terrain de valeur négative. La raison : une maison vendue sans terrain, c’est souvent une maison de ville en centre, plus chère au m² qu’une maison de village avec jardin. Le modèle a appris ça, donc « sans terrain » n’est pas une référence neutre pour lui.
D’où le quatrième modèle, forcé à ce qu’un terrain plus grand ne baisse jamais le prix. Il ne donne pas de prix, seulement la part du terrain, appliquée à l’estimation qui, elle, ne change pas. Sur 16 429 maisons de ces trois départements : aucune part négative, et voici la part médiane du terrain selon sa taille.
| Terrain | < 200 m² | 200 à 500 | 500 à 1 000 | 1 000 à 2 500 | 2 500 m² à 1 ha | > 1 ha |
|---|---|---|---|---|---|---|
| Part médiane du terrain | 3,9 % | 11,5 % | 18,1 % | 25,8 % | 34,8 % | 42,0 % |
L’estimation comme une somme
« Détail du modèle de prix » montre l’estimation comme une base plus six groupes (localisation, surface, terrain, énergie, année, date), qui s’additionnent exactement au prix. La méthode de référence pour ça (TreeSHAP) prendrait environ 217 heures pour 15 millions de DPE. J’utilise une méthode plus simple qui suit le chemin de chaque arbre : 80 minutes, et un écart médian de 0,3 à 2,2 points avec la méthode de référence selon le groupe.
7. Le prix au m² des pages Statistiques
Les pages Statistiques affichent la médiane des ventes réelles des douze derniers mois, et seulement à partir de 30 ventes. Pourquoi 30 ? J’ai comparé, sur les mêmes 771 947 ventes, la médiane observée avec ce que le modèle aurait pu publier à l’avance :
| Zone | Ventes l’année d’avant | Médiane observée | Modèle |
|---|---|---|---|
| Communes | 1 à 9 | 13,6 % | 11,4 % |
| Communes | 10 à 29 | 9,1 % | 8,2 % |
| Communes | 30 à 99 | 4,9 % | 5,0 % |
| Communes | 100 à 999 | 2,5 % | 2,8 % |
| Départements | 1 000 et plus | 1,4 % | 1,7 % |
À partir de 30 ventes, la vraie médiane est aussi bonne que le modèle, ou meilleure. En dessous, tout ce qu’on pourrait afficher se trompe de 8 % ou plus, alors la page dit simplement « trop peu de ventes ».
9. Les limites, et la suite
- Une estimation calculée sur les ventes passées ne voit ni l’état intérieur, ni la vue, ni les travaux récents.
- Là où il y a peu de ventes, l’erreur monte : 20,9 % en médiane en Ariège.
- Seuls 39 % des ventes ont pu être reliées à un DPE : en Corse, c’est 8 %.
- L’outre-mer n’a presque pas de DPE de la méthode 2021, donc presque pas de classe pour apprendre.
La prochaine fois qu’une méthode change, elle change ici. Le journal des changements dit quand.