From da2abeac0134bc0a6f576c519526674ec9b85950 Mon Sep 17 00:00:00 2001 From: bot-backend Date: Sat, 30 May 2026 19:21:28 +0300 Subject: [PATCH] =?UTF-8?q?fix(tradein):=20/sales-vs-listings=20street=5Fo?= =?UTF-8?q?nly=20=D0=BD=D0=B5=20house=5Flinked=20(Refs=20#757)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit street_sales_vs_listings матчит по УЛИЦЕ, не по дому (#721 ADR — дом-уровневый join невозможен). Emit house_linked был ложным утверждением точности до дома, противоречил честности #721/#722. Теперь data_quality=street_only при total_deals>0, иначе no_data. _empty-ветка и SQL не тронуты; house_linked остаётся в enum-типе (не сужаем). pytest -k sales_vs_listings 8 passed. --- tradein-mvp/backend/app/api/v1/trade_in.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tradein-mvp/backend/app/api/v1/trade_in.py b/tradein-mvp/backend/app/api/v1/trade_in.py index 27319762..22fb6c17 100644 --- a/tradein-mvp/backend/app/api/v1/trade_in.py +++ b/tradein-mvp/backend/app/api/v1/trade_in.py @@ -1691,7 +1691,8 @@ def get_sales_vs_listings( deals_with_listings=deals_with_listings, linkage_rate_pct=linkage_rate_pct, median_discount_pct=median_discount, - # #721 ADR v3: total_deals>0 здесь (guard `if not rows` выше → _empty). - data_quality="house_linked" if deals_with_listings > 0 else "street_only", + # street_sales_vs_listings матчит по УЛИЦЕ (не по дому, #721 ADR) → + # даже при deals_with_listings>0 это street-level, не house. house_linked НЕ emit'им. + data_quality="street_only" if total_deals > 0 else "no_data", pairs=pairs, ) -- 2.45.3