A statistical model that gives every NFL game a win probability, published in advance, with a plain-language reason, and scored honestly against results and against the betting markets. It is built from free, public data (nflverse) and it never sees a betting line when it makes a pick.
The model rates each team three ways — Elo (results, margin-weighted), opponent-adjusted EPA per play (offense and defense, from play-by-play), and the named starting quarterback (EPA per dropback, shrunk) — then adds the injury report (starters Out/Doubtful, weighted by position), rest, division game and home field. Three regularised linear models turn that into a win probability, a margin and a total.
The analyst layer reads the week's news and forecasts and reports only what the model is not already counting — a starter ruled out after the report, a team resting players, a quarterback change the feed missed. Each claim is typed, capped, linked to its source and graded after the game. It can move a pick by at most 10 points. See the Analyst tab.
Over 4,146 regular-season games from 2010 to 2025, replayed exactly as the live job runs, the model picked the winner 65.0% of the time; the Vegas closing favorite won 66.5% of the same games. Nobody sustains 70%. A single 17-game season carries a margin of about ±6 points, so judge the record over seasons, not weeks.
The claim worth trusting is calibration: when we say 70%, we win about 70% of the time. The Backtest page shows this over sixteen seasons; the Record page shows it live.
Where we differ from the market, the market has historically been right more often (56–44). That is shown, not hidden.
What the backtest does and doesn't cover. The backtest replays the statistics model only: the team-strength, efficiency, quarterback, injury and rest features, retrained each week on the games before it, exactly as the live job does. The pieces added since launch that cannot be backtested honestly — the news-reading analyst layer, the odds tracker, the week-by-week learning loop — are graded live only, beside the untouched model, and every change we make is dated in the changelog. So treat the 65.0% as the floor we start from, not a promise: the aim is to improve on it a little each season, in the open, and for the NFL anything sustained near 70% would be exceptional.
| Page | What it shows | Best time to look |
|---|---|---|
| This week | Every game with our probability, pick, projected score, the DraftKings favorite for comparison, and why. Picks appear from Tuesday morning and are final at the last run before each kickoff (see schedule below). | Sunday morning before 1:00 PM ET |
| Record | Season record, week by week; calibration; the record when we differed from Vegas; the stats model alone vs model + analyst. | Monday morning, once Sunday's games grade |
| Rankings | All 32 teams by strength (points better than average on a neutral field), Elo, adjusted EPA, and the named QB with his rating. | Tuesday, after the week's games are in |
| Season | 5,000 simulated seasons: projected wins with a range, division, playoff, top-seed, conference and Super Bowl odds. The first run of the season is kept as the baseline. | Tuesday |
| Markets | Our probability next to Polymarket, DraftKings and the nflverse line, from the first snapshot ("open") to the last before kickoff ("close"), graded. | Any time; most interesting Saturday night |
| Analyst | What the analyst layer read, what it claimed, what it changed, what it declined and why, and the scorecard that decides whether each kind of claim keeps its weight. | Friday evening (injury reports close) and Sunday morning |
| Backtest | The 2010–2025 walk-forward record — the proof before the live record exists. | Once |
The job runs automatically at 7:00 AM, 11:00 AM, 3:00 PM and 7:00 PM Eastern every day, plus 11:45 AM, 4:10 PM and 8:00 PM on Sundays. Each run refreshes results and grades finished games, pulls the news and forecasts, reads them, re-predicts every game in the next eight days, snapshots the markets, and refreshes rankings and projections. The last run before a game's kickoff is its pick of record.
Results grade themselves once the data feed posts the final, usually within a few hours. A late scratch announced after the last pre-kickoff run is not reflected — the pick stands as made.
Win probability, Elo, EPA, calibration, closing line, Brier score: the glossary defines every term on the site in plain English, and the FAQ answers the questions we get asked most.
Schedules, results, play-by-play with EPA, injury reports, depth charts: nflverse (CC-BY-4.0). Market prices: Polymarket's public API, DraftKings via ESPN's scoreboard, the nflverse closing line. News: ProFootballTalk, CBS Sports and other public feeds, each linked from the claim it produced. Weather: the National Weather Service. Nothing paid, nothing scraped from behind a login.
Built by Nifti Mobility Group as a sister project to niftiNBA. Method, experiments and every decision are documented in the project; the rule for any change is that it must improve the walk-forward record out of sample, and it is logged whether it did or not.