feat(backtest): per-rooms asking→sold correction block (#648 S1) #650

Merged
Light1YT merged 1 commit from feat/648-s1-backtest-corrected into main 2026-05-29 13:11:55 +00:00
Owner

Stage 1 of #648 (asking→sold). Read-only harness: derive in-memory per-rooms asking→sold ratio + CORRECTED metrics block + --holdout-split (even-id fit / odd-id eval). Prod A/B: overall bias +20.4%→-4.0%, MAPE 25.4%→20.2% out-of-sample — per-rooms ratio removes the systematic bias. SELECT-only, estimator untouched, 33 tests. Refs #648.

Stage 1 of #648 (asking→sold). Read-only harness: derive in-memory per-rooms asking→sold ratio + CORRECTED metrics block + --holdout-split (even-id fit / odd-id eval). **Prod A/B: overall bias +20.4%→-4.0%, MAPE 25.4%→20.2%** out-of-sample — per-rooms ratio removes the systematic bias. SELECT-only, estimator untouched, 33 tests. Refs #648.
Light1YT added 1 commit 2026-05-29 13:11:54 +00:00
Extend the read-only harness with an in-memory per-rooms asking→sold ratio
(median sold / median pred-ask, global fallback for buckets < MIN_BUCKET=20)
and a CORRECTED metrics block re-scored via the existing _compute_metrics.
--holdout-split fits on even-id / evaluates on odd-id deals (deterministic)
for an honest out-of-sample number.

Prod A/B (sample 200, holdout): overall bias +20.4%→-4.0%, MAPE 25.4%→20.2%
— a per-rooms ratio removes the systematic asking→sold bias. Still SELECT-only,
estimator untouched. +14 tests (33 total).
Light1YT merged commit d021fc9231 into main 2026-05-29 13:11:55 +00:00
Light1YT deleted branch feat/648-s1-backtest-corrected 2026-05-29 13:11:56 +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#650
No description provided.