Множители доверительного интервала по регионам #3540
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
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#3540
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/pi-multipliers-by-region"
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?
Зачем
Вилка цены строилась множителями
0.649/1.392— эмпирические p10/p90 отношения цены сделки к предсказанной, снятые один раз на Екатеринбурге (#1966). Заявлено 80% попаданий; фактически не выдерживается нигде, и хуже всего как раз в регионе калибровки.Замер
16.09.2026,
--engine full --sample 2000 --since 2025-06-01 --spread scattered --seed 42 --resolve-house-id --pi-report, гедоническая коррекция уже выключена (#3538).Воспроизведено на независимой выборке (seed 777): 77 → 0.453/1.040/1.455, 50 → 0.701/1.115/1.514. Устойчиво до третьего знака.
Что это значит для продукта
Честная вилка по Москве заметно ШИРЕ нынешней: относительная ширина 0.96 против 0.72. Это осознанный размен — либо диапазон отражает реальный разброс, либо мы продолжаем обещать 80% и давать 71%. Здесь выбран первый вариант. Если продукт предпочтёт узкий диапазон, правильный ход — перестать называть его 80%-ным, а не оставлять числа как есть.
Отдельно видна дыра: московские студии (n=145) — покрытие 49.7%, p10 0.304. Разрез по комнатам харнесс печатает, но множители пока только региональные.
Реализация
pi_multipliers_for_region(region_code)— по образцуsber_region_series_name: карта, фолбэк на прежние скаляры,warningпри промахе.target_region_code, которым уже резолвятся коэффициент asking→sold и ДКП-коридор. Второго источника не заведено.region_code— иначе замер молча считал бы старые скаляры и показывал покрытие, которого в проде нет. Замороженный реплей фикстуры региона не передаёт, его путь байт-в-байт прежний: регресс-гейт не двигается, базлайн не пересобирался.Что НЕ чинит этот PR
p50 > 1во всех трёх регионах: точка по-прежнему занижена на 4-14%. Причина отдельная — коэффициент asking→sold усредняет дисконт за 12 месяцев, а дисконт сузился. Замер по возрасту сделок (Москва): сделки с 2026-03 → сдвиг −12.7%, с 2025-06 → −3.4%, с 2024-06 → +1.8%. Занижение растёт на свежих сделках, то есть это не недоучёт роста рынка, а устаревший дисконт. Правка отдельным PR — она двигает цены.Test plan
pytestпо 6 файлам вилки + регресс-гейт → 106 passed (проверено в main-сессии)ruff format+ruff check— чисто--pi-reportпо трём регионам:achiev%должен подняться к 80