gendesign/tradein-mvp/backend/app/core
bot-backend b13880ff15
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 9s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 3m58s
CI Trade-In / browser-tests (pull_request) Has been skipped
fix(tradein/estimate): координатный резолв квартала — за флагом OFF, порог 25 м
Точность самого резолва измерена против НЕЗАВИСИМОЙ истины: 2398 домов ЕКБ, где
квартал известен из кадастра DaData (ответ на адрес, а не KNN-подсказка — см.
house_dedup_merge.py:126; вырожденный 66:41:0000000 у 146 домов исключён).

  порог   ответ выдан   чужой квартал   точность   покрытие
   15 м        475            26          94.5%      19.8%
   25 м        748            59          92.1%      31.2%
   50 м       1341           271          79.8%      55.9%
  100 м       2090           644          69.2%      87.2%

Порог 50 м, заимствованный у cadastral_geo_match, замером НЕ подтверждён: каждый
пятый ответ — чужой квартал, а промах стоит 1.111× по медиане и 1.447× в p90
(отношение индексов чужого и своего квартала). Порог 25 м обоснован замером.

Разделение: снятие фолбэка на кадастр аналога поставляется включённым (измерено
бэктестом, −0.55 пп MAPE), координатный резолв — за
estimate_quarter_from_coords_enabled=False. Причина: точность РЕЗОЛВА измерена,
эффект поправки на точность ЦЕНЫ — нет (фикстура гейта идёт с
target_house_cadnum=None и координатный путь не проходит). Критерий приёмки и
дата-предохранитель (2026-09-12) записаны в config рядом с флагом.

На рабочем тракте (координаты оценок, а не домов справочника) точность ниже:
из 20 оценок со своим кадастром ответ в 50 м выдан 9 раз, совпал 3; в 25 м —
3 ответа, 3 совпадения. Попадания на 0-4 м, промахи на 32-39 м. Один из промахов —
Малышева 84, тот самый кейс, где координатный квартал двигал цену на −20.6%.
2026-08-12 20:48:34 +05:00
..
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
auth.py feat(tradein/v2): реальный display-профиль в TopNav через /me (#2046) 2026-07-03 22:55:12 +03:00
auth_db.py feat(tradein): DSN к БД auth собирается из AUTH_DB_PASSWORD, а не дублирует секрет 2026-08-02 12:05:41 +03:00
config.py fix(tradein/estimate): координатный резолв квартала — за флагом OFF, порог 25 м 2026-08-12 20:48:34 +05:00
db.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
fdw.py chore(tradein/geocoder): удалить Яндекс-геокодер (#2593) 2026-07-31 21:22:09 +03:00
password.py fix(tradein/auth): отказ по насыщению — до выборки из БД и с агрегированным следом (#2715) (#2734) 2026-08-06 14:27:26 +00:00
ratelimit.py feat(tradein/auth): глобальный потолок попыток входа на имя пользователя (#2571) 2026-08-05 22:38:23 +05:00
rbac.py feat(tradein): версионирование продукта — единый источник, подвал, PDF, /versions (#2824) 2026-08-10 16:00:54 +00:00
request_audit.py fix(tradein/security): утечка ключа прокси, аудит действий админа, отличимость неудачного входа, IDOR в заявке (#2536) 2026-07-26 22:42:15 +00:00
shutdown.py feat(tradein/scraper): cooperative SIGTERM-drain for graceful deploy (#1182 Phase 2) 2026-06-28 19:52:09 +03:00
version.py feat(tradein): версионирование продукта — единый источник, подвал, PDF, /versions (#2824) 2026-08-10 16:00:54 +00:00