From d3a53ae4756198eb3de61efbef95db5a1ed16d01 Mon Sep 17 00:00:00 2001 From: Light1YT Date: Wed, 17 Jun 2026 18:47:07 +0500 Subject: [PATCH] =?UTF-8?q?docs(site-finder):=20clarify=20analyze=20confid?= =?UTF-8?q?ence=20is=20by-design=20distinct=20from=20=C2=A715=20(#1668)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _compute_confidence docstring claimed "stub до G1/G2/D1/D2" — те эшелоны уже отгружены, формулировка устарела. Это намеренно отдельная метрика: надёжность site-finder скоринга (coverage POI/район/рынок), НЕ форсайтный §15 confidence_engine (надёжность прогноза спроса/цены над форсайт-входами, которых в analyze hot-path нет). Поведение не меняется — резолв документацией. Closes #1668 --- backend/app/api/v1/parcels.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/backend/app/api/v1/parcels.py b/backend/app/api/v1/parcels.py index a12e1946..8da90083 100644 --- a/backend/app/api/v1/parcels.py +++ b/backend/app/api/v1/parcels.py @@ -814,11 +814,20 @@ def _compute_confidence( market_trend: dict[str, Any] | None, zoning: dict[str, Any], ) -> dict[str, Any]: - """X2 (#48) — composite confidence score 0..1 + caveats. + """X2 (#48) — composite confidence score 0..1 + caveats для site-finder analyze. - Stub-версия (до реализации G1/G2/D1/D2): использует сигналы которые уже - доступны на main. Композитный балл = avg of subscore'ов; caveats — list - конкретных проблем для UI ("Нет данных N, score K ненадёжен"). + Это НАДЁЖНОСТЬ САМОГО SITE-FINDER СКОРИНГА (coverage/свежесть входных + сигналов: POI, район, рынок, конкуренты, источник геометрии) — отдельная + by-design метрика, НЕ форсайтный §15 `forecasting.confidence_engine` + (`compute_report_confidence`). §15 оценивает надёжность ПРОГНОЗА + спроса/цены и работает над форсайт-входами (coverage/confounded/ + special_indices/sales_series), которых в analyze hot-path нет — поэтому + analyze намеренно держит свою лёгкую coverage-метрику, а не зовёт §15. + + Композитный балл = avg of subscore'ов; caveats — list конкретных проблем + для UI ("Нет данных N, score K ненадёжен"). См. #1668 (решение: оставить + раздельно by-design; «stub до G1/G2/D1/D2» — устаревшая формулировка, + те эшелоны уже отгружены, их confidence сюда не вплетается намеренно). """ caveats: list[str] = [] subscores: dict[str, float] = {} -- 2.45.3