feat(mera): макро-ряды ЦБ РФ — ипотека по субъектам и ключевая ставка #3427
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3427
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/mera-cbr-macro"
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?
Что и зачем
Три XLSX ЦБ РФ (выдачи, ставка, задолженность) в разрезе субъектов, помесячно с 01.2019, плюс ключевая ставка через SOAP
DailyInfo.asmx(методKeyRate; GET на нём не работает, только POST). Всё анонимно, без ключа.До этого PR в МЕРЕ не было ничего про ипотечные ставки: grep по
key_rate|mortgage_rate|ипотечндавал единственный хит — строку дисклеймера в PDF-экспортёре.Таблицы:
cbr_mortgage_series (region, period_month, series)иcbr_key_rate.fetched_atне обновляется вDO UPDATE— по уроку #2846 колонка значит «когда мы ВПЕРВЫЕ увидели период», и по ней меряется такт публикации источника. Время последней загрузки хранитscrape_runs.Найденное на реальных данных
Раскладка листов у ЦБ разная, и это ловушка. В
02_11/02_13шапка периодов в строке 3 текстом («Январь 2019»), а в02_14(задолженность) — уже в строке 2 и настоящимиdatetime. С захардкоженным индексом строки серияdebt_rubмолча давала ноль строк при полностью зелёных тестах — фикстуры были собраны по форме первых двух файлов.Теперь строка шапки ищется динамически: берётся строка с наибольшим числом распознанных периодов среди первых шести, а ячейка периода принимает и русский текст, и
datetime.Проверка
Прогон на живых файлах ЦБ — каждая из трёх серий даёт 8 736 точек (96 территорий × 91 месяц, 01.2019–07.2026):
rate_rubnew_loans_rubdebt_rubruff check— чисто; полный сьютpytest— 5 655 passed, 37 skipped (в т.ч. два новых регресса: раскладка сdatetime-шапкой и «шапка не найдена → пустой результат, а не мусор»).Границы
estimator.pyне тронут — как ипотечная ставка войдёт в оценку, это отдельное продуктовое решение. Этот PR только про данные и их загрузку.Миграции 292 (таблицы) и 293 (сид расписания,
enabled=false,interval_days7, окно 07:00–08:00 UTC — сверено с соседними сидами). Новая зависимость:openpyxl.