fix(analytics): bucket by area/deal_count — rosreestr aggregates packed deals
Critical bug в quartirography() и _BUCKET_SQL: rosreestr с 2025Q1 публикует
пакетные ДДУ одной строкой (area=SUM, deal_count=N). Bucket по сырой area
загонял 5×40м² в bucket «80+ м²», давая 70% портфеля 80+ вместо реальных 4%.
Изменения:
- area → (area / deal_count) при bucket'инге
- COUNT(*) → SUM(deal_count) для подсчёта реальных квартир
- удалён area<=200 фильтр (отрезал 95% свежих агрегированных строк,
realestate_type_code='002001003000' уже фильтрует не-квартиры)
Эффект:
- Dashboard chart «парадокс портфеля»: 80+ был 70% → стал 3.1%
- recommend_mix shares: 1-к 58%, 2-к 29%, 3-к 5%, Студии 4%, 80+ 4%
- total_deals для Свердл за 24 мес: 7553 → 40084 (агрегация теперь учтена)