Skip to content

feat(duckpipe): maille quartier IRIS — prix et gap qualité-prix infra-communaux - #11

Merged
glopez-dev merged 2 commits into
mainfrom
feat/score-quartier-iris
Jul 9, 2026
Merged

feat(duckpipe): maille quartier IRIS — prix et gap qualité-prix infra-communaux#11
glopez-dev merged 2 commits into
mainfrom
feat/score-quartier-iris

Conversation

@glopez-dev

Copy link
Copy Markdown
Contributor

Résumé

Descend le prix et l'écart qualité-prix à une maille plus fine que la commune : le quartier (IRIS INSEE), cf. ADR-0015.

  • Bronze/silver : ingestion CONTOURS-IRIS® (IGN/INSEE, FlatGeoBuf, lu par `ST_Read`) → `iris_geom` ; les arrondissements PLM (751xx/6938x/132xx) sont préservés — même convention que le DVF, jamais filtrés sur `commune_geom`.
  • `iris_prix` : agrégat prix au grain IRIS sur une fenêtre poolée multi-millésimes (`prix_millesime` produit désormais aussi `dvf_points_`). Affectation point→IRIS contrainte à la commune de la mutation (equi-join pour les mono-IRIS, `ST_Intersects` sinon), point de frontière départagé au plus petit `code_iris` (déterministe). Millésime manquant = fenêtre réduite, pas d'échec.
  • Gold `score_quartier` : `n_prix_iris` normalisé par le même `_norm` que le communal, `gap_iris = score_commune − n_prix_iris`, `gap_pondere_iris`.
  • Export web : `choropleth/iris-high/{dept}.geojson` (communes multi-IRIS uniquement, ×5,5 d'économie CDN), clés meta additives `nb_iris`/`nb_iris_scores` — `schema_version` reste 1, le front feature-gate.
  • DQ/DAG : règles silver IRIS, `validate_gold_quartier`, taux d'appariement `iris_match` dans le rapport silver ; étapes `geometries_iris`/`iris_geom`/`iris_prix`/`score_quartier` dans Cloud Workflows.

Commit séparé : mise à jour de la référence `test_prix_millesime[2022]` (31 248 → 31 250), dérive du cache geo-dvf préexistante sur main, sans lien avec la fonctionnalité.

Validation

  • 83 tests verts, dont l'E2E complet du DAG (2 min 12) et 5 nouveaux tests IRIS (point-frontière, déterminisme, PLM, exclusions gold).
  • Run local sur données réelles : 16 409 IRIS exportés dont 14 491 scorés, appariement DVF→IRIS 99,95 %, 104 fichiers départementaux (max 1,6 Mo brut), contrôles gold quartier tous verts.
  • Signal produit vérifié à Lyon : gap de −0,233 (Debrousse, 6 529 €/m²) à +0,197 (Le Château, 2 334 €/m²) au sein de la même ville ; Paris couvert via ses arrondissements.

Note pour le run

La CI (`deploy.yml`) redéploie l'image et le yaml Cloud Workflows au merge sur main — le run pourra être lancé ensuite sans action manuelle. Prévoir le temps de la nouvelle étape `iris_prix` (jointure spatiale ~4 M de points, quelques minutes).

🤖 Generated with Claude Code

https://claude.ai/code/session_011gf7XhmgAMcocod1rVJ3eJ

…RIS)

Compute the quality-price gap below city level using the INSEE IRIS mesh
(ADR-0015):

- ingest CONTOURS-IRIS (IGN/INSEE FlatGeoBuf) as a bronze source and a
  silver iris_geom (PLM arrondissement codes preserved, never filtered
  against commune_geom)
- extend prix_millesime with a dvf_points output (unit-level geolocated
  mutations) and pool vintages in the new iris_prix silver: mono-IRIS
  communes matched by code, multi-IRIS ones by ST_Intersects constrained
  to the mutation's commune, boundary ties broken by smallest code_iris
- new gold score_quartier: n_prix_iris normalized with the communal _norm,
  gap_iris = inherited commune score - n_prix_iris, weighted variant by
  the commune's financial accessibility
- web export choropleth/iris-high/{dept}.geojson (multi-IRIS communes
  only) with additive meta keys nb_iris/nb_iris_scores; schema_version
  stays 1
- DQ rules for both silver tables, gold quartier validation, DVF->IRIS
  match rate in the silver report; new Cloud Workflows steps
…tion

The local dvf_full_2022.csv.gz cache was re-downloaded on 2026-06-30 and
now yields 31250 communes (+2 vs the reference base built on the
2026-06-25 file): geo-dvf republishes vintages under the same latest URL.
Count re-derived from the current file; the reference database was not
rebuilt. Pre-existing failure on main, unrelated to the IRIS feature.
@glopez-dev
glopez-dev merged commit 1c7a234 into main Jul 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant