Site Finder v2 / GG-форсайт. Deterministic, no LLM. Fills the key_rate series
(empty after PR A) into macro_indicator from the live CBR source.
- services/scrapers/cbr_macro.py: fetch_key_rate via CBR SOAP DailyInfoWebServ
KeyRateXML(fromDate, ToDate) (POST soap+xml; ToDate capital-T + dateTime
suffix required — flat GET returns empty). Pure parse_key_rate_xml (TZ-safe
date, empty/malformed → []). Live-verified: 85 rows, current rate 14.5%.
- workers/tasks/cbr_macro_sync.py: upsert (key_rate, rf, daily, %) into
macro_indicator ON CONFLICT DO UPDATE; SAVEPOINT per row; fetch-fail → raise.
- beat: cbr-macro-sync-weekly (Mon 05:30 МСК, Europe/Moscow tz).
- 15 tests (pure parse + mocked upsert). No migration (table from #963 PR A).