← All findingssource · memory/project_wnba_audit_2026_07.md
Verdict: not a modeling problem. Three models already exist (scout v2 heuristic + ML override, projections-engine quantiles, L10 line_edges). Losses come from plumbing + zero functioning feedback loops (ratchet-locked retrains, static-seed calibration, tiers not ledger-selected, CLV poisoned, no alerting — accuracy decayed 55%→51% unnoticed).
Confirmed live bugs (Tier 0, all hours-scale, verified root causes):
- Grading fanout route —
fanout.go:390fetches bare/api/v1/snapshot/{id}(warmer-cached, players:null for WNBA) → disciplined/both_agree/system_lineedges/disciplined_board = 0 WNBA picks all season. Fix: league-prefix + warmer cache key + looksLikePlayerMap scan-all. See project_wnba_snapshot_players_regression. - [internal detail removed]
- In-play odds stored as pregame (
odds_fetcher.py:693-726no commence_time filter when live_only=False) → grading captures mid-game prices as closing lines → all WNBA CLV columns untrustworthy. Fix + backfill-flag + T-15/T-5 pre-tip snapshots. - Public tiers = measured losers: NIGHTLY_FORMULAS_WNBA core=disciplined_llm (40.5% hit/−17.7% ROI betonline), list=scout_ml (51.3%/−5.0%, 82% UNDER). Ledger has form_wnba 56.1%/+3.7% (n=361), deepseek-v4__projection 56.8%/+2.2% (n=838) — but ALL positive-ROI formulas are within CI of zero over 33 post-hoc buckets; promote only on pre-registered forward window (n≥300). Public /wnba/results (48%) self-grades from boxscores, ignores the 11,127-row settled ledger.
- NBA pace anchor 218 (
diagnostic.go:750) → uniform ~−10% haircut on every WNBA adjusted_projection — the real "runs low / vetoes overs" mechanism (engine q50 nearly unbiased). See feedback_devig_phantom_edge.
Healthy (don't re-audit): odds ingestion (6 books incl Pinnacle, 30-min cadence, movement history); SDS WNBA breadth (boxscores w/ usage, official-PDF injuries, DvP, pace/ORtg/DRtg, 2022-2026 logs); WNBA league-route snapshots (much better than old notes); settlement merged+current; projections-engine WNBA runs daily autonomously.
Roadmap tiers: T0 = the 5 bugs above + correctness batch (~2-3 days). T1 = RotoWire minutes activation (project_wnba_lineups_gap), daily scorecard+alarms (side-skew, accuracy trend, retrains-blocked, artifact-vs-validated, slates-missing), projections-engine no_data fix + kill gate, multi-book de-vig fallback. T2 (gated on clean CLV) = wire scout/quantiles into pick path behind A/B ONLY after pkl retirement; injury-report latency loop (5pm-local T-1 deadline; edge decays +6.2%→+4.1%/hr per Unabated); minutes distribution + WOWY redistribution + EB-shrinkage (DARKO-lite); charter-era rest refit on 2024+ only (charters killed pre-2024 travel edges); rookie/expansion cold-start priors (no public model exists). Deprioritized with evidence: 9 depth blocks (NBA USG%+DvP A/B precedent: no lift), Bayesian cold-start before measurement, any new model stack (WNBA engine beats L5 MAE yet settles −1.1% ROI — inputs/timing/measurement are binding, not accuracy).
Market context: WNBA props still soft (+6.21% ROI at release documented, decays to +4.14% in 1hr — SPEED is the alpha; limits are the constraint); books price medians (engine quantiles already satisfy); WNBA game outcomes slightly MORE predictable than NBA (67.5% vs 65.5%); Elo K≈20 + ~100 HCA is the game-winner baseline if ever wanted.
Related: project_wnba_model_audit, project_projections_engine_state, project_multi_formula_clv_harness, feedback_model_edge_calibration, project_wnba_snapshot_depth_gap.