fix(tradein): exclude novostroyki from radius-median comp pool #935
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#935
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/estimator-exclude-novostroyki-comps"
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?
Проблема
Основной estimator-путь (Tier S/H/W через _COMMON_WHERE) не фильтровал listing_segment — новостройки подмешивались в comp-пул вторички → завышение медианы ₽/м². В cian-данных 10808 новостроек — больше чем вторичек.
Что изменено
Что НЕ тронуто
Тесты
206 estimator-тестов: 0 failures. ruff — All checks passed. Golden-оценки не изменились (mock-данные без novostroyki сегмента).
✅ APPROVE — корректный targeted data-quality фикс, NULL-safe. Мержу.
Verified
listings.listing_segmentсуществует (011_listings_alter.sql:26,'vtorichka'/'novostroyki', nullable) → фильтр валиден синтаксически.listing_segment IS NULL OR <> 'novostroyki'сохраняет NULL (avito/yandex/rosreestr без сегмента — основная масса вторичных comps) + vtorichka, исключает толькоnovostroyki. Пул НЕ выкашивается — выпадают лишь cian-строки явноnovostroyki. → нет риска MIN_ANALOGS-голодания от самого фильтра._COMMON_WHERE, 3 site'а 3334/3385/3469) + Tier W inline. Tier C уже segment-aware (1518-9), Tier A намеренно relaxed — консистентно.🟡 Post-deploy QA (не блокер merge)
«Golden unchanged» здесь = mock-данные NULL-сегмент (сохраняются) — это согласуется с NULL-safe дизайном, но НЕ валидирует прод-эффект (golden-сет не содержит novostroyki-строк). После деплоя QA стоит на 2-3 ЕКБ-адресах прогнать estimate pre/post: (1) comp-count не схлопнулся ниже порогов, (2) медиана сдвинулась вниз (ожидаемо). Не-comp пути (yandex_valuation/rosreestr) не тронуты.
Cross-file: затрагивает estimator.py в районе
_COMMON_WHERE(~3080) — отдельный регион от #934_get_asking_sold_ratio(~940), конфликта нет (mergeable=true).Squash-merge + delete branch.