[P3] Сегментный множитель: confidence-гейт против band-by-predicted утечки (follow-up #2255) #2294

Open
opened 2026-07-03 18:44:06 +00:00 by bot-backend · 0 comments
Collaborator

Follow-up #2255/PR #2293. Сегментная поправка (флаг OFF) упирается в фундаментальную утечку: бэнд определяется по PREDICTED ppm², истинный сегмент при оценке неизвестен. Замер (sample 300): главный ущерб — эконом-sold сделки, predicted в бизнес-бэнд (и так завышенные +7.7%, множитель задирает дальше) → v4 (1.12/1.10) дал +3.08 п.п. overall MAPE; даже V2 (1.08/1.06) стоит +1.87 п.п.

Идея

Применять множитель только там, где band-mismatch маловероятен:

  • гейт по anchor_tier (same-building/micro-анкер = высокая уверенность в ppm²);
  • и/или по расстоянию до границы бэнда (не применять в ±N% от границы);
  • и/или по n_analogs/confidence.

Acceptance

  • OFF/ON бэктест на том же детерминированном sample: бизнес/элит bias сжимаются НЕ хуже V2, overall MAPE деградация ≤ +0.5 п.п.
  • Гейт-логика покрыта тестами; флаг остаётся общий (estimate_segment_multiplier_enabled).
  • Frozen baseline не трогать.

Точки: _apply_segment_multiplier / вызов в _price_from_inputs (tradein-mvp/backend/app/services/estimator.py), калибровка --calibrate-segments.

Refs #2255, #2293

Follow-up #2255/PR #2293. Сегментная поправка (флаг OFF) упирается в фундаментальную утечку: бэнд определяется по PREDICTED ppm², истинный сегмент при оценке неизвестен. Замер (sample 300): главный ущерб — эконом-sold сделки, predicted в бизнес-бэнд (и так завышенные +7.7%, множитель задирает дальше) → v4 (1.12/1.10) дал +3.08 п.п. overall MAPE; даже V2 (1.08/1.06) стоит +1.87 п.п. ## Идея Применять множитель только там, где band-mismatch маловероятен: - гейт по `anchor_tier` (same-building/micro-анкер = высокая уверенность в ppm²); - и/или по расстоянию до границы бэнда (не применять в ±N% от границы); - и/или по n_analogs/confidence. ## Acceptance - [ ] OFF/ON бэктест на том же детерминированном sample: бизнес/элит bias сжимаются НЕ хуже V2, overall MAPE деградация ≤ +0.5 п.п. - [ ] Гейт-логика покрыта тестами; флаг остаётся общий (`estimate_segment_multiplier_enabled`). - [ ] Frozen baseline не трогать. Точки: `_apply_segment_multiplier` / вызов в `_price_from_inputs` (tradein-mvp/backend/app/services/estimator.py), калибровка `--calibrate-segments`. Refs #2255, #2293
lekss361 added the
priority/p3
scope/backend
tech-debt
tradein
labels 2026-07-04 10:23:46 +00:00
Sign in to join this conversation.
No milestone
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".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2294
No description provided.