feat(macro): CBR inflation (ИПЦ) + activate §9.5 inflation channel (#946) #1162
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#1162
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/cbr-inflation-macro-946"
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?
Что
Добивает инфляционный вход #946 через ЦБ РФ (fedstat ИПЦ был за reCAPTCHA → ЦБ публикует инфляцию ОТКРЫТО). И не просто landит данные — активирует ранее-деградировавший §9.5-канал прогноза.
Источник (reproducible, не reCAPTCHA)
https://www.cbr.ru/Queries/UniDbQuery/DownloadExcel/132934— Excel за/hd_base/infl/, колонка «Инфляция, % г/г», месячный, region=rf, вся история 2013→. (HTML-таблица отдаёт только ~6 мес → Excel-эндпоинт = полный источник.) Live-проверено: 2026-04 → 5.58%.Содержимое
cbr_macro.py:fetch_inflation+ pureparse_inflation_xlsx(берёт «Инфляция», НЕ «Цель»/«Ключевая ставка»; graceful).cbr_macro_sync: upsertinflation_yoy(SAVEPOINT-per-row, CAST not ::, ON CONFLICT по PK, per-series guard — инфляция падает, ставка всё равно апсертится), на существующем weekly-beat.macro_series.py:inflation_yoyвMonthlyMacro(frozen, carry-forward).macro_coefficient.py§9.5:f_inflation— level vs 4% цель ЦБ, demand-suppressing выше цели, non-positive (анти-double-count с f_rate; исключён из _RATE_DRIVEN_FACTORS). Зарезервированный_W_INFLATION=0.08канал был DEGRADED → теперь BACKED+consumed;_CONF_HIGH_MIN_BACKED4→5.Качество
code-reviewer: ✅ APPROVE — forecast-math gate пройден: экономически верно, no double-count (non-positive clamp + не в rate-driven), детерминизм §16/§26, активация канала аддитивна по renorm-схеме (как задумано). Parse/upsert/cache-interaction (#1129) корректны, MonthlyMacro остаётся frozen. 194 macro + 902 forecasting тестов зелёные, ruff, без миграции/deps. NON-colliding (макро, не parcels.py/ИРД).Post-deploy
Первый
cbr_macro_sync(Monday-beat или ручной триггер) забэкфиллит инфляцию 2013→ → канал активируется. Forecast-числа сдвинутся для участков с инфляц-данными (выше-цель CPI → чуть более суппрессивный коэф — directionally sound). Backtest активированного канала — естественный follow-up (не блокер, веса advisory).Refs #946.