fix(tradein): cadastre ЖКХ-fallback + COALESCE merge-key + median-floors guard #2090
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#2090
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/tradein-zhkh-cadastre-plus"
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?
Три фикса в серии sale-share data-quality (по находкам юзера в этой сессии).
1. COALESCE merge-key (
house_dedup_merge.py) — фиксит Вайнера 66P4c-мерж схлопнул 2674 дубля, но Вайнера 66 НЕ схлопнулась: house 11320
address=«улица Вайнера, 66 · р-н Центр» —tradein_canon_addrне стрипает trailing-район → canonвайнера66рнцентр≠вайнера66. Ноshort_address=«улица Вайнера, 66» чистый. → cluster_key теперьtradein_canon_addr(COALESCE(short_address, full_address, address)). Re-run мержа после деплоя поймает Вайнера + ещё район-noise дубли.2. Cadastre ЖКХ-fallback (
zhkh_flats_loader.py+ CLI--cadastre)Guid-лоадер промахивается, когда наш
gar_house_guid≠ ЖКХhouseGuid(Переходный 6: наш guid → ЖКХtotal 0; но cadastre66:41:0604007:747→ 165).searchByAddressпринимаетcadastreNumber— guid-независимо. Нашиlistings.building_cadastral_numberдают cadastre. Новыйmatch_houses_to_zhkh_by_cadastre(UPDATE по house.id, т.к. ЖКХ-guid ≠ наш). 736 домов без ЖКХ имеют cadastre.3. Median-floors плаузибилити-гард (мигр.153)
Башни с gar-недосчётом без ЖКХ давали ложные доли (Переходный 6 до фикса: gar=9, листинги 19-26 эт → 77.8%). Гейт усилен:
denom >= GREATEST(total_floors, median(listings.total_floors), 8). Медиана (не max) устойчива к одному чужому листингу. gar=9 < median(24) → NULL (честно «нет данных»). Переходный 6 (уже zhkh=165) проходит.Проверки
test_house_dedup_merge+test_zhkh_flats_loader→ 36 passed.После мержа (делаю сам)
merge_duplicate_houses→ Вайнера 66 схлопнется.--cadastre) → дорезолвить часть из 736.