gendesign/tradein-mvp/backend
Light1YT eb26681af4 feat(tradein): asking_to_sold_ratios table + per-rooms derivation (#648 S2)
New table asking_to_sold_ratios (rooms_bucket × district reserved) holding
ratio = median(SOLD ppm²)/median(ASKING ppm²) per rooms bucket, derived from
rosreestr ДКП deals (trailing 12mo) vs current active listings. Global -1
fallback row always written; per-rooms rows only at n_deals>=30 AND
n_listings>=30 (estimator falls back to -1 when a bucket row is absent).

Dry-run (prod, rollback): seeds 6 rows — global 0.79 + студия 0.72 / 1к 0.74 /
2к 0.80 / 3к 0.84 / 4+ 0.93 (sold is 72-93% of asking by rooms; студия biggest
discount, matching the harness finding). Idempotent (ON CONFLICT DO UPDATE);
derivation CTE structured for Stage-4 refresh reuse. district reserved for #647.
2026-05-29 18:18:19 +05:00
..
app feat(tradein): per-source listing price history — schema + daily snapshot (#570) (#646) 2026-05-29 12:18:04 +00:00
data/sql feat(tradein): asking_to_sold_ratios table + per-rooms derivation (#648 S2) 2026-05-29 18:18:19 +05:00
scripts feat(backtest): per-rooms asking→sold correction block (#648 S1) (#650) 2026-05-29 13:11:55 +00:00
tests feat(backtest): per-rooms asking→sold correction block (#648 S1) (#650) 2026-05-29 13:11:55 +00:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile feat(tradein): persistent infra для backfill scripts (PR F) (#592) 2026-05-27 06:59:54 +00:00
pyproject.toml feat(rbac): role-based access control via X-Authenticated-User middleware (#585) 2026-05-26 06:18:40 +00:00