feat(tradein/estimator): сегментная поправка headline+выкуп по ценовому бэнду за флагом (#2255) #2293

Merged
bot-backend merged 1 commit from feat/tradein-segment-multiplier into main 2026-07-03 18:43:39 +00:00

1 commit

Author SHA1 Message Date
7f483d0759 feat(tradein/estimator): сегментная поправка headline+выкуп по ценовому бэнду за флагом (#2255)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 8s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 1m38s
_apply_segment_multiplier: множитель по бэнду PRICE_SEGMENTS_PPM2 (единый
источник в estimator, backtest импортирует лениво через PEP 562 —
бэндинг доказуемо идентичен скореру) к median_price/ppm2/range И к
expected_sold (выкуп) той же пропорцией — бэктест скорит expected_sold,
поправка обязана доехать до оффера. Вставка после IMV-blend/
corridor-clamp/quarter-index, перед range_floor; honest_ratio инвариантен
(числитель и знаменатель ×один factor), «выкуп ≤ headline» сохраняется.

Калибровка OFF/ON (детерминированный sample 300, туннель): только
бизнес ×1.08 / элит ×1.06 (V2). v4 (1.12/1.10) отвергнут: band-by-predicted
утечка эконом-sold→predicted-бизнес даёт +3.08pp overall MAPE; V2 =
лучший трейд-офф (+1.87pp, бизнес bias −10.4→−3.2, элит −30→−24.6,
эконом intact). Эконом/комфорт намеренно 1.00. Дальнейшее сжатие bias —
только с confidence-гейтом (follow-up).

Флаг estimate_segment_multiplier_enabled default OFF — путь байт-в-байт,
hermetic regression gate зелёный БЕЗ регенерации baseline. Битый/пустой
multipliers-dict → no-op с warning. + режим --calibrate-segments в
backtest (print-only: bias→raw→shrinkage λ→m).

Refs #2255
2026-07-03 23:40:30 +05:00