fix(leads): window revenue_total/deals_total to leads_window (#1383)
(low) 08_enrich_economics.py/main: real_n_lots/sold_pct/price считаются по всем лотам, но отчёт подписывает их как период (12 мес/90 дней)
fix(site-finder): apply 12mo cutoff to n_lots/sold_pct/price in enrich economics (#1513)
fix(estimator): DKP corridor uses P10/P90 not min/max (#1520)
(low) estimator.py/_fetch_dkp_corridor: low/high_ppm2 = чистые min/max выборки, а не P10/P90 — advisory-текст по одиночному выбросу
(low) De-partиализация 5 listings-индексов в 097 на ложной посылке «is_active = 100% true», которую 104 подтверждает устаревшей
fix(sql): restore partial WHERE is_active predicate on listings indexes (#1398)
(low) server.py/smart_suggestions: нет фильтра 'score выше точки', обещанного в докстринге
fix(site-finder): smart_suggestions filter parcels above documented score threshold (#1503)
fix(site-finder): volume-weighted median_price_m2 (#1511) + consistent-period MTS (#1512)
(low) 06_match_economics.py/main: median_price_m2 считается по равновзвешенным строкам room×month, а не по объёму сделок
(low) 06_match_economics.py/main: months_to_sellout смешивает сток разных месяцев окна со sold за всё окно
fix(forecasting): deal_count confidence note carries «за N мес» window (#1637)