feat(forecasting): monthly sales series builder for §9.6 (#951c) #1008
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1008
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/951c-forecasting-sales-series"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Site Finder v2 / EPIC 7 — #951 sub-PR 1. Детерминированный, без LLM, data-независимый. Часть #944.
forecasting/sales_series.py— месячный ряд проданных лотов (+площадь+ср.цена) наSegmentSpec, Y-ось для §9.6 регрессии. Два источника с разной зоной ответственности:objective_corpus_room_month— агрегаты класс/район (полные ДДУ+ДКП, count-weighted цена ×1000 тыс→₽).objective_lots— room×area×price сегментация (GROUP BY date_trunc('month', registration_date); survivorship-caveat задокументирован).Чистые DB-free helpers
price_bucket_of/room_area_bucket_of/log_diff/fill_month_grid. In-SQL CASE использует те же константы порогов, что и helpers (bound-params) → нет Python↔SQL дрейфа. Месяц без продаж → units=0 (реальный ноль), area/price → None. Graceful empty → low + zero-grid.62 теста (forecasting/ всего 113). code-reviewer opus OK (все 8 чеков: бакеты консистентны, weighted-price/scale верны, log_diff без -inf/nan, units=0 сохраняется, case-insensitive, survivorship surfaced). room_bucket source-specific (документировано на SegmentSpec). Refs #951