Track record
Graded, game by game
Each game is scored against the forecast the app would have shown beforehand: the closing betting line where one was posted, otherwise the pre-line forecast, which only knows games played before it. Nothing is cherry-picked. Every regular-season and playoff game in the window counts.
Check it yourself: download every graded game as a spreadsheet, all leagues · NFL · NBA · MLB · NHL (CSV: the forecast, the pick and whether it won).
Forecasts correct, all leagues
8,449 of 13,996 games
- Forecast
- 60.4%
- Before the line
- 59.6%
- Elo alone
- 59.2%
- Always home
- 53.7%
Bars run from 40% to 70%.
Logged live forecasts
The forward-tested record: forecasts locked at the last refresh before each game started, using the line available at the time plus injury news, then graded when the game went final. Lock times show how close to the start that refresh was.
All leagues
246–119
67.4% correct
Locked 17.5 h before start (median)
Last 10: 18.5 h before start
NFL
42–13
76.4% correct
Locked 15.8 h before start (median)
Last 10: 7.8 h before start
NBA
104–44
70.3% correct
Locked 16.8 h before start (median)
Last 10: 20.9 h before start
MLB
5–2
71.4% correct
Locked 3.2 h before start (median)
NHL
95–60
61.3% correct
Locked 18.2 h before start (median)
Last 10: 18.3 h before start
Against ESPN's forecasts
ESPN publishes its own win chance for NBA, NFL and MLB games. We read it before each game and lock it next to ours, then grade both on the same games, whichever way it comes out. It has to run forward: ESPN re-saves its numbers after games, so looking them up later wouldn't be a fair test. Running since Thursday, November 5.
| League | Games | Ours called | ESPN called | Ours log loss | ESPN log loss |
|---|---|---|---|---|---|
| NFL | 15 | 14 (93.3%) | 14 (93.3%) | 0.427 | 0.397 |
| NBA | 32 | 26 (81.3%) | 25 (78.1%) | 0.476 | 0.475 |
47 games so far. Too few to mean much: over a few hundred games the gap between two good forecasts is often a fraction of a percent, so read this as a start.
National Football League
2024, 2025, 2026 · 704 graded games
Forecast correct
68.8%
484 of 704 · Brier 0.207
Before the line
67.2%
Every game as if no line were posted · Brier 0.210
Elo ratings alone
67.3%
Brier 0.210 · same games
Betting market alone
67.7%
Closing line on file for 96% of games
Always picking home
53.3%
The no-skill baseline
Calibration
When the forecast says 65%, does that team win about 65% of the time?
Show as table
| Confidence | Games | Stated | Won |
|---|---|---|---|
| 50%–55% | 95 | 52.6% | 54.7% |
| 55%–60% | 143 | 57.8% | 62.9% |
| 60%–65% | 119 | 62.5% | 63.9% |
| 65%–70% | 105 | 67.2% | 71.4% |
| 70%–75% | 98 | 72.4% | 78.6% |
| 75%–80% | 75 | 77.1% | 69.3% |
| 80%–85% | 35 | 81.6% | 85.7% |
| 85%–90% | 30 | 87.4% | 93.3% |
| 90%–95% | 4 | 90.9% | 100.0% |
By confidence
| Confidence | Games | Won |
|---|---|---|
Strong 70%+ win probability | 242 | 78.9% |
Solid 62–70% | 178 | 71.3% |
Lean 55–62% | 189 | 60.3% |
Toss-up Under 55% | 95 | 54.7% |
By season
| Season | Games | Correct | Brier |
|---|---|---|---|
| 2024 | 285 | 71.6% | 0.199 |
| 2025 | 284 | 66.5% | 0.212 |
| 2026 | 135 | 67.4% | 0.214 |
National Basketball Association
2024-25, 2025-26, 2026-27 · 2,790 graded games
Forecast correct
68.9%
1,923 of 2,790 · Brier 0.198
Before the line
68.8%
Every game as if no line were posted · Brier 0.200
Elo ratings alone
67.5%
Brier 0.205 · same games
Betting market alone
68.9%
Closing line on file for 100% of games
Always picking home
54.8%
The no-skill baseline
Calibration
When the forecast says 65%, does that team win about 65% of the time?
Show as table
| Confidence | Games | Stated | Won |
|---|---|---|---|
| 50%–55% | 341 | 52.5% | 49.6% |
| 55%–60% | 433 | 57.4% | 59.4% |
| 60%–65% | 392 | 62.4% | 61.5% |
| 65%–70% | 388 | 67.4% | 65.2% |
| 70%–75% | 360 | 72.3% | 75.3% |
| 75%–80% | 293 | 77.4% | 75.8% |
| 80%–85% | 286 | 82.4% | 81.1% |
| 85%–90% | 217 | 87.2% | 91.7% |
| 90%–95% | 78 | 91.7% | 98.7% |
| 95%–100% | 2 | 95.8% | 100.0% |
By confidence
| Confidence | Games | Won |
|---|---|---|
Strong 70%+ win probability | 1,236 | 81.1% |
Solid 62–70% | 611 | 64.6% |
Lean 55–62% | 602 | 59.1% |
Toss-up Under 55% | 341 | 49.6% |
By season
| Season | Games | Correct | Brier |
|---|---|---|---|
| 2024-25 | 1,315 | 68.7% | 0.201 |
| 2025-26 | 1,316 | 68.7% | 0.197 |
| 2026-27 | 159 | 73.0% | 0.182 |
Major League Baseball
2024, 2025, 2026 · 7,418 graded games
Forecast correct
57.0%
4,231 of 7,418 · Brier 0.242
Before the line
56.4%
Every game as if no line were posted · Brier 0.242
Elo ratings alone
56.4%
Brier 0.243 · same games
Betting market alone
57.1%
Closing line on file for 100% of games
Always picking home
53.1%
The no-skill baseline
Calibration
When the forecast says 65%, does that team win about 65% of the time?
Show as table
| Confidence | Games | Stated | Won |
|---|---|---|---|
| 50%–55% | 2,871 | 52.3% | 52.7% |
| 55%–60% | 2,596 | 57.3% | 55.5% |
| 60%–65% | 1,194 | 62.3% | 61.6% |
| 65%–70% | 518 | 67.1% | 69.7% |
| 70%–75% | 209 | 71.7% | 75.6% |
| 75%–80% | 30 | 76.1% | 76.7% |
By confidence
| Confidence | Games | Won |
|---|---|---|
Strong 70%+ win probability | 239 | 75.7% |
Solid 62–70% | 1,185 | 65.9% |
Lean 55–62% | 3,123 | 56.3% |
Toss-up Under 55% | 2,871 | 52.7% |
By season
| Season | Games | Correct | Brier |
|---|---|---|---|
| 2024 | 2,472 | 57.1% | 0.241 |
| 2025 | 2,477 | 56.7% | 0.242 |
| 2026 | 2,469 | 57.3% | 0.243 |
National Hockey League
2024-25, 2025-26, 2026-27 · 3,084 graded games
Forecast correct
58.7%
1,811 of 3,084 · Brier 0.237
Before the line
57.2%
Every game as if no line were posted · Brier 0.238
Elo ratings alone
56.5%
Brier 0.241 · same games
Betting market alone
58.7%
Closing line on file for 100% of games
Always picking home
54.4%
The no-skill baseline
Calibration
When the forecast says 65%, does that team win about 65% of the time?
Show as table
| Confidence | Games | Stated | Won |
|---|---|---|---|
| 50%–55% | 926 | 52.4% | 51.2% |
| 55%–60% | 1,035 | 57.4% | 56.4% |
| 60%–65% | 599 | 62.4% | 62.4% |
| 65%–70% | 306 | 67.0% | 67.6% |
| 70%–75% | 172 | 72.0% | 76.2% |
| 75%–80% | 44 | 76.9% | 88.6% |
| 80%–85% | 2 | 80.6% | 100.0% |
By confidence
| Confidence | Games | Won |
|---|---|---|
Strong 70%+ win probability | 218 | 78.9% |
Solid 62–70% | 668 | 64.5% |
Lean 55–62% | 1,272 | 57.7% |
Toss-up Under 55% | 926 | 51.2% |
By season
| Season | Games | Correct | Brier |
|---|---|---|---|
| 2024-25 | 1,398 | 61.2% | 0.232 |
| 2025-26 | 1,394 | 55.5% | 0.244 |
| 2026-27 | 292 | 62.3% | 0.226 |
How the model works
1. Real results in
Schedules, final scores, injury reports and DraftKings lines come from ESPN's public feeds. For each league the model replays the last three full seasons plus the current one, 19,715 games in all. The oldest season is a warm-up and is never graded.
2. Elo ratings
Every team starts at 1500. After each game, the winner takes rating points from the loser: more for an upset, more for a lopsided score, but with diminishing returns so favorites can't pad their rating by running up the score (FiveThirtyEight's margin-of-victory formulas). Between seasons each rating moves partway back toward 1500, because rosters change.
3. Game context
Home field is worth a fixed number of points (zero at neutral sites like international games). NBA and NHL teams on the second night of a back-to-back lose points too. In MLB and the NHL, every starting pitcher and goalie is rated from the runs or goals their team allowed in their starts, compared with the team's usual starter, so an ace or a backup goalie moves the number. The rating gap converts to a win probability with the standard Elo curve: a 100-point edge is about 64%.
4. Injuries
In the final days before a game, players on the injury report are weighted by their chance of sitting (Out 100%, Doubtful 80%, Day-to-day 40%, Questionable 35%) and by their importance. In the NFL that means being the team's rushing or receiving leader. In the NHL it means how often the player led the team in points over its last 10 games. A player who's been out for weeks scores near zero, since the rating already reflects the absence. ESPN doesn't publish historical injury reports, so these can't be backtested and are kept deliberately small. The NBA uses the lineup model below instead, and NFL quarterbacks have a model of their own.
5. Anchored on the market
We blended the rating model with closing betting lines (bookmaker margin removed) and fitted the weight on the first graded season of each league. The market carried everything the ratings knew and more: the best weight for the ratings was zero in the NBA, MLB and NHL, and 7.5% in the NFL. Later seasons held that up in the NBA, MLB and NHL. NFL seasons are under 300 games, so that 7.5% is the least certain number here. Once a line is posted, the forecast follows it. The Elo ratings still drive the power rankings, every factor breakdown and the ratings-vs-line board.
6. Before the line
Lines usually go up a day or so ahead, so games further out need a forecast of their own. A second set of ratings learns how the market priced each team: after every game, both teams move toward the gap its closing line implied. In MLB and the NHL each starting pitcher and goalie gets the same treatment. Those market-implied ratings soak up roster moves and injuries that results alone are slow to show. Blended with Elo, they beat Elo alone on probability quality in every league, most clearly in the NBA and NHL. Their settings were fitted on the first graded season only, like everything else.
7. Who's playing (NBA)
Every player is rated from four seasons of box scores: Game Score per 48 minutes plus a share of plus-minus, weighted toward recent games and pulled toward average until a player has real minutes. Each game's lineup strength is the available players' ratings weighted by their usual minutes, with an absent player's minutes handed to the rest, leaning toward the bench, and a full roster's extra minutes coming partly off the end of the bench (both fitted on 2024-25 box scores, which cut the minutes missed and helped the later seasons' forecasts). The forecast moves by how that lineup compares with the ones the team has been playing lately, so a star sitting tonight lowers it and a star coming back raises it. Both rating systems learn net of lineups, so a loss without the star doesn't cost the team rating. In testing, availability comes from each game's box score (players listed as out for injury, illness or rest), which matches the final injury report before tip-off; live forecasts use ESPN's injury report and current rosters. On the held-out seasons it cut the gap between our pre-line forecasts and the betting line by about half. We tried the same idea for NHL goalies (save percentage on shots faced) and it didn't beat what the model already does, so it isn't used.
8. Starting quarterbacks (NFL)
Every passer is rated on adjusted net yards per play: passing yards plus 20 per touchdown, minus 45 per interception and the yards lost to sacks, with his own runs counted too. Ratings weight recent games more and start an unproven quarterback well below average, so a backup has to earn his way up. Each game compares the starter with the quarterbacks the team has been starting, using everyone's current rating: a backup starting lowers the forecast, the starter coming back raises it, and the usual starter's hot or cold streak isn't counted twice. Both rating systems learn net of it, and it replaced the old rule that a starting QB is worth about 3 points. In testing, the starter is ESPN's listed starter for each game; live forecasts use ESPN's depth chart and injury report, with a questionable starter weighted by his chance of playing. The settings were fitted on 2024 against that season's closing lines, which already price who starts. On the held-out seasons it cut the gap between our pre-line forecasts and the line by about three quarters. We settled on this version after a first one did worse on those seasons, so they aren't a fully untouched test for it. The clean check is 2022, a season it never saw: probabilities improved there, though fewer picks were right. NFL seasons are short, so treat the size of the gain as rough.
9. Travel and schedule
NBA teams that crossed time zones heading east to reach a game lose 12 Elo per zone (about 0.4 points) for body-clock lag. On a road trip a team flies straight from one game to the next; with more than two days off it's assumed to have gone home first. We also tested rest days beyond back-to-backs, three games in four nights, road-trip length, travel distance and eastward travel in the other leagues, each fitted on the first graded season. None improved the later seasons, so none is used. Neither did blending in ESPN's Matchup Predictor for MLB games before the line, even though its snapshots are taken the morning of each game.
10. Live win probability
During a game, the pregame forecast sets how many points, goals or runs the home team was expected to win by, and whatever is left of the game adds a normal spread of outcomes sized to the time remaining. Early on the forecast dominates; late, the scoreboard does. Each league's spread was fitted on the first graded season's quarter-by-quarter (or period, or inning) scores and checked on the later seasons. There it beat both the score alone and the pregame forecast alone at every checkpoint: in the NBA, 72% of leaders were called right after the first quarter (the score alone: 64%) and 83% after the third. Its percentages held up too. It doesn't see possession, field position, power plays or who's on base, so it's a little less sharp than a play-by-play model in the last few minutes. Live numbers are never graded in the track record; only pregame forecasts are.
11. Projected scores
Each team gets an offense and a defense rating: how many points (goals, runs) above the league average it scores, and allows. After every game both move by a small share of the surprise, and in MLB and the NHL each home venue learns its own effect on scoring. A game's total is the two offenses against the two defenses. The margin is the posted spread where there is one, otherwise the forecast turned into points, so the projected winner is always the forecast's pick. Once an over/under is posted it replaces the model's total: it was clearly more accurate in football, basketball and baseball, and in hockey nothing beats the league average by more than a hair. In football and basketball the model's totals beat the league average by a clear margin and land close to the posted total. In MLB they're barely better than the average, since they don't know the starting pitchers, and in the NHL team ratings didn't help at all, so its totals are the league average plus each rink's effect.
12. Player props
Every projection uses only earlier games and assumes the player plays, since props are void if he doesn't. Each league was tuned on its first graded season and graded against real DraftKings and ESPN BET lines after that.
NBA. Minutes come from the lineup model, so an absent teammate's minutes go to the rest of the rotation; production per minute comes from box scores, and points and assists lean toward the team's implied scoring. The projections beat a player's season average and last ten games for every stat but blocks. Against the books they lost: the book's number was more accurate, and betting the model's big disagreements lost about the book's margin.
NHL. Ice time and goals, assists, shots and blocked shots per minute, with goals and assists leaning toward the team's implied goals and shots toward its expected shots. A goalie's saves follow the shots he's expected to face; his own save percentage didn't help. Points, goals and assists are close to coin flips and the model only ties a player's averages there, but it beats them on shots and saves. Against the books it was nearly even, and its big disagreements, mostly unders, made money on both the tuning season and later ones. That fits a known lean in prop lines toward the over, but the sample is a few thousand bets, so treat it as promising, not proven.
NFL. Each player's share of his team's targets and carries times its usual volume, with an absent regular's share handed to the rest; quarterbacks from their team's pass attempts and their own rates. It clearly beats season averages for quarterbacks and slightly for receivers. Against ESPN BET's lines (DraftKings keeps no prices on finished NFL props) it lost on accuracy and its big disagreements came out about even.
So prop chances on this site follow the book's own number with its margin removed, plus the model's small fitted weight, and lines where the model disagrees by 10+ points are tagged with how such lines have done in that league. From October 26, 2026, every tagged line is also logged within a day of its game, at the line and price on offer, and graded after: the forward test in the table above, which no amount of tuning can flatter. A parlay multiplies every leg's margin, which the parlay page shows before you place one.
Head to head, all graded games
| League | Forecast | Before line | Elo alone | Market alone | Lines on file |
|---|---|---|---|---|---|
| NFL | 68.8% | 67.2% | 67.3% | 67.7% | 96% |
| NBA | 68.9% | 68.8% | 67.5% | 68.9% | 100% |
| MLB | 57.0% | 56.4% | 56.4% | 57.1% | 100% |
| NHL | 58.7% | 57.2% | 56.5% | 58.7% | 100% |
| League | Forecast | Before line | Elo alone | Market alone |
|---|---|---|---|---|
| NFL | 0.602 | 0.608 | 0.609 | 0.603 |
| NBA | 0.579 | 0.584 | 0.594 | 0.579 |
| MLB | 0.676 | 0.678 | 0.680 | 0.676 |
| NHL | 0.666 | 0.669 | 0.674 | 0.666 |
| League | Each team | Total: model | Over/under | League avg |
|---|---|---|---|---|
| NFL | 7.2 pts | 10.56 | 10.25 | 10.83 |
| NBA | 9.1 pts | 14.84 | 14.32 | 15.93 |
| MLB | 2.4 runs | 3.52 | 3.45 | 3.54 |
| NHL | 1.4 goals | 1.85 | 1.86 | 1.85 |
Player props against the sportsbook
| League | Lines | Our model | Book | Model's big disagreements | Logged before games |
|---|---|---|---|---|---|
| NFL | 17,384 | 0.721 | 0.689 | 4,421 bets, 51.5% won, −1.9% | Starting now |
| NBA | 118,175 | 0.708 | 0.682 | 23,670 bets, 51.4% won, −3.4% | 904–780, +0.5% |
| NHL | 159,528 | 0.551 | 0.549 | 2,488 bets, 57.0% won, +6.9% | 70–66, −8.5% |
Closing line value, the standard test of whether picks know something before the market does: from November 2, 2026, each logged pick keeps the line it was first tagged at, and once the game is played it's checked against the book's closing line. NFL: 0 picks so far; NBA: of 347, the line moved toward the model's side on 152 (44%), away on 153 (44%); NHL: of 67, the line moved toward the model's side on 30 (45%), away on 16 (24%). Picks the line moves toward more often than away from are finding something before the market; otherwise the model is just following it.
Settings by league
| League | K | Home field | Back-to-back | Regression | Starters | Elo w/ line | Elo pre-line |
|---|---|---|---|---|---|---|---|
| NFL | 25 | 36 | — | 33% | — | 7.5% | 75% |
| NBA | 20 | 36 | −40 | 40% | — | 0.0% | 10% |
| MLB | 3 | 18 | — | 25% | 20/run | 0.0% | 15% |
| NHL | 6 | 35 | −30 | 25% | 40/goal | 0.0% | 20% |
Tuned on the first graded season only (by log loss). Later seasons are a holdout the settings never saw, with one exception: the NFL quarterback model's design was chosen after seeing them (see section 8).
Confidence bands
- Strong: 70%+ win probability
- Solid: 62–70%
- Lean: 55–62%
- Toss-up: Under 55%
Reading the scores
Picks correct is how often the favored team won. Brier score measures whether the probabilities themselves were right (0.25 is a coin flip; lower is better). Calibration checks the stated confidence: if 70% picks win about 70% of the time, the percentages mean what they say.
The honest ceiling
Closing lines are the most accurate public forecast there is, because they absorb depth charts, weather, lineup news and millions of dollars of opinion. No public model reliably beats them, so expect roughly 65–70% in football and basketball and 55–60% in baseball and hockey, where single games are closer to coin flips. Anyone promising much more is selling something. Backtests grade against closing lines; live forecasts use the line at the time, which is usually a little less sharp. The logged record above measures exactly that. Use the numbers for insight, not as betting advice.