(medium) trade_in_pdf._build_cover: «Срок действия данных» захардкожен today+30д, игнорирует estimate.expires_at (=now+24ч)
fix(tradein): trade-in PDF cover uses estimate.expires_at, not hardcoded +30d (#1530)
(high) QuartirographyChart.tsx/portfolioMap: портфель по числу комнат наложен на ось площади (м²) — сравнение в разных единицах
fix(analytics): align portfolio series to area buckets in quartirography (#1406)
(high) page.tsx / KpiCard «Sold % (квартиры)»: вердикт «выше/ниже среднего рынка» считается по собственному sold% объекта без рыночных данных
fix(analytics): drop false market verdict from per-object Sold % KpiCard (#1407)
fix(site-finder): non-overlapping L2/L3 ready_dt windows, stop double-count of 13-24mo supply (#1355)
fix(week-review): дожим — 4 фикса (#1569, #1590, #1642, #801)