[P0] Точность диапазона цены: устранить занижение премиум / класс-ЖК / видовых (кейс 50М→реально 100М+) #651

Closed
opened 2026-05-29 13:15:32 +00:00 by lekss361 · 0 comments
Owner

Killer-проблема для демо (Антон: «волнует только точность диапазона цены, есть кейсы где криво совсем»).

Root cause (подтверждено анализом estimator.py)

Итог = median(price_per_m2 аналогов) × area × repair_coef. Аналоги в _fetch_analogs фильтруются ТОЛЬКО по радиусу/площади±15%/комнатам/свежести — БЕЗ класса ЖК, застройщика, новостройка-vs-вторичка. Премиум/видовая квартира усредняется с массовым жильём рядом → занижение ~2x.

  • houses.house_class существует в БД (009_houses.sql), но НЕ используется в оценке.
  • Avito IMV (avito_imv_evaluations.recommended_price) и Cian valuation (external_valuations) уже фетчатся и возвращаются в ответе, но НЕ влияют на median.

Подходы (за выходные, комбинировать)

  1. Blend/clamp с IMV/Cian: если Avito IMV или Cian valuation > median × 1.25 → поднять оценку (weighted blend или расширить верхнюю границу диапазона до max(IMV, Cian)). Самый быстрый высокоэффективный фикс — estimator.py ~1014-1048.
  2. Коэффициент класса ЖК: _CLASS_COEF (premium/business/comfort/economy), читать houses.house_class целевого дома. estimator.py ~131-149/728-741.
  3. Расширить диапазон: показывать коридор Q1..max(Q3, IMV, Cian), а не точку — честнее для премиума.

Acceptance

  • На тест-адресе Артёма (где было ~50М при реальных ~100М) оценка/диапазон покрывает реальную цену (не вдвое ниже).
  • Диапазон не сужается искусственно когда есть сильные альт-оценки (IMV/Cian).
  • Юнит-тест на премиум-кейс.
**Killer-проблема для демо (Антон: «волнует только точность диапазона цены, есть кейсы где криво совсем»).** ## Root cause (подтверждено анализом estimator.py) Итог = median(price_per_m2 аналогов) × area × repair_coef. Аналоги в `_fetch_analogs` фильтруются ТОЛЬКО по радиусу/площади±15%/комнатам/свежести — БЕЗ класса ЖК, застройщика, новостройка-vs-вторичка. Премиум/видовая квартира усредняется с массовым жильём рядом → занижение ~2x. - `houses.house_class` существует в БД (009_houses.sql), но НЕ используется в оценке. - Avito IMV (`avito_imv_evaluations.recommended_price`) и Cian valuation (`external_valuations`) уже фетчатся и возвращаются в ответе, но НЕ влияют на median. ## Подходы (за выходные, комбинировать) 1. **Blend/clamp с IMV/Cian**: если Avito IMV или Cian valuation > median × 1.25 → поднять оценку (weighted blend или расширить верхнюю границу диапазона до max(IMV, Cian)). Самый быстрый высокоэффективный фикс — estimator.py ~1014-1048. 2. **Коэффициент класса ЖК**: `_CLASS_COEF` (premium/business/comfort/economy), читать `houses.house_class` целевого дома. estimator.py ~131-149/728-741. 3. **Расширить диапазон**: показывать коридор Q1..max(Q3, IMV, Cian), а не точку — честнее для премиума. ## Acceptance - На тест-адресе Артёма (где было ~50М при реальных ~100М) оценка/диапазон покрывает реальную цену (не вдвое ниже). - Диапазон не сужается искусственно когда есть сильные альт-оценки (IMV/Cian). - Юнит-тест на премиум-кейс.
lekss361 added this to the Praktika demo — Mon 2026-06-01 milestone 2026-05-29 13:15:32 +00:00
lekss361 added the
tradein
scope/backend
priority/p0
status/ready
labels 2026-05-29 13:15:32 +00:00
bot-reviewer added
status/needs-fix
and removed
status/ready
labels 2026-05-29 16:17:34 +00:00
bot-backend was assigned by bot-reviewer 2026-05-29 16:17:34 +00:00
bot-reviewer added
status/qa
and removed
status/needs-fix
labels 2026-05-29 17:42:07 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

2026-06-01

Dependencies

No dependencies set.

Reference: lekss361/gendesign#651
No description provided.