gendesign/data
bot-backend 2e237d0288 feat(db): mv_quarter_price_index — quarter price-index из ДКП (Refs #760)
#647-1 foundation (P0, инфра — клиентскую цену НЕ меняет). MV
mv_quarter_price_index в main-БД: price_index = median_ppm2(quarter) /
median_ppm2(city) по cad-кварталам 66:% (Свердловская обл), нормировка к
ЕКБ city median (66:41, deals>=5).

Методология: deals>=5 → quarter median; sparse (<5) → district(66:NN) median;
нет данных → 1.0. basis-колонка маркирует источник. UNIQUE index на
quarter_cad_number (REFRESH CONCURRENTLY + O(1) lookup estimator #647-3).
Источник — существующая mv_quarter_price_per_m2 (95_mv_quarter_price.sql).

Deploy-ordering: deploy.yml применяет 'ls data/sql/*.sql | sort' (лексикограф);
99a_ сортируется ПОСЛЕ 99_ ('_'<'a'), 100_+ ушли бы перед 99_ → 99a_ корректно
применяется последним. Идемпотент (DROP IF EXISTS CASCADE), BEGIN/COMMIT.

Валидация (live, 2026-05-30): city_median≈110 883; 1972 квартала (quarter
1708 / district 262 / city_fallback 2); 0 NULL; index 0.277–3.98; spot-check
центр ЕКБ 66:41:0401018→3.98, периферия 66:17:0806002→0.28, median-quarter→1.00.

Зависимости: блокирует #647-2 (#762 schema+refresh) и #647-3 (integration,
за бэктест-гейтом #763).
2026-05-30 20:02:43 +03:00
..
sql feat(db): mv_quarter_price_index — quarter price-index из ДКП (Refs #760) 2026-05-30 20:02:43 +03:00
playwright_state.json add interactive parser of наш.дом.рф ЖК+flats with stealth Playwright 2026-04-27 17:58:40 +03:00