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). |
||
|---|---|---|
| .. | ||
| app | ||
| data/sql | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| Dockerfile | ||
| pyproject.toml | ||