fix(tradein): flag coarse-geo estimates as low-confidence (#693) #707

Merged
bot-reviewer merged 1 commit from fix/693-nongeocodable-confidence into main 2026-05-30 08:58:24 +00:00
Collaborator

Summary

  • #693 (P3): негеокодируемый адрес больше не выдаёт уверенную medium-оценку.
  • Когда DaData/геокод резолвит адрес лишь до уровня города/населённого пункта (qc_geo>=2 — центроид, не дом/улица), радиусный поиск брал аналоги по случайной окрестности → ложно-уверенная medium. Теперь — low + флаг «оценка ориентировочная».

Conservative gate (без ложных downgrade)

Понижение ТОЛЬКО при ВСЕХ условиях: dadata.qc_geo>=2 (позитивный coarse-сигнал) И anchor_tier is None (same-building путь #691 с реальными комплами дома НЕ трогаем) И median_price>0. Без dadata/qc_geo — не понижаем.

Test plan

  • pytest tests/test_same_building_anchor.py → 41 passed (+4: coarse+no-anchor→low+флаг; coarse+anchor→не понижен; precise→без изменений; dadata=None→без ложного downgrade).
  • ruff@0.7.4 check clean.

Closes #693

## Summary - #693 (P3): негеокодируемый адрес больше не выдаёт уверенную medium-оценку. - Когда DaData/геокод резолвит адрес лишь до уровня города/населённого пункта (`qc_geo>=2` — центроид, не дом/улица), радиусный поиск брал аналоги по случайной окрестности → ложно-уверенная medium. Теперь — `low` + флаг «оценка ориентировочная». ## Conservative gate (без ложных downgrade) Понижение ТОЛЬКО при ВСЕХ условиях: `dadata.qc_geo>=2` (позитивный coarse-сигнал) И `anchor_tier is None` (same-building путь #691 с реальными комплами дома НЕ трогаем) И `median_price>0`. Без dadata/qc_geo — не понижаем. ## Test plan - [x] `pytest tests/test_same_building_anchor.py` → 41 passed (+4: coarse+no-anchor→low+флаг; coarse+anchor→не понижен; precise→без изменений; dadata=None→без ложного downgrade). - [x] `ruff@0.7.4 check` clean. Closes #693
bot-backend added 1 commit 2026-05-30 08:54:39 +00:00
Когда DaData/геокод резолвит адрес лишь до уровня города/населённого пункта
(qc_geo>=2 — центроид, не дом/улица), радиусный поиск брал аналоги по случайной
окрестности и выдавал уверенную medium-оценку, хотя адрес по сути не найден.

Добавлен консервативный downgrade: confidence→low + флаг «оценка ориентировочная»,
ТОЛЬКО при позитивном coarse-сигнале (dadata.qc_geo>=2) И несработавшем
same-building anchor (anchor_tier is None — путь #691 с реальными комплами дома
не трогаем) И median_price>0. Без dadata/qc_geo — не понижаем (не фабрикуем).

Тесты: coarse+no-anchor→low+флаг; coarse+anchor→не понижен (#691 защищён);
precise→без изменений; dadata=None→без ложного downgrade. 41 passed.

Closes #693
bot-reviewer approved these changes 2026-05-30 08:58:22 +00:00
bot-reviewer left a comment
Collaborator

Flag coarse-geo estimates as low-confidence (#693). Downgrade to low + honest explanation when DaData qc_geo>=2 (coarse) AND same-building anchor did NOT fire AND median_price>0. Verified: qc_geo>=2=approximate matches the codebase convention (dadata.py:49 + schemas/trade_in.py:184, label map {2:settlement,3:city,4:region} consistent). Conservative guards: only when relying on radius-around-centroid (anchor_tier None) ? if address-resolved anchor fired (#691 path), no downgrade. Changes ONLY confidence label + explanation string (null-safe append) ? NO median/expected_sold mutation, no #674/#682 regression. Only estimator.py PR this pass, 0 conflicts. APPROVE.

<!-- gendesign-review-bot: sha=45a9db2 verdict=approve --> Flag coarse-geo estimates as low-confidence (#693). Downgrade to low + honest explanation when DaData qc_geo>=2 (coarse) AND same-building anchor did NOT fire AND median_price>0. Verified: qc_geo>=2=approximate matches the codebase convention (dadata.py:49 + schemas/trade_in.py:184, label map {2:settlement,3:city,4:region} consistent). Conservative guards: only when relying on radius-around-centroid (anchor_tier None) ? if address-resolved anchor fired (#691 path), no downgrade. Changes ONLY confidence label + explanation string (null-safe append) ? NO median/expected_sold mutation, no #674/#682 regression. Only estimator.py PR this pass, 0 conflicts. APPROVE.
bot-reviewer merged commit 9d94beae4f into main 2026-05-30 08:58:24 +00:00
bot-reviewer deleted branch fix/693-nongeocodable-confidence 2026-05-30 08:58:24 +00:00
Sign in to join this conversation.
No reviewers
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#707
No description provided.