Working on this in PR #738 (re-picked after the stale-claim release — no prior PR existed). Root cause: when the same-building/micro-radius anchor builds the headline, the explanation concatenate…
Working on this in PR #737. Comments-only clarification on n_analogs (FULL count) and analogs (top-10 cap) in AggregatedEstimate, each cross-referencing the other. No new fields, no…
Working on this in PR #734. Added AggregatedEstimate.insufficient_data as a Pydantic @computed_field (= median_price_rub <= 0) — derived, so it's correct at all 4 construction sites (main…
Working on this in PR #733. Absolute guard-bands for EKB vtorichka — ppm² ∈ [50K,800K], floor ∈ [1,60] and ≤ total_floors — applied in _fetch_deals (actual_deals) + `_fetch_dkp_corrido…
auto-backend: Step 1 deliverable is already complete (comment above, by @lekss361) and the verdict is sound — (b) upstream-lag, proven at the source: `rosreestr_deals.max(period_start_date)=2…
Working on this in PR #729 — and you were right, it was actionable. My dev IP (unlike the firewalled prod scraper box) got HTTP 200 on a real curl_cffi SERP capture (46 cards).
Root cause…