This Season's Picks
Backtest: Walk-Forward Accuracy by Season
Each season is predicted using a model trained only on the seasons before it — no peeking.
How It Works
Features
- Offensive EPA/play — season-to-date, before the game being predicted
- Defensive EPA/play allowed — same, for the defense
- Pace — offensive plays per game
- Rest days — days since each team's last game
- Recent trade activity — trades in the 14 days before kickoff
Every feature is computed using only data available strictly before the game — no leakage from the outcome being predicted. Early-season weeks blend toward the prior season's rate until enough current-season games exist.
Models
- Logistic regression — win probability
- Logistic regression — against-the-spread cover probability (spread included as a feature)
- Linear regression — predicted point margin, used to size the live ATS pick against the market spread
Trained on 2,639 completed regular-season games across the 2016–2025 seasons. Evaluated with a season-by-season walk-forward backtest: each holdout season is scored using a model that has never seen it.
An Honest Note on Results
Straight-up win accuracy backtests at 59–69% per season. Against-the-spread accuracy backtests at ~49–53% — essentially a coin flip. That's expected and correct: the closing spread already prices in almost everything this model knows, and a five-feature logistic regression has no business beating an efficient market.
Early in development, a sign error in the ATS label formula (using -spread_line instead of spread_line) produced a suspicious 79.5% backtest accuracy. That number should have been an immediate red flag — no simple model beats Vegas by that margin — and tracing it down surfaced the bug. The lesson generalizes: an implausibly good result in a well-studied, efficient domain is usually a leak, not a breakthrough.