Méthodologie de traitement

Les données DVF brutes ne sont pas directement exploitables pour des analyses de marché. Voici comment Normi les nettoie et les enrichit avant de les exposer.

Toutes les transformations sont appliquées à l'ingestion (pipeline) et restent stables entre les millésimes. Les champs résultants (prix_m2, surface_normalized, is_bulk_sale, is_price_outlier, computed_type_local) sont indexés et utilisés par tous les endpoints REST et outils MCP.

Prix au m²

Le champ prix_m2 est calculé à l'ingestion à partir du prix de vente et de la surface normalisée. Il est indexé directement pour les calculs de médiane et de percentiles. Les transactions sans surface disponible ne reçoivent pas de prix_m2 et sont exclues des statistiques agrégées.

Surface normalisée

DVF expose plusieurs champs de surface selon le type de bien et l'acte notarial. Normi les fusionne en un champ unique surface_normalized en donnant la priorité à la surface Carrez lorsqu'elle est disponible, puis en revenant à la surface réelle bâtie.

La surface Carrez exclut les espaces non habitables (combles, caves, sous-sols). Elle est généralement 5–15 % inférieure à la surface réelle bâtie pour un même appartement. Normi applique la même règle de priorité sur toutes les transactions pour garantir la cohérence des comparaisons.

Ventes en lot

Une vente en lot (is_bulk_sale = true) regroupe plusieurs biens dans une seule transaction : immeuble entier, parkings groupés, copropriété vendue en bloc. Ces transactions produisent un prix_m2 artificiellement bas qui biaise les médianes de marché.

~8 %
Part dans DVF brut
des transactions sont des ventes en lot
−4 à −12 %
Impact médiane
biais si incluses dans les stats
exclues
Par défaut
exclude_bulk_sales=true sur tous les endpoints

Passez exclude_bulk_sales=false uniquement si vous analysez spécifiquement les marchés de l'investissement locatif en lot.

Prix aberrants

Le champ is_price_outlier = true signale les transactions dont le prix_m2 est statistiquement aberrant pour leur zone et type de bien. La détection est calibrée de façon conservative pour ne pas éliminer les marchés de niche légitimes (biens de luxe, commerces atypiques).

~2 %
Part détectée
des transactions marquées comme outliers
exclues
Par défaut
exclude_outliers=true sur tous les endpoints

Typage normalisé des biens

Le champ DVF brut type_local contient des incohérences fréquentes — appartements classés en maisons, dépendances mélangées avec des lots habitables. Normi corrige ces anomalies dans le champ computed_type_local via un ensemble de règles propriétaires appliquées à l'ingestion.

Toujours préférer computed_type_local à type_local pour les filtres et les comparaisons — le champ brut génère environ 3–5 % de mauvaises classifications sur les grandes villes.

Géocodage

Les champs latitude et longitude sont obtenus via l'API Adresse officielle (BAN — Base Adresse Nationale, IGN / La Poste). Le pipeline géocode les adresses à l'ingestion initiale et à chaque nouveau millésime DVF (deux fois par an).

~94 %
Taux de géocodage
des transactions ont lat/lon
niveau rue
Précision
dans la majorité des cas

Médiane vs Moyenne

Toutes les statistiques Normi utilisent la médiane comme indicateur central, jamais la moyenne. Sur une distribution de prix immobiliers, quelques biens de luxe suffisent à tirer la moyenne de 10 à 20 % au-dessus de la médiane — ce qui donne une image faussée du marché typique.

Exemple Paris 11e (2024) : médiane 9 576 €/m², moyenne estimée ~10 800 €/m² (+13 %). La médiane est le prix du bien au milieu de la distribution — celui que paie réellement un acheteur médian.

Les endpoints retournent également les percentiles P25 et P75 pour qualifier la dispersion du marché.

Prime DPE verte

La prime DPE mesure l'écart de prix médian entre les biens énergétiquement performants (classes A/B) et les passoires thermiques (classes F/G) dans une même zone et pour un même type de bien. Elle est calculée à partir du croisement des transactions DVF avec les diagnostics DPE ADEME.

Une prime de +25 % signifie qu'un bien classé A ou B se vend en médiane 25 % plus cher qu'un bien classé F ou G dans la même zone, toutes choses égales.

Endpoint / outilCe que retourne la prime DPE
GET /v1/stats/dpe-premiumPrime A/B vs F/G + écart brut €/m² pour une zone
GET /v1/dpe/prix-par-classeMédiane prix/m² par classe DPE (A à G)
GET /v1/dpe/evolution-prime-verteÉvolution trimestrielle de l'écart A/B vs F/G depuis 2020
get_dpe_premium (MCP)Équivalent MCP de GET /v1/stats/dpe-premium
La prime DPE nécessite un minimum de transactions croisées DVF × DPE pour être statistiquement fiable. Les zones avec trop peu de ventes appariées retournent null.

Couverture DVF × DPE

Toutes les transactions DVF ne disposent pas d'un diagnostic DPE associé. La couverture varie selon le type de bien et la localisation.

~38 %
Couverture nationale
des ventes DVF ont un DPE ADEME apparié
~52 %
Appartements
couverture plus élevée (DPE obligatoire à la vente depuis 2006)
~30 %
Maisons
couverture plus faible en zones rurales

Fréquence de mise à jour

Jeu de donnéesSourceFréquenceCouverture actuelle
DVFDGFiP / data.gouv.frSemestrielle (avril + octobre)2014 – juillet 2025
DPE ADEMEADEME Open DataContinue (flux mensuel)2013 – présent
DVF étant semestriel, les transactions des 6 à 12 derniers mois peuvent être absentes ou partielles. Normi applique automatiquement une fenêtre de 12 mois minimum pour les analyses récentes et ajoute un champ notice si la requête a été auto-limitée.