[P1] Починить rosreestr_dkp_import (deals заморожены 182д) + алерт на max(deal_date) #2212

Closed
opened 2026-07-02 19:18:37 +00:00 by lekss361 · 1 comment
Owner

Эпик: #2200

Находка (Data, High, verified): deals max(deal_date)=2026-01-01 (182 дня), 0 сделок за 90д. Джоба rosreestr_dkp_import гоняется ежедневно со статусом done и {rows_fetched:49791, rows_inserted:0} — читает тот же upstream-снапшот (6.83M строк, тоже max period 2026-01-01), скипает всё. «done»-статус маскирует 6-месячную аварию данных.

Impact: все asking-to-sold ratios, dkp_corridor, quarter_price_index калибруют цены июля-2026 по рынку 6-мес давности; в связке со Sber-индексом 62д (лимит 35) time-adjustment хронически недо-корректирует.

Acceptance:

  • Разобраться почему upstream gendesign_rosreestr_deals заморожен на 2026-01 (источник/FDW/загрузчик) и восстановить приток свежих ДКП.
  • Алерт на max(deal_date), а не на статус прогона (freshness-monitor, не job-status).
  • Проверить, что после фикса asking-to-sold ratios пересчитываются на свежих сделках.

Scope: tradein-mvp/backend rosreestr poll/import, scheduler, observability.

Эпик: #2200 **Находка (Data, High, verified):** `deals` max(deal_date)=2026-01-01 (182 дня), 0 сделок за 90д. Джоба `rosreestr_dkp_import` гоняется ежедневно со статусом `done` и `{rows_fetched:49791, rows_inserted:0}` — читает тот же upstream-снапшот (6.83M строк, тоже max period 2026-01-01), скипает всё. «done»-статус маскирует 6-месячную аварию данных. **Impact:** все asking-to-sold ratios, dkp_corridor, quarter_price_index калибруют цены июля-2026 по рынку 6-мес давности; в связке со Sber-индексом 62д (лимит 35) time-adjustment хронически недо-корректирует. **Acceptance:** - [ ] Разобраться почему upstream `gendesign_rosreestr_deals` заморожен на 2026-01 (источник/FDW/загрузчик) и восстановить приток свежих ДКП. - [ ] Алерт на **max(deal_date)**, а не на статус прогона (freshness-monitor, не job-status). - [ ] Проверить, что после фикса asking-to-sold ratios пересчитываются на свежих сделках. Scope: `tradein-mvp/backend` rosreestr poll/import, scheduler, observability.
lekss361 added the
data
observability
priority/p1
scope/backend
tradein
labels 2026-07-02 19:20:22 +00:00
Author
Owner

Сделано в PR #2226 (смержен, deploy success, миграция 162 применена; row deals_freshness_monitor в scrape_schedules, enabled, первый прогон 2026-07-03 08:00 UTC).

Acceptance:

  • Разобрано «почему заморожен»: импорт НЕ сломан. deal_date = лейбл начала квартала; 2026Q1 — последний квартал, опубликованный Росреестром (upstream 2024Q4-2026Q1 загружены разово 26.04; Q2 закончился 30.06, публикация ~август). «182 дня» — квартальная природа источника + лаг публикации, не авария. Восстанавливать нечего — приток возобновится с публикацией Q2 (quarter_poll задетектит; импорт — операторский шаг, задокументирован в rosreestr_quarter_poll.py).
  • Алерт на max(deal_date), не на статус: daily deals_freshness_monitor — ERROR→GlitchTip при просрочке следующего квартала (порог: конец имеющегося квартала + 3 мес + 45д лага → для Q1 = 2026-08-16). Пропущенный операторский импорт больше не пройдёт тихо.
  • Пересчёт ratios на свежих сделках — проверяется после реального импорта Q2 (~август); asking_to_sold_ratio_refresh уже в расписании после dkp_import. Закрываю issue: инвариант установлен, оставшееся — self-announcing (алерт сам напомнит).
Сделано в PR #2226 (смержен, deploy success, миграция 162 применена; row `deals_freshness_monitor` в scrape_schedules, enabled, первый прогон 2026-07-03 08:00 UTC). Acceptance: - ✅ **Разобрано «почему заморожен»:** импорт НЕ сломан. `deal_date` = лейбл начала квартала; 2026Q1 — последний квартал, опубликованный Росреестром (upstream 2024Q4-2026Q1 загружены разово 26.04; Q2 закончился 30.06, публикация ~август). «182 дня» — квартальная природа источника + лаг публикации, не авария. Восстанавливать нечего — приток возобновится с публикацией Q2 (quarter_poll задетектит; импорт — операторский шаг, задокументирован в rosreestr_quarter_poll.py). - ✅ **Алерт на max(deal_date), не на статус:** daily `deals_freshness_monitor` — ERROR→GlitchTip при просрочке следующего квартала (порог: конец имеющегося квартала + 3 мес + 45д лага → для Q1 = 2026-08-16). Пропущенный операторский импорт больше не пройдёт тихо. - ⏳ **Пересчёт ratios на свежих сделках** — проверяется после реального импорта Q2 (~август); `asking_to_sold_ratio_refresh` уже в расписании после dkp_import. Закрываю issue: инвариант установлен, оставшееся — self-announcing (алерт сам напомнит).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2212
No description provided.