fix(estimator): radius (source,source_id) dedup + split-house corridor disclosure (audit #1871 P2) #1880
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1880
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "audit/1871-p2-estimator-dedup-split"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Audit-issue #1871 🟠 P2 — два фикса в чувствительном
estimator.py(4500 строк), оба за флагами.Dedup (
estimate_radius_dedup_enabled, default ON)radius-путь
_fetch_analogs(Tier S-canonical/S-fallback/H/W) кэпил только per-address (rn_addr ≤ 5), но(source,source_id)-дубли делят один address и выживали на разных рангах → раздувалиn_analogs(prod 2026-06-23: yandex 48, cian 9, n1 5 excess). Добавленrn_dup-windowPARTITION BY source, CASE(id:/url:/ctid:) ORDER BY scraped_at DESC+AND rn_dup=1во все 4 тира — зеркалит anchor-dedup (:1556). CASE/ctid-guard не схлопывает legacy NULL-source_id (все тирыFROM listingssingle-table → ctid в scope). psycopg3:column::typeлегально, bind-param::отсутствует.Split disclosure (
estimate_wide_corridor_disclosure_enabled, default OFF)Tier A матчит по address-regex (намеренно — дом дробится на house_id), на split-доме разной этажности коридор растягивается до 148-170%. При
corridor_pct > 0.6→ понизить confidence + caveat «дом разбит на секции». НЕ трогает point/median/range — только confidence+explanation (есть регресс-тест). Merge house_id отклонён (recon: вреден — Tier A намеренно обходит house_id).Test plan
Rollout
Deploy:
deploy-tradein.yml.Refs #1871
🤖 Generated with Claude Code