feat(tradein): asking_to_sold_ratios table + derivation (#648 S2) #660

Merged
Light1YT merged 1 commit from feat/648-s2-ratio-table into main 2026-05-29 13:18:29 +00:00
Owner

Stage 2 of #648. New asking_to_sold_ratios table: ratio=median(SOLD)/median(ASKING) per rooms bucket from rosreestr ДКП (12mo) vs active listings. Global -1 fallback always; per-rooms rows at n>=30/30. Dry-run (prod rollback): 6 rows, ratios 0.72-0.93 (sold 72-93% of asking, студия biggest discount — matches harness). Idempotent; CTE reusable for Stage-4 refresh; district reserved for #647. Migration 080 (under #637 gate). Refs #648.

Stage 2 of #648. New `asking_to_sold_ratios` table: ratio=median(SOLD)/median(ASKING) per rooms bucket from rosreestr ДКП (12mo) vs active listings. Global -1 fallback always; per-rooms rows at n>=30/30. **Dry-run (prod rollback): 6 rows, ratios 0.72-0.93** (sold 72-93% of asking, студия biggest discount — matches harness). Idempotent; CTE reusable for Stage-4 refresh; district reserved for #647. Migration 080 (under #637 gate). Refs #648.
Light1YT added 1 commit 2026-05-29 13:18:27 +00:00
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.
Light1YT merged commit c7b9565cd6 into main 2026-05-29 13:18:29 +00:00
Light1YT deleted branch feat/648-s2-ratio-table 2026-05-29 13:18:29 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#660
No description provided.