gendesign/tradein-mvp/backend/app
lekss361 1f875e2179 fix(tradein): harden same-building anchor address normalizer for prod formats (#677)
#677 SB anchor matched 0 comps on real prod addresses (live golden KPI 67% vs 95% sim).
Rewrites _normalize_building_key to be format-invariant: strips city/r-n/mkr/dot-tail,
drops street-type words from either side (Олимпийская наб. <-> набережная), tolerant
house parse (',', 'д.', '/N', 'кN', glued corpus letter), ё->е + street alias on full
multi-word core. Validated on live DB: Ткачёва 13->27, Б.Ельцина 6->44, Олимп 13->5,
Сакко 99->4, Февральской 21->3 (all were 0); 13!=130/131, 99!=100 over-match guarded.
ruff clean; 30 anchor tests (12 new); no #677 weighting/guardrail change; behind flag.

Refs #651 #652 #677
2026-05-30 01:19:21 +03:00
..
api fix(tradein): time-budget estimate enrichment + observable errors to stop opaque 502 (#654) (#673) 2026-05-29 17:22:02 +00:00
core feat(tradein): same-building anchor estimator (#651/#652 v2) behind flag (#677) 2026-05-29 21:01:21 +00:00
observability feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00
schemas feat(tradein): blend Avito IMV anchor into estimate + ДКП corridor advisory (#651, #652) (#674) 2026-05-29 17:42:06 +00:00
services fix(tradein): harden same-building anchor address normalizer for prod formats (#677) 2026-05-30 01:19:21 +03:00
tasks feat(tradein): daily asking→sold ratio refresh (#648 S4) (#663) 2026-05-29 13:49:36 +00:00
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
main.py feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00