Legends DeckStandingsCompare
Model accuracy2026 season scorecard
UpdatedOct 29, 2026
Games scored2429Tiers earned1

How accurate are our MLB win odds and projections

Plain words first, tables second. We show what the model got right and wrong, and we say so when a number is not good enough to rely on.

The short version

Win chances come from a team-strength model that is level with the closing market in our 2025 backtest (0.6783 vs 0.6758, gap not significant). It does not beat the market.

2026 (out of sample). Replayed from information available before each game, not a live lock.

Over 2429 games our win chance scored a log loss of 0.683 (lower is better; a coin flip scores 0.693, the home-win rate 0.692). That is better than both a coin flip and always using the home-win rate.

The side we favored won 55.5% of games (1349 of 2429).

Tier earned: Clear favourite (60%+) (2025: 573 games, 64.2% claimed, 63.2% won; 2026: 499 games, 63.4% claimed, 61.3% won). Higher buckets (65%+, 70%+) have not earned a label yet.

How we score ourselves

A game projection is only worth reading if we show how earlier ones scored. We print every table, including the bad ones.

No peeking. Every input is what was known before first pitch: lineups as posted (the starting nine), the announced starter, bullpen availability from the games before that day, profiles from the three prior seasons plus the season to date, models trained on earlier seasons only.

Fitting. Win chances are fitted on one season and applied unchanged to the next. 2025 is scored cross-fit (fitted on one half of the season by calendar week, scored on the other half); 2026 uses the 2025 fit and nothing from 2026.

Which seasons. 2025 is the development year (design choices were tuned on 2025); 2026 is the untouched out-of-sample year.

Log loss scores each game by how much probability we gave the side that won, then averages. Lower is better. Calling every game 50-50 scores 0.693.

Calibration asks whether "60%" really means about 60%: games we gave a bucket of probability, and how often the home side won.

Average miss is how far a projected stat is from the real one in a typical game.

How our win chance is built

Win chances come from a team-strength model (regressed run differential, starter quality, lineup quality, home field). They do not come from the 1,000-game simulation, whose own win probability carried no information beyond the home-field rate in this backtest.

The 1,000-game simulation's own win probability is not what we publish: on the 810 games it was scored on (2025 (cross-fit)) it scored a log loss of 0.6823 against 0.6911 for always picking the home side.

Inputs to our win chance and their weights in the fit
InputWeight
Team strength: this season's run differential blended with last season's0.592
Lineup quality: the posted batting order0.073
Starter quality: the announced starting pitcher0.387

Home field is built into the fit. Fitted on 2025 (2430 games) and applied unchanged to later games.

Win chancelog loss, lower is better

Our win chance scored with log loss, lower is better
SetGamesHome wonCoin flipHome rateOur win chance [95%]Closing marketOurs, same gamesFavorite won
2026 (out of sample)242952.9%0.69310.69190.6827 [0.6766, 0.6889]none55.5%
2025 (cross-fit)243054.3%0.69310.68950.6786 [0.6721, 0.6857]0.6758 (n 2268)0.678356.3%

Calibration: 2026 (out of sample)

Calibration of our home win chance, 2026 (out of sample)
Home win chance bucketGamesWe saidHome won
0.30 to 0.403837.7%31.6%
0.40 to 0.4516243.0%35.8%
0.45 to 0.5040347.8%49.4%
0.50 to 0.5569152.6%52.0%
0.55 to 0.6067457.4%55.8%
0.60 to 0.7044763.2%60.6%
0.70 to 1.001473.0%64.3%

Calibration: 2025 (cross-fit)

Calibration of our home win chance, 2025 (cross-fit)
Home win chance bucketGamesWe saidHome won
0.00 to 0.30128.9%0.0%
0.30 to 0.406737.2%34.3%
0.40 to 0.4515842.9%45.6%
0.45 to 0.5038847.8%48.2%
0.50 to 0.5566052.6%52.9%
0.55 to 0.6065157.2%57.0%
0.60 to 0.7045463.5%60.8%
0.70 to 1.005172.5%80.4%

Run totals

Run totals aren't accurate enough to publish yet.

The rule: published only if our calibrated total has a lower mean absolute error than the naive park baseline in every out-of-sample set. Until it passes, no page shows a projected score or a run total.

Avg miss is how far a projected game total is from the real one in a typical game. The park baseline is the league average for the ballpark, season to date.

Total runs per game: our calibrated total against a naive baseline and the closing market total
SetGamesOurs avg missOurs biasOurs corr.Park baseline avg missPark baseline biasPark baseline corr.League baseline avg missOurs minus park baseline [95%]Closing market totalOurs, same games
2025 cross-fit8103.708-0.010.0703.649-0.260.1193.670+0.059 [+0.006, +0.117]3.619 (n 763, bias -0.63, corr 0.133)3.729
2026 out-of-sample8103.785+0.830.0273.577-0.010.1353.600+0.208 [+0.130, +0.283]none
Games grouped by how our total compared with the market total, and how often the game went over the market total
SetOur total against the market totalGamesWent over the market totalOur total minus market, avgActual minus market, avg
2025 cross-fitours 1.5+ runs ABOVE market11651.4%+1.96+1.00
2025 cross-fitours 0.5 to 1.5 above31649.3%+0.96+0.74
2025 cross-fitwithin 0.5 of market25848.0%+0.06+0.49
2025 cross-fitours 0.5 to 1.5 below5650.0%-0.87+0.25
2025 cross-fitours 1.5+ runs BELOW market1746.7%-2.05-0.32

Confidence tiers: earned or not

Tier earned: Clear favourite (60%+) (2025: 573 games, 64.2% claimed, 63.2% won; 2026: 499 games, 63.4% claimed, 61.3% won). Higher buckets (65%+, 70%+) have not earned a label yet. A game carries the tier label only when its favorite reaches that bucket.

The test, printed so you can check it: at least 80 games in the bucket in every set; claimed probability inside the 95% interval of the realised win rate, in every evaluation set; lower 95% bound of realised win rate >= 0.55.

Tier audit: each candidate tier against the held-out games
Candidate tierResultEvidence
Favorite 60% or moreEarned2025 cross-fit: 573 games, said 64.2%, won 63.2% (95% range 59.2% to 67.0%)
2026 out-of-sample: 499 games, said 63.4%, won 61.3% (95% range 57.0% to 65.5%)
Favorite 65% or moreNot earned2025 cross-fit: 190 games, said 68.6%, won 76.3% (95% range 69.8% to 81.8%)
2026 out-of-sample: 123 games, said 67.7%, won 68.3% (95% range 59.6% to 75.9%)
Favorite 70% or moreNot earned2025 cross-fit: 52 games, said 72.5%, won 80.8% (95% range 68.1% to 89.2%)
2026 out-of-sample: 14 games, said 73.0%, won 64.3% (95% range 38.8% to 83.7%)
Favorite-side buckets, 2026 (out of sample)
Favorite chanceGamesWe saidFavorite won95% range
0.50 to 0.55109452.4%51.5%48.5% to 54.4%
0.55 to 0.6083657.3%57.4%54.0% to 60.7%
0.60 to 0.6537662.0%59.0%54.0% to 63.9%
0.65 to 0.7010967.0%68.8%59.6% to 76.7%
0.70 to 0.751272.3%58.3%32.0% to 80.7%
0.75 to 1.00276.9%100.0%34.2% to 100.0%
0.60 to 1.0049963.4%61.3%57.0% to 65.5%
0.65 to 1.0012367.7%68.3%59.6% to 75.9%
0.70 to 1.001473.0%64.3%38.8% to 83.7%
Favorite-side buckets, 2025 (cross-fit)
Favorite chanceGamesWe saidFavorite won95% range
0.50 to 0.55104852.4%52.5%49.5% to 55.5%
0.55 to 0.6080957.2%56.5%53.1% to 59.9%
0.60 to 0.6538362.1%56.7%51.7% to 61.5%
0.65 to 0.7013867.1%74.6%66.8% to 81.2%
0.70 to 0.754571.9%77.8%63.7% to 87.5%
0.75 to 1.00776.8%100.0%64.6% to 100.0%
0.60 to 1.0057364.2%63.2%59.2% to 67.0%
0.65 to 1.0019068.6%76.3%69.8% to 81.8%
0.70 to 1.005272.5%80.8%68.1% to 89.2%

Current season

No regular-season game was locked before first pitch this season, so there is no live ledger yet.

The live ledger starts with the 2027 season. Until then the 2026 replay above is the honest record: it uses only information available before each game, but it was not a live lock.

Player-line simulation: input adjustments

Before each simulation every hitter's input rates are rescaled: home runs x0.4, walks x1.5, strikeouts x0.8, singles x1.06. The same factors apply to every player, so differences between players are untouched.

Measured on a sample of 2025 games: without the adjustment the simulation produced 1.87 times the real number of home runs and 0.61 times the walks; with it, 1.10 and 1.02.

Batter lines: 2026 (out of sample)

Player lines are about level with a simple season-rate baseline (a hitter's own season rates): better on 4 of 8 stats, worse on 4. What they are good for is coherent lineups and playing time, not beating a hitter's own rates.

Batter lines, ours versus actual per game, 2026 (out of sample)
StatPlayer gamesActual avgOur avgBiasOur avg missSeason-rate baseline avg missCorr.
Plate appearances145804.0154.061+0.0470.5670.5770.441
Hits145800.8610.898+0.0370.6770.6830.134
Home runs145800.1230.144+0.0210.2310.2150.101
Runs145800.4690.512+0.0430.5880.5770.110
RBI145800.4460.495+0.0500.6460.6290.087
Walks145800.3640.379+0.0160.4950.4830.173
Strikeouts145800.8920.905+0.0130.6750.6820.217
Stolen bases145800.0730.076+0.0030.1320.1360.220
Per-batter chance of at least one event, 2026 (out of sample)
EventWe said (avg)HappenedLog lossBrier
At least one hit57.2%60.1%0.6690.238
At least one home run13.3%11.5%0.3530.101
At least one walk32.4%30.3%0.6040.207

Batter lines: 2025 (cross-fit)

Player lines are about level with a simple season-rate baseline (a hitter's own season rates): better on 5 of 8 stats, worse on 3. What they are good for is coherent lineups and playing time, not beating a hitter's own rates.

Batter lines, ours versus actual per game, 2025 (cross-fit)
StatPlayer gamesActual avgOur avgBiasOur avg missSeason-rate baseline avg missCorr.
Plate appearances145804.0304.029-0.0010.5480.5590.443
Hits145800.8920.892-0.0010.6830.6890.133
Home runs145800.1300.1300.0000.2260.2190.113
Runs145800.4780.477-0.0010.5840.5830.144
RBI145800.4620.4620.0000.6380.6330.102
Walks145800.3340.3340.0000.4590.4600.190
Strikeouts145800.8910.890-0.0010.6660.6750.206
Stolen bases145800.0740.0740.0000.1310.1360.198
Per-batter chance of at least one event, 2025 (cross-fit)
EventWe said (avg)HappenedLog lossBrier
At least one hit57.1%61.5%0.6650.236
At least one home run12.1%12.0%0.3620.105
At least one walk29.1%28.4%0.5840.198

Starting pitcher lines: 2026 (out of sample)

Starting pitcher lines, ours versus actual, 2026 (out of sample)
StatStartsActual avgOur avgBiasOur avg missBefore rescaling avg missCorr.
Outs recorded162015.0515.31+0.252.993.670.530
Strikeouts16204.784.90+0.121.821.870.411
Earned runs16202.412.61+0.201.611.570.150
Hits allowed16204.674.88+0.211.761.910.274
Walks16201.851.94+0.091.061.060.192
Home runs allowed16200.710.82+0.110.710.710.109
Pitches162083.7385.18+1.4510.3215.270.651

Starting pitcher lines: 2025 (cross-fit)

Starting pitcher lines, ours versus actual, 2025 (cross-fit)
StatStartsActual avgOur avgBiasOur avg missBefore rescaling avg missCorr.
Outs recorded162015.5615.54-0.022.853.380.361
Strikeouts16204.864.85-0.011.921.930.341
Earned runs16202.472.470.001.601.570.120
Hits allowed16204.924.920.001.751.910.190
Walks16201.731.730.001.051.060.154
Home runs allowed16200.750.750.000.710.720.091
Pitches162085.3985.32-0.079.6613.410.492

Bullpen availability: 2026 (out of sample)

Bullpen availability: did the arms we said could pitch actually pitch
SetReliever gamesPitchedWe said (avg)Log lossRelievers per team game, ours / actualPen outs per team game, ours / actualMarked unavailable: n, pitchedMarked available: n, pitched
2026 (out of sample)1364337.3%0.5983.14 / 3.0811.1 / 11.52336, 5.0%4707, 53.5%
Chance a reliever appears, by bucket
Chance he appearsArmsWe saidAppeared
0.00 to 0.051482.1%2.7%
0.05 to 0.15109210.9%2.8%
0.15 to 0.30362723.5%22.4%
0.30 to 0.45433637.4%40.8%
0.45 to 0.60320751.4%51.3%
0.60 to 0.80114066.8%58.8%
0.80 to 1.009384.2%63.4%

Bullpen availability: 2025 (cross-fit)

Bullpen availability: did the arms we said could pitch actually pitch
SetReliever gamesPitchedWe said (avg)Log lossRelievers per team game, ours / actualPen outs per team game, ours / actualMarked unavailable: n, pitchedMarked available: n, pitched
2025 (cross-fit)1370836.5%0.6003.09 / 3.0910.9 / 11.02225, 5.6%5022, 52.5%
Chance a reliever appears, by bucket
Chance he appearsArmsWe saidAppeared
0.00 to 0.051442.5%1.4%
0.05 to 0.15113411.0%3.4%
0.15 to 0.30379823.6%24.0%
0.30 to 0.45444737.5%40.8%
0.45 to 0.60312851.3%52.6%
0.60 to 0.80100166.6%57.6%
0.80 to 1.005684.2%39.3%

Substitution check: 2026 (out of sample)

Substitutions: pinch hitters and defensive replacements
SetTeam games with a substitute bat, ours / actualSubstitute PA per team game, ours / actualAvg miss of bench PAStarter PA per team game, ours / actual
2026 (out of sample)69.8% / 67.5%1.62 / 1.651.3336.55 / 36.13

Substitution check: 2025 (cross-fit)

Substitutions: pinch hitters and defensive replacements
SetTeam games with a substitute bat, ours / actualSubstitute PA per team game, ours / actualAvg miss of bench PAStarter PA per team game, ours / actual
2025 (cross-fit)64.3% / 63.9%1.40 / 1.451.2436.26 / 36.27

Ablations: what each input is worth

Ablations: same games, one input switched, scored on player lines and the bullpen
ArmGamesBatter H avg missSP outs avg missRelievers per game, ours (actual)Reliever appearance log loss
2025 (cross-fit) (as shipped) 202524300.6832.853.09 (3.09)0.5999
2025 ablation: scorecard-recipe inputs (same games) 20258100.6872.853.69 (3.09)6.4552
2026 ablation: scorecard-recipe inputs (same games) 20268100.6832.973.71 (3.08)6.4394

Supporting model checks

Supporting model checks on held-out games
ModelRowsCheckDetail
Bullpen availability pen-202541129log loss 0.573 vs 0.658 using only the league raterelievers per team game: ours 3.07, actual 3.11
Bullpen availability pen-202640912log loss 0.566 vs 0.655 using only the league raterelievers per team game: ours 3.02, actual 3.06
Starter workload sp-20254860pitch-count avg miss 9.51 vs 10.23 from his last five startsbias +1.36 pitches
Starter workload sp-20264858pitch-count avg miss 10.29 vs 10.85 from his last five startsbias +1.84 pitches
Substitutions ph-202543740log loss 0.328 vs 0.346 using only the league ratesubstitute PA per team game: ours 1.43, actual 1.42
Substitutions ph-202643722log loss 0.353 vs 0.381 using only the league ratesubstitute PA per team game: ours 1.63, actual 1.71
SourcesEvery number here is a model estimate. Anything we do not have is left blank, never filled with zeros.