feat(tradein): estimator deals tier (PR M, #564 Phase 3) #600

Merged
Light1YT merged 1 commit from feat/tradein-estimator-deals-tier into main 2026-05-27 12:40:10 +00:00

1 commit

Author SHA1 Message Date
8591efc42f feat(tradein): estimator deals tier classification (PR M / #564 Phase 3)
Remove stale NOTE 2026-05-24 + add tier field на AnalogLot.

- schemas/trade_in.py: AnalogLot добавлено поле `tier: str | None`
  ('T0_per_house' / 'T1_per_street' — для rosreestr deals)
- services/estimator.py:
  * _deal_to_analog: compute tier via kadastr_num heuristic
    ('66:41:0204016:10' → T0; '66:41:...:0' OR NULL → T1)
  * estimate_quality docstring: replaced устаревший NOTE с corrected
    explanation что importer (PR-A 2026-05-24) уже фильтрует doc_type='ДКП'
    и deals идут в actual_deals output
  * _fetch_deals SQL: include kadastr_num в SELECT (для tier classify)

Observation: open dataset Росреестра (current state) имеет
kadastr_num=NULL для всех 49,791 ДКП-сделок → все классифицируются
как T1_per_street. Поле зарезервировано на случай будущего ЕГРН
direct feed.

Tests: ruff clean, services/ pytest 19/19 pass.

Closes #564 Phase 3.
2026-05-27 17:36:46 +05:00