Chaque source suit le même pipeline documenté. Traçabilité, reproductibilité, indice de confiance par enregistrement.
Récupération programmée depuis les API et miroirs publics. Versioning par millésime source.
Typage strict, normalisation adresses via BAN, déduplication, rejet des enregistrements aberrants.
Liaison inter-sources par ban_id, code_insee, id_parcelle. Scoring de la qualité du match.
Indicateurs dérivés, vues statistiques, journal d'audit public, mise à jour incrémentale.
Les données sources sont récupérées en continu via des pipelines dédiés. Chaque source a son propre orchestrateur et sa propre queue de téléchargement. Les millésimes sont conservés afin de pouvoir rejouer l'historique si nécessaire.
Les enregistrements bruts passent par une série de filtres métier : typage strict, normalisation des adresses via BAN, déduplication, rejet des ventes groupées et des valeurs hors plage résidentielle. Les enregistrements aberrants sont écartés ; les ventes groupées sont flaggées et exclues du calcul du prix au m².
Le cœur du projet : rattacher chaque enregistrement à un ban_id, identifiant d'adresse pérenne qui sert de pivot universel.
Pour chaque enregistrement, un score de correspondance d'adresse est calculé à partir de plusieurs signaux : similarité du nom de voie, concordance du numéro, commune, et distance géodésique. Ce score est stocké avec chaque enregistrement et conditionne sa publication. Les enregistrements sous seuil voient leur lien ban_id remis à NULL automatiquement, puis un nouveau matching est tenté avec une recherche élargie.
Les indicateurs dérivés sont calculés à partir des données croisées :
Un journal d'audit consigne chaque correction automatique : ré-attribution d'un ban_id suite à un score insuffisant, purge d'enregistrement aberrant, transition d'état d'un cron de reconcile.
Chaque enregistrement porte un score de confiance de 0 à 100 et une date de dernière mise à jour par source. Les indicateurs exposés sont décrits dans le catalogue des 7 référentiels et accessibles via l'API REST.