Dynamique immobilière et potentiel de croissance d'une zone (point + rayon). Combine 3 sources officielles : permis de construire (Sit@del/SDES, maille COMMUNE — logements autorisés/commencés récents → habitants attendus), zones AU du PLU (Géoportail de l'Urbanisme/IGN — futurs quartiers réservés, géolocalisés), ventes de terrains à bâtir (DGFiP DVF, géolocalisées). Sortie en 2 registres : 'note' = VOLUME (logements autorisés/commencés, nombre et immédiateté des zones AU) destiné au scoring de potentiel ; 'info' = quartiers concernés (nommés), habitants attendus, prix indicatifs (contexte, hors score). En ville dense les permis-commune sont grossiers → s'appuyer sur zones AU + terrains (géolocalisés). Point côtier/isolé sans commune au géocodage inverse → couverture.permis='indisponible:commune_introuvable' et meta.code_commune=null, MAIS zones AU + terrains restent servis (calcul par rayon) — l'outil ne plante jamais pour ça. Paris/Lyon/Marseille : Sit@del ne descend pas à l'arrondissement → les permis servis sont ceux de la VILLE ENTIÈRE (meta.code_commune_permis, ex 75056), couverture.permis='partiel:ville_entiere_plm' et le signal ne s'appuie alors que sur les zones AU. Commune absente de Sit@del, ou sans aucune année pleine → couverture.permis='indisponible:no_data' (les zéros ne sont PAS une donnée ; info.permis.annee_en_cours peut malgré tout être servi pour une commune nouvelle). Les totaux permis ne somment que des ANNÉES PLEINES (info.permis.annees_pleines) ; l'année en cours, incomplète (le SDES publie avec ~2 mois de retard), est servie à part dans info.permis.annee_en_cours avec ses mois_couverts — ne JAMAIS la comparer telle quelle à une année pleine ni l'ajouter aux totaux. Moins de 5 années pleines en base → 'partiel:fenetre_courte' ; une année de la fenêtre à moins de 12 mois publiés → 'partiel:annees_incompletes' (total SERVI mais non comparable, non scoré dans les deux cas). 'geojson' = polygones des zones AU pour la carte. Sources : SDES, IGN/GPU, DGFiP.