All checks were successful
CI / changes (pull_request) Successful in 13s
CI Trade-In / changes (pull_request) Successful in 13s
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 1m4s
H1 (деньги, каждая оценка): time-adjust ДКП-коридора брал СберИндекс `residential_real_estate_prices`, а для обл.66 это 100% «Первичный рынок» (новостройки) → коррекция направленно противоположна вторичке (первичка Jan→May +0.89% vs вторичка −0.39%). Fix: SBER_COEFF_DASHBOARDS → (real_estate_deals, dinamika-tsen-obyavlenii) — обе вторичка; + segment-guard в SQL (`segment ILIKE '%вторичн%'`) как defense-in-depth. Live-verified: остаются только Вторичный-серии. H2 (честность): `_compute_confidence` ветка «≥4 адреса» не имела потолка разброса → пул с ±45% IQR + «расширили радиус из-за нехватки данных» уходил как «medium» вопреки объяснению. Fix: medium требует IQR/median < 0.35; + force-low при fallback-расширении с разбросом > 0.30. Regression-гейт: перегенерён baseline (dedup OFF, как в гейте) — ровно 1 из 277 фикстур-кейсов medium→low (высокодисперсный, справедливо): calibration.medium.n 2→1 (mape 14.64→6.99 — ненадёжный ушёл), low.coverage 81.82→81.88. Δ минимальна и обоснована. 127 тестов зелёные. Stale-СберИндекс (72д) — НЕ трогаю в коде: time-adjust валидно ре-базит Jan→May; сброс потерял бы валидную коррекцию. Реальный gap операционный (pull не гонялся с 19.06) — в scheduler/ops.
154 lines
3 KiB
JSON
154 lines
3 KiB
JSON
{
|
|
"calibration": {
|
|
"high": {
|
|
"coverage_pct": null,
|
|
"mape_pct": null,
|
|
"n": 0,
|
|
"n_covered": 0
|
|
},
|
|
"low": {
|
|
"coverage_pct": 81.88,
|
|
"mape_pct": 13.25,
|
|
"n": 276,
|
|
"n_covered": 226
|
|
},
|
|
"medium": {
|
|
"coverage_pct": 100.0,
|
|
"mape_pct": 6.99,
|
|
"n": 1,
|
|
"n_covered": 1
|
|
}
|
|
},
|
|
"confidence_order": [
|
|
"high",
|
|
"medium",
|
|
"low"
|
|
],
|
|
"expected_sold": {
|
|
"overall": {
|
|
"mape_pct": 13.23,
|
|
"median_bias_pct": -3.44,
|
|
"n": 277,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -15.49,
|
|
"p75_pct": 10.07
|
|
},
|
|
"per_rooms": {
|
|
"0": {
|
|
"label": "студия",
|
|
"mape_pct": 18.1,
|
|
"median_bias_pct": 16.96,
|
|
"n": 37,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": 1.37,
|
|
"p75_pct": 33.53
|
|
},
|
|
"1": {
|
|
"label": "1к",
|
|
"mape_pct": 11.06,
|
|
"median_bias_pct": -4.61,
|
|
"n": 93,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -14.43,
|
|
"p75_pct": 6.98
|
|
},
|
|
"2": {
|
|
"label": "2к",
|
|
"mape_pct": 18.26,
|
|
"median_bias_pct": -12.2,
|
|
"n": 74,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -24.35,
|
|
"p75_pct": -0.36
|
|
},
|
|
"3": {
|
|
"label": "3к",
|
|
"mape_pct": 9.34,
|
|
"median_bias_pct": -3.08,
|
|
"n": 43,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -10.26,
|
|
"p75_pct": 4.68
|
|
},
|
|
"4": {
|
|
"label": "4+",
|
|
"mape_pct": 20.27,
|
|
"median_bias_pct": 8.54,
|
|
"n": 30,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -6.86,
|
|
"p75_pct": 23.54
|
|
}
|
|
},
|
|
"per_segment": {
|
|
"бизнес": {
|
|
"mape_pct": 14.65,
|
|
"median_bias_pct": -10.54,
|
|
"n": 46,
|
|
"p25_pct": -22.93,
|
|
"p75_pct": -1.31
|
|
},
|
|
"комфорт": {
|
|
"mape_pct": 11.82,
|
|
"median_bias_pct": -4.35,
|
|
"n": 104,
|
|
"p25_pct": -16.35,
|
|
"p75_pct": 6.94
|
|
},
|
|
"премиум": {
|
|
"mape_pct": 68.92,
|
|
"median_bias_pct": -68.92,
|
|
"n": 1,
|
|
"p25_pct": -68.92,
|
|
"p75_pct": -68.92
|
|
},
|
|
"эконом": {
|
|
"mape_pct": 13.96,
|
|
"median_bias_pct": 3.39,
|
|
"n": 120,
|
|
"p25_pct": -9.57,
|
|
"p75_pct": 25.7
|
|
},
|
|
"элит": {
|
|
"mape_pct": 33.2,
|
|
"median_bias_pct": -33.2,
|
|
"n": 6,
|
|
"p25_pct": -42.75,
|
|
"p75_pct": -22.4
|
|
}
|
|
}
|
|
},
|
|
"headline": {
|
|
"ask_median_ppm2": 147545.8502510892,
|
|
"deal_median_ppm2": 125063.0,
|
|
"spread_pct": 17.98
|
|
},
|
|
"range_coverage": {
|
|
"overall": {
|
|
"coverage_pct": 81.95,
|
|
"n": 277,
|
|
"n_covered": 227
|
|
},
|
|
"per_confidence": {
|
|
"high": {
|
|
"coverage_pct": null,
|
|
"n": 0,
|
|
"n_covered": 0
|
|
},
|
|
"low": {
|
|
"coverage_pct": 81.88,
|
|
"n": 276,
|
|
"n_covered": 226
|
|
},
|
|
"medium": {
|
|
"coverage_pct": 100.0,
|
|
"n": 1,
|
|
"n_covered": 1
|
|
}
|
|
}
|
|
},
|
|
"sharpness": {
|
|
"median_rel_width": 0.743,
|
|
"n": 277
|
|
}
|
|
}
|