gendesign/backend/app/services/forecasting
Light1YT e3bb125910 feat(forecasting): monthly sales series builder for §9.6 (#951c)
Add backend/app/services/forecasting/sales_series.py — deterministic monthly
sold-units (+area+avg price) time series per SegmentSpec, the Y-axis foundation
for the §9.6 key-rate regression. Two sources with distinct authority:
objective_corpus_room_month (class/district aggregates, full ДДУ+ДКП, count-
weighted price ×1000 тыс→₽) and objective_lots (room×area×price segmentation,
GROUP BY date_trunc registration_date; survivorship caveat documented).

Pure DB-free helpers price_bucket_of / room_area_bucket_of / log_diff /
fill_month_grid, unit-tested. In-SQL CASE bucketing shares the same threshold
constants as the helpers (bound params) → no Python↔SQL drift. Months with no
sales → units=0 (real zero), area/price → None. Graceful empty/thin → low
confidence, zero-filled grid. Mirrors macro_series.py (PR2). room_bucket
semantics are source-specific (documented on SegmentSpec). 62 tests, ruff clean.
2026-06-03 10:50:28 +05:00
..
__init__.py feat(forecasting): monthly sales series builder for §9.6 (#951c) 2026-06-03 10:50:28 +05:00
macro_series.py feat(forecasting): monthly macro series + regime classifier (#951b) (#1007) 2026-06-03 05:37:43 +00:00
sales_series.py feat(forecasting): monthly sales series builder for §9.6 (#951c) 2026-06-03 10:50:28 +05:00