feat(tradein): add EKB/MSK REF_AREA codes to sber_price_index pull (#794) (#900)
Some checks failed
Deploy Trade-In / test (push) Successful in 34s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 2m20s
Deploy Trade-In / deploy (push) Failing after 51s

Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
This commit is contained in:
bot-backend 2026-05-31 13:56:17 +00:00 committed by bot-reviewer
parent f94608a5f3
commit 53af9a8c55

View file

@ -24,15 +24,14 @@ Full asking-vs-our-median reconciliation is a separate follow-up (#887 step 5+).
NOTE estimator time-adjust wire (step 4) is OUT OF SCOPE for this PR.
It is a client-visible change that requires a backtest gate. Defer to a separate issue.
REF_AREA codes:
643 = РФ (confirmed from live session, vault research note 2026-05-31-0845).
# TODO (#887 follow-up): resolve EKB (Свердловская обл) + Moscow REF_AREA codes.
# The dynpage config endpoint (GET /api/dynpage/ru/dashboards/<dashboard>) returns
# a base64-encoded React config with region options, but requires a working TLS chain
# from the deployment environment. Candidate codes: Свердловская обл ≈ 66,
# Москва ≈ 77 (ОКАТО-derived). Confirm by inspecting the dynpage form field
# «REF_AREA» values in a browser session or after fixing TLS in prod.
# Once confirmed, add them to SBER_REF_AREAS below and remove this TODO.
REF_AREA codes (sberindex internal region IDs, not ОКАТО/ISO):
643 = Россия confirmed live, vault research note 2026-05-31-0845.
66 = Свердловская область verified 2026-05-31 brute-force against /api/sowa
(region name from ref_area field of response);
real_estate_deals: 2017-01 51 046 2026-04 128 443 руб/м².
77 = Москва verified 2026-05-31 brute-force against /api/sowa
(region name from ref_area field of response);
real_estate_deals: 2017-01 148 471 2026-04 309 510 руб/м².
"""
from __future__ import annotations
@ -56,13 +55,12 @@ logger = logging.getLogger(__name__)
# ---------------------------------------------------------------------------
# REF_AREA code → city label used as the primary key in sber_price_index.
# 643 = РФ is confirmed (live reverse-engineering, vault 2026-05-31-0845).
# EKB and Moscow codes are pending TLS resolution — see TODO in module docstring.
# Codes verified 2026-05-31 by brute-force scan against /api/sowa
# (region name taken from ref_area field of API response; not ОКАТО/ISO).
SBER_REF_AREAS: dict[str, str] = {
"643": "Россия",
# TODO (#887 follow-up): uncomment + verify EKB / Moscow REF_AREA codes.
# "66": "Свердловская область", # candidate — confirm via dynpage form
# "77": "Москва", # candidate — confirm via dynpage form
"66": "Свердловская область",
"77": "Москва",
}
# Dashboards to pull: slug → human label (used as 'segment' placeholder)