|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 8s
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 / frontend-checks (pull_request) Successful in 1m10s
CI Trade-In / backend-tests (pull_request) Successful in 2m51s
/sales-vs-listings отдавал median_discount_pct без всякой проверки: после сегментного гарда #2660 по `%Космонавтов%` 2-комн. значение уехало с −11.9% на +36.4%, то есть пользователю написали бы «продали на 36% дороже, чем просили». Корень унаследованный — пейринг ДКП↔объявление идёт по улице без номера дома (ADR #721), так что на длинной улице в пару попадают квартиры разных ценовых классов. Пейринг здесь не чиним, перестаём показывать число, которому нельзя верить. Пороги подобраны по проду (симуляция эндпоинта на 238 реальных пользовательских запросах из trade_in_estimates, 128 дали хотя бы одну пару): - MIN_PAIRS = 10 — бутстрап по 12 плотным группам: p90 отклонения медианы подвыборки от полной 18.8 п.п. при k=5, 12.0 при k=10, 9.9 при k=15. Кривая ломается на 10; совпадает с уже принятым в продукте sell_time_sensitivity_min_n_lots. - Санитарный диапазон [−60%, +20%] — асимметричный. Сверху распределение разорвано (…+16.9, пусто, +33.7…+103.1), отсечка попадает в разрыв; ни один городской бакет asking_to_sold_ratios не даёт плюса вообще (max 0.9132). Снизу разрыва нет (у большого минуса есть механизм — занижение цены в ДКП), граница грубая «заведомо не рынок»: 2.5× худшего бакета (студии, −23.8%). Форма отказа — не пустота: новое поле median_discount_explanation по образцу confidence_explanation оценщика, фронт рендерит его вместо числа. Гаснет ровно строка «медианный торг»: сделки, медиана ₽/м², диапазон, linkage_rate_pct и per-pair discount_pct не трогаются. |
||
|---|---|---|
| .. | ||
| public | ||
| scripts | ||
| src | ||
| .dockerignore | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| next.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| tsconfig.json | ||