The record

Written before first pitch.
Never edited after.

Since Sep 17, 2026, every prediction is frozen at first pitch. Later builds may add the result and the closing price; none may change the prediction. What follows is graded from those frozen rows, including where the book is still ahead of us.

Every market

Model cards →
MarketBacktest skillLive testVs closing price
Pitcher strikeouts25.8%
22.6% to 28.8%
164 over 26 dates
needs 200 over 7
Book more accurate
+0.087 (+0.056 to +0.122)
across dates +0.053 to +0.135
275 predictions over 12 dates · engines v10–v14
1+ hit1.4%
1.0% to 1.8%
1,473 over 26 dates
past the minimum · re-grade pending
No clear difference
+0.013 (+0.001 to +0.025)
across dates -0.005 to +0.032
1,053 predictions over 5 dates · engine v8
2+ total bases1.2%
0.9% to 1.6%
1,473 over 26 dates
past the minimum · re-grade pending
No clear difference
+0.010 (+0.003 to +0.020)
across dates -0.001 to +0.024
712 predictions over 5 dates · engine v8
1+ home run1.5%
1.0% to 1.9%
1,473 over 26 dates
research only
No clear difference
+0.007 (+0.001 to +0.016)
across dates -0.004 to +0.020
867 predictions over 5 dates · engine v8
Game total-0.7%
-3.1% to 1.8%
53 over 24 dates
research only
not measured
Moneyline1.3%
-0.2% to 2.9%
81 over 26 dates
research only
Too few to read
+0.023 (+0.003 to +0.043)
across dates -0.002 to +0.058
81 predictions over 9 dates · engine v8
First inning (NRFI/YRFI)–81 over 26 dates
research only
not measured
Backtest skill: how much lower the error is than the league-wide rate, engine v14 replayed walk-forward, 95% interval. Live test: settled pre-game results under engine v14; it restarts with each engine. "Re-grade pending": past the minimum since the cards were built (Sep 27, 2026). Vs closing price: log loss, model minus the no-vig close; positive = the book was more accurate. A side is more accurate only on 100+ predictions with both intervals clear of zero. Each closing-price sample is its own clean pre-game prices, not the frozen rows above: Pitcher strikeouts Sep 16 to Sep 27 (engines v10–v14); 1+ hit Sep 11 to Sep 15 (engine v8); 2+ total bases Sep 11 to Sep 15 (engine v8); 1+ home run Sep 11 to Sep 15 (engine v8); Moneyline 9 dates (engine v8).

Did the numbers mean what they said?

4 calibration charts · 2,944 settled hitter games and 328 starts, frozen before first pitch · Sep 17, 2026 to Oct 28, 2026
1+ hit · 2,944 games
30%40%50%60%70%80%30%40%50%60%70%80%BTB saidHappenedSaid 44% · happened 49% · 368 rowsSaid 52% · happened 59% · 368 rowsSaid 55% · happened 51% · 368 rowsSaid 57% · happened 57% · 368 rowsSaid 60% · happened 61% · 368 rowsSaid 62% · happened 64% · 368 rowsSaid 65% · happened 66% · 368 rowsSaid 69% · happened 66% · 368 rows

Brier 0.2395 vs 0.2417 for always saying the average (better). Said 57.9% on average; happened 59.1%.

2+ total bases · 2,944 games
10%20%30%40%50%60%10%20%30%40%50%60%BTB saidHappenedSaid 23% · happened 24% · 368 rowsSaid 27% · happened 32% · 368 rowsSaid 30% · happened 29% · 368 rowsSaid 32% · happened 33% · 368 rowsSaid 34% · happened 35% · 368 rowsSaid 37% · happened 36% · 368 rowsSaid 39% · happened 41% · 368 rowsSaid 45% · happened 37% · 368 rows

Brier 0.2213 vs 0.2224 for always saying the average (better). Said 33.5% on average; happened 33.4%.

Home run · 2,944 games
0%5%10%15%20%25%0%5%10%15%20%25%BTB saidHappenedSaid 5% · happened 4% · 368 rowsSaid 7% · happened 5% · 368 rowsSaid 8% · happened 9% · 368 rowsSaid 10% · happened 9% · 368 rowsSaid 11% · happened 13% · 368 rowsSaid 13% · happened 12% · 368 rowsSaid 14% · happened 14% · 368 rowsSaid 18% · happened 17% · 368 rows

Brier 0.0919 vs 0.0934 for always saying the average (better). Said 10.8% on average; happened 10.4%.

Strikeouts · 328 starts
2.04.06.08.02.04.06.08.0BTB said (K)Happened (K)Said 2.6 · happened 2.4 · 54 rowsSaid 3.8 · happened 3.8 · 55 rowsSaid 4.4 · happened 3.5 · 55 rowsSaid 5.0 · happened 5.1 · 54 rowsSaid 5.7 · happened 5.4 · 55 rowsSaid 6.9 · happened 6.3 · 55 rows

Correlation 0.50, RMSE 2.34 strikeouts. Projected 4.73 a start on average; he got 4.41.

Each dot is an equal-sized group of games, placed at what we said against what happened, with its 95% interval. On the dashed line is honest; dots spread along it is skill. Pooled across every engine that served these games (engine v11, engine v12, engine v13, engine v14), because that is what readers saw. The samples are small: read the intervals before the dots.

Strikeouts at the line, start by start

Latest 40 of 292 graded pre-game starts over 34 dates, every engine, updated with every build
BTB's side right156 of 29253.4%
Book's favorite right158 of 29254.1%
Overs137 of 29246.9%
Brier, all 292 graded starts.259book .244 · coin .250 · lower is better
DateStarterLineBTB overBook overStrikeoutsResultBTB's side
Oct 28Drew Rasmussen TB vs MIL4.566.7%54.0%4UnderOver · wrong
Oct 28Jacob Misiorowski MIL vs TB5.553.2%55.8%2UnderOver · wrong
Oct 27Dustin May MIL vs TB2.557.1%42.2%3OverOver · right
Oct 27Griffin Jax TB vs MIL3.565.9%50.0%6OverOver · right
Oct 26Freddy Peralta TB vs MIL4.552.4%52.4%4UnderOver · wrong
Oct 26Robert Gasser MIL vs TB3.549.6%44.2%3UnderUnder · right
Oct 24Drew Rasmussen TB vs MIL5.559.2%56.5%4UnderOver · wrong
Oct 24Logan Henderson MIL vs TB4.552.5%52.9%4UnderOver · wrong
Oct 23Jacob Misiorowski MIL vs TB6.535.9%54.4%3UnderUnder · right
Oct 23Nick Martinez TB vs MIL3.549.5%38.9%5OverUnder · wrong
Model probability at the book's own main line, as frozen before first pitch; book probability de-vigged at the open. Rows written after first pitch are left out.
The 30 starts before these
DateStarterLineBTB overBook overStrikeoutsResultBTB's side
Oct 19Freddy Peralta TB vs CLE4.536.1%42.4%3UnderUnder · right
Oct 18Drew Rasmussen TB vs CLE5.541.9%44.6%6OverUnder · wrong
Oct 18Parker Messick CLE vs TB4.555.9%53.3%3UnderOver · wrong
Oct 17Nick Martinez TB vs CLE2.554.9%39.9%3OverOver · right
Oct 15Gavin Williams CLE vs TB6.548.0%47.0%9OverUnder · wrong
Oct 15Griffin Jax TB vs CLE3.564.3%54.7%2UnderOver · wrong
Oct 15Tyler Glasnow LAD vs MIL5.571.1%58.7%6OverOver · right
Oct 14Blake Snell LAD vs MIL6.542.0%45.0%9OverUnder · wrong
Oct 14Robert Gasser MIL vs LAD3.551.6%45.6%3UnderOver · wrong
Oct 13Freddy Peralta TB vs CLE3.555.4%53.4%6OverOver · right
Oct 13Parker Messick CLE vs TB4.552.5%48.4%3UnderOver · wrong
Oct 12Drew Rasmussen TB vs CLE5.540.3%50.0%7OverUnder · wrong
Oct 12Foster Griffin CLE vs TB3.559.2%50.0%3UnderOver · wrong
Oct 12Logan Henderson MIL vs LAD5.550.2%48.1%2UnderOver · wrong
Oct 12Yoshinobu Yamamoto LAD vs MIL6.555.4%52.4%1UnderOver · wrong
Oct 11Jacob Misiorowski MIL vs LAD7.532.4%45.9%5UnderUnder · right
Oct 11Tarik Skubal LAD vs MIL7.540.8%43.3%7UnderUnder · right
Oct 10Gavin Williams CLE vs CWS6.571.6%53.3%12OverOver · right
Oct 10Sean Burke CWS vs CLE3.569.1%55.8%4OverOver · right
Oct 8Hagen Smith CWS vs CLE1.571.2%59.4%0UnderOver · wrong
Oct 8Parker Messick CLE vs CWS5.560.8%54.8%5UnderOver · wrong
Oct 7Max Fried NYY vs TB4.540.0%47.6%7OverUnder · wrong
Oct 7Nick Martinez TB vs NYY2.570.6%59.7%3OverOver · right
Oct 7Robert Gasser MIL vs SD2.578.0%48.3%3OverOver · right
Oct 7Tyler Glasnow LAD vs ATL6.558.1%46.0%5UnderOver · wrong
Oct 7Tyler Mahle ATL vs LAD3.572.0%58.4%4OverOver · right
Oct 7Walker Buehler SD vs MIL2.570.6%56.7%0UnderOver · wrong
Oct 6Chris Sale ATL vs LAD7.535.0%43.3%7UnderUnder · right
Oct 6Dustin May MIL vs SD2.575.3%57.3%3OverOver · right
Oct 6Nick Pivetta SD vs MIL3.562.8%58.4%4OverOver · right