[tradein][data] Objective bank_name/registration_number не отдаётся на текущем тарифе (ЕГРН-поля) #1723

Closed
opened 2026-06-17 19:51:32 +00:00 by lekss361 · 1 comment
Owner

Контекст (вынесено из #307 OBJ-1, 2026-06-17)

OBJ-1 предполагал, что scraper не извлекает bank_name/encumbrance_* из payload Objective (как было с DOM.РФ energy_eff). Проверено — это НЕ баг маппинга:

  • Парсер data/sql/70_parse_objective_raw.py:340-342 корректно мапит все 3 поля.
  • objective_lots (1.12M строк): encumbrance_type заполнен на 36% (405 784), encumbrance_start_date — 405 789. Работает.
  • bank_name = 0 заполнено. Причина: в raw_props ключ "Банк" присутствует в 892 994 строках, но значение = JSON null в 100%. То же с "Номер регистрации". Даже у лотов с ипотекой ("Тип обременения":"Ипотека") банк = null.

Вывод

bank_name / registration_number — ЕГРН-производные поля, которые Objective не отдаёт на текущем тарифе (см. комментарий в scrape_objective.py про лимиты тарифа). Кодом не чинится.

needs-human

Решение владельца: (а) апгрейд тарифа Objective (если банк-данные нужны для downstream), либо (б) confirm с вендором что поле недоступно и закрыть OBJ-1 как won't-fix-by-code. encumbrance_* уже работает на 36% — частичное покрытие есть.

Refs #307 (OBJ-1).

## Контекст (вынесено из #307 OBJ-1, 2026-06-17) OBJ-1 предполагал, что scraper не извлекает `bank_name`/`encumbrance_*` из payload Objective (как было с DOM.РФ energy_eff). **Проверено — это НЕ баг маппинга:** - Парсер `data/sql/70_parse_objective_raw.py:340-342` корректно мапит все 3 поля. - `objective_lots` (1.12M строк): `encumbrance_type` заполнен на **36%** (405 784), `encumbrance_start_date` — 405 789. **Работает.** - `bank_name` = **0** заполнено. Причина: в `raw_props` ключ `"Банк"` присутствует в 892 994 строках, но значение = JSON `null` в **100%**. То же с `"Номер регистрации"`. Даже у лотов с ипотекой (`"Тип обременения":"Ипотека"`) банк = null. ## Вывод `bank_name` / `registration_number` — ЕГРН-производные поля, которые **Objective не отдаёт на текущем тарифе** (см. комментарий в `scrape_objective.py` про лимиты тарифа). Кодом не чинится. ## needs-human Решение владельца: (а) апгрейд тарифа Objective (если банк-данные нужны для downstream), либо (б) confirm с вендором что поле недоступно и закрыть OBJ-1 как won't-fix-by-code. `encumbrance_*` уже работает на 36% — частичное покрытие есть. Refs #307 (OBJ-1).
Collaborator

Закрываю как won't-fix-by-code — bank_name = vendor tariff-gate (2026-06-27)

Эмпирически перепроверил на проде (objective_lots, 1.76M строк):

  • bank_name = 0 заполнено — даже при 895 625 лотов, обновлённых за последние 7 дней (sync живой, данные свежие). Т.е. поле value-gated тарифом аккаунта Объектива: API отдаёт ключ «Банк», но значение = null на текущем тарифе, и свежий синк это не меняет. Кредами/кодом не чинится — нужен ЕГРН-тариф у вендора (api.objctv.ru), это $-решение, привязанное к аккаунту.
  • Поправка к premise тикета: registration_number теперь РАБОТАЕТ — 547 609 non-null (47%), не 0 как было в исходной диагностике 06-17. encumbrance_type — 666 991 (38%). Так что из трёх ЕГРН-полoriginalных полей два уже отдаются; null остался только bank_name.

Проверял vault по запросу: Objective-заметки только architecture (api.objctv.ru, GetToken?apiKey=, ObjectiveClient), отдельного higher-tier ключа нет; ключ в проде = текущий аккаунт (отдаёт bank=null). Подтверждено владельцем (Anton): закрыть как won't-fix-by-code — registration_number/encumbrance покрытия достаточно, bank-данные не критичны.

Если позже докупится ЕГРН-тариф у Объектива — bank_name пойдёт сам (парсер 70_parse_objective_raw.py:340-342 его уже мапит, sync живой), переоткрывать код не нужно. Closes OBJ-1 (#307).

## Закрываю как won't-fix-by-code — bank_name = vendor tariff-gate (2026-06-27) Эмпирически перепроверил на проде (`objective_lots`, 1.76M строк): - **`bank_name` = 0 заполнено** — даже при **895 625 лотов, обновлённых за последние 7 дней** (sync живой, данные свежие). Т.е. поле value-gated тарифом аккаунта Объектива: API отдаёт ключ «Банк», но значение = null на текущем тарифе, и **свежий синк это не меняет**. Кредами/кодом не чинится — нужен ЕГРН-тариф у вендора (api.objctv.ru), это $-решение, привязанное к аккаунту. - **Поправка к premise тикета:** `registration_number` теперь **РАБОТАЕТ** — 547 609 non-null (47%), не 0 как было в исходной диагностике 06-17. `encumbrance_type` — 666 991 (38%). Так что из трёх ЕГРН-полoriginalных полей два уже отдаются; null остался только `bank_name`. Проверял vault по запросу: Objective-заметки только architecture (`api.objctv.ru`, `GetToken?apiKey=`, ObjectiveClient), отдельного higher-tier ключа нет; ключ в проде = текущий аккаунт (отдаёт bank=null). Подтверждено владельцем (Anton): закрыть как won't-fix-by-code — registration_number/encumbrance покрытия достаточно, bank-данные не критичны. Если позже докупится ЕГРН-тариф у Объектива — bank_name пойдёт сам (парсер `70_parse_objective_raw.py:340-342` его уже мапит, sync живой), переоткрывать код не нужно. Closes OBJ-1 (#307).
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#1723
No description provided.