Today's slate

Every probability published for 2026-07-21, before first pitch, graded tonight. These change hourly as lineups post. The evidence that they are calibrated lives on the record.

Strikeout board

0.202 running Brier over 342 line-grades

One distribution per probable starter. The three lines below are fixed thresholds we set — 4.5, 5.5 and 6.5 for every start — not sportsbook lines; this engine consumes no odds feed. P(over) derives from the full strip by summation, never estimated separately. Each starter publishes when the opposing lineup posts, so the opposing-starter and matchup features are built against the nine he will actually face; if a lineup is not posted 60 minutes before first pitch, the prediction publishes from a roster-filtered projection instead. The archive records which (opp_nine_source). (An earlier lineup-aware feature was withdrawn 2026-07-19 — see the engine-era note on the record — but the publish trigger it describes is unchanged.)

Published 2026-07-21 20:02:57 UTC. Graded tonight.

LAD at PHI 6:40 PM ET, 2 starters
PitcherTeam E[K]K distribution P(K>4.5)P(K>5.5)P(K>6.5)
Justin WrobleskiLAD4.9P(K = 0) = 0.6%P(K = 1) = 4.4%P(K = 2) = 12.5%P(K = 3) = 10.9%P(K = 4) = 15.3%P(K = 5) = 20.3%P(K = 6) = 10.7%P(K = 7) = 12.8%P(K = 8) = 5.3%P(K = 9) = 3.9%P(K = 10) = 1.9%P(K = 11) = 1.0%P(K = 12+) = 0.3%051012+56%36%25%
Zack WheelerPHI6.8P(K = 0) = 0.4%P(K = 1) = 1.5%P(K = 2) = 6.6%P(K = 3) = 5.9%P(K = 4) = 7.6%P(K = 5) = 9.4%P(K = 6) = 9.6%P(K = 7) = 14.8%P(K = 8) = 17.4%P(K = 9) = 10.0%P(K = 10) = 4.2%P(K = 11) = 12.1%P(K = 12+) = 0.5%051012+78%69%59%
MIN at CLE 6:40 PM ET, 1 starter
PitcherTeam E[K]K distribution P(K>4.5)P(K>5.5)P(K>6.5)
Kendry RojasMIN4.5P(K = 0) = 0.6%P(K = 1) = 6.1%P(K = 2) = 9.7%P(K = 3) = 21.0%P(K = 4) = 16.1%P(K = 5) = 19.1%P(K = 6) = 12.5%P(K = 7) = 5.5%P(K = 8) = 3.5%P(K = 9) = 2.5%P(K = 10) = 1.7%P(K = 11) = 1.0%P(K = 12+) = 0.6%051012+46%27%15%
TB at TOR 7:07 PM ET, 1 starter
PitcherTeam E[K]K distribution P(K>4.5)P(K>5.5)P(K>6.5)
Drew RasmussenTB4.5P(K = 0) = 6.5%P(K = 1) = 4.5%P(K = 2) = 8.3%P(K = 3) = 17.3%P(K = 4) = 15.0%P(K = 5) = 13.4%P(K = 6) = 17.3%P(K = 7) = 7.0%P(K = 8) = 4.5%P(K = 9) = 3.1%P(K = 10) = 1.8%P(K = 11) = 0.7%P(K = 12+) = 0.7%051012+48%35%18%
BOS at BAL 7:10 PM ET, 1 starter
PitcherTeam E[K]K distribution P(K>4.5)P(K>5.5)P(K>6.5)
Eduardo RiveraBOS4.9P(K = 0) = 1.9%P(K = 1) = 4.7%P(K = 2) = 8.9%P(K = 3) = 8.9%P(K = 4) = 23.6%P(K = 5) = 17.6%P(K = 6) = 13.6%P(K = 7) = 9.8%P(K = 8) = 3.3%P(K = 9) = 2.4%P(K = 10) = 2.9%P(K = 11) = 1.3%P(K = 12+) = 1.1%051012+52%34%21%
SD at ATL 7:15 PM ET, 1 starter
PitcherTeam E[K]K distribution P(K>4.5)P(K>5.5)P(K>6.5)
Walker BuehlerSD4.6P(K = 0) = 1.4%P(K = 1) = 5.5%P(K = 2) = 12.7%P(K = 3) = 11.7%P(K = 4) = 18.4%P(K = 5) = 17.3%P(K = 6) = 15.2%P(K = 7) = 8.0%P(K = 8) = 4.2%P(K = 9) = 2.5%P(K = 10) = 2.4%P(K = 11) = 0.5%P(K = 12+) = 0.3%051012+50%33%18%
SF at KC 7:40 PM ET, 2 starters
PitcherTeam E[K]K distribution P(K>4.5)P(K>5.5)P(K>6.5)
Luinder AvilaKC4.3P(K = 0) = 1.3%P(K = 1) = 6.8%P(K = 2) = 18.6%P(K = 3) = 10.6%P(K = 4) = 16.2%P(K = 5) = 18.4%P(K = 6) = 11.8%P(K = 7) = 7.9%P(K = 8) = 4.1%P(K = 9) = 1.9%P(K = 10) = 1.4%P(K = 11) = 0.7%P(K = 12+) = 0.3%051012+46%28%16%
Tyler MahleSF4.4P(K = 0) = 5.2%P(K = 1) = 4.4%P(K = 2) = 8.2%P(K = 3) = 13.2%P(K = 4) = 21.2%P(K = 5) = 18.5%P(K = 6) = 14.1%P(K = 7) = 7.4%P(K = 8) = 3.3%P(K = 9) = 2.3%P(K = 10) = 1.4%P(K = 11) = 0.5%P(K = 12+) = 0.3%051012+48%29%15%

Hits board

0.201 running Brier over 1882 grades

A full hits distribution per starting batter against the announced starter. From 2026-07-19, batter predictions publish only from posted starting lineups, as each team's card posts (typically 1 to 4 hours pre-game). The 2026-07-18 slate was the transition and was still 94% projected, so it is NOT part of the posted-only era despite following 7/17. A side whose lineup never posts pre-game gets no predictions that day. The 7/17 rows were projection-based, as declared at the time; the provenance of every row is labeled in the archive (lineup_source), so this claim is checkable rather than asserted.

Published 2026-07-21 19:31:36 UTC. Graded tonight.

Los Angeles Dodgers at Philadelphia Phillies 6:40 PM ET, 18 batters
BatterTeam Opposing starterP(1+ hit)P(2+ hits)
Andy PagesLADvs Zack Wheeler68%24%
Kyle SchwarberPHIvs Justin Wrobleski67%24%
Freddie FreemanLADvs Zack Wheeler66%22%
Shohei OhtaniLADvs Zack Wheeler66%22%
Trea TurnerPHIvs Justin Wrobleski65%28%
Bryson StottPHIvs Justin Wrobleski65%24%
Brandon MarshPHIvs Justin Wrobleski64%27%
Mookie BettsLADvs Zack Wheeler64%21%
Bryce HarperPHIvs Justin Wrobleski64%24%
Tommy EdmanLADvs Zack Wheeler63%23%
J.T. RealmutoPHIvs Justin Wrobleski62%21%
Kyle TuckerLADvs Zack Wheeler61%21%
Alec BohmPHIvs Justin Wrobleski61%24%
Edmundo SosaPHIvs Justin Wrobleski60%18%
Max MuncyLADvs Zack Wheeler59%21%
Derek HillPHIvs Justin Wrobleski58%19%
Alex CallLADvs Zack Wheeler53%18%
Eliezer AlfonzoLADvs Zack Wheeler47%10%
Minnesota Twins at Cleveland Guardians 6:40 PM ET, 9 batters
BatterTeam Opposing starterP(1+ hit)P(2+ hits)
Chase DeLauterCLEvs Kendry Rojas67%25%
Brayan RocchioCLEvs Kendry Rojas63%23%
Steven KwanCLEvs Kendry Rojas63%19%
Travis BazzanaCLEvs Kendry Rojas61%22%
Austin HedgesCLEvs Kendry Rojas55%17%
Rhys HoskinsCLEvs Kendry Rojas54%16%
Petey HalpinCLEvs Kendry Rojas51%14%
David FryCLEvs Kendry Rojas50%13%
Gabriel AriasCLEvs Kendry Rojas49%12%
Tampa Bay Rays at Toronto Blue Jays 7:07 PM ET, 9 batters
BatterTeam Opposing starterP(1+ hit)P(2+ hits)
Vladimir Guerrero Jr.TORvs Drew Rasmussen69%25%
Ernie ClementTORvs Drew Rasmussen66%26%
Nathan LukesTORvs Drew Rasmussen65%24%
Kazuma OkamotoTORvs Drew Rasmussen62%22%
George SpringerTORvs Drew Rasmussen61%22%
Brandon ValenzuelaTORvs Drew Rasmussen60%20%
Daulton VarshoTORvs Drew Rasmussen58%19%
Andrés GiménezTORvs Drew Rasmussen51%14%
Jonatan ClaseTORvs Drew Rasmussen51%16%
Baltimore Orioles at Boston Red Sox 7:10 PM ET, 9 batters
BatterTeam Opposing starterP(1+ hit)P(2+ hits)
Taylor WardBALvs Eduardo Rivera68%25%
Pete AlonsoBALvs Eduardo Rivera68%26%
Gunnar HendersonBALvs Eduardo Rivera66%25%
Leody TaverasBALvs Eduardo Rivera58%21%
Jackson HollidayBALvs Eduardo Rivera55%16%
Coby MayoBALvs Eduardo Rivera55%17%
Tyler O'NeillBALvs Eduardo Rivera55%18%
Christian Encarnacion-StrandBALvs Eduardo Rivera55%17%
Chadwick TrompBALvs Eduardo Rivera53%15%
San Diego Padres at Atlanta Braves 7:15 PM ET, 9 batters
BatterTeam Opposing starterP(1+ hit)P(2+ hits)
Michael Harris IIATLvs Walker Buehler69%25%
Ozzie AlbiesATLvs Walker Buehler69%24%
Matt OlsonATLvs Walker Buehler69%24%
Drake BaldwinATLvs Walker Buehler67%26%
Mauricio DubónATLvs Walker Buehler65%26%
Austin RileyATLvs Walker Buehler60%22%
Brewer HicklenATLvs Walker Buehler59%23%
Jim JarvisATLvs Walker Buehler58%22%
Mike YastrzemskiATLvs Walker Buehler58%18%
San Francisco Giants at Kansas City Royals 7:40 PM ET, 18 batters
BatterTeam Opposing starterP(1+ hit)P(2+ hits)
Jung Hoo LeeSFvs Luinder Avila71%23%
Rafael DeversSFvs Luinder Avila70%25%
Casey SchmittSFvs Luinder Avila69%29%
Heliot RamosSFvs Luinder Avila69%28%
Bryce EldridgeSFvs Luinder Avila65%26%
Willy AdamesSFvs Luinder Avila65%23%
Carter JensenKCvs Tyler Mahle64%22%
Starling MarteKCvs Tyler Mahle64%23%
Jac CaglianoneKCvs Tyler Mahle63%24%
Drew GilbertSFvs Luinder Avila63%20%
Michael MasseyKCvs Tyler Mahle63%22%
Lane ThomasKCvs Tyler Mahle63%23%
Salvador PerezKCvs Tyler Mahle62%20%
Vinnie PasquantinoKCvs Tyler Mahle62%22%
Nick LoftinKCvs Tyler Mahle62%21%
Jesus RodriguezSFvs Luinder Avila61%18%
Christian KossSFvs Luinder Avila60%18%
Tyler TolbertKCvs Tyler Mahle60%19%

Home run board

0.108 running Brier over 941 grades

P(1+ home run) per starting batter, the classic low-base-rate market. About 13% of graded starters have homered, so probabilities live in the 2 to 30% range, exactly where calibration is hardest to fake. Fully posted-lineups-only from 2026-07-19; the 2026-07-18 slate was a transition (94% still projected), and 7/17 was projection-era. Park HR context is a model feature, built from our own data and strictly prior. Probability bars on this board are drawn on a 0 to 40% scale for legibility; the printed number is the truth.

Published 2026-07-21 19:32:19 UTC. Graded tonight.

Los Angeles Dodgers at Philadelphia Phillies 6:40 PM ET, 18 batters
BatterTeam Opposing starterP(1+ HR)
Brandon MarshPHIvs Justin Wrobleski27%
Kyle SchwarberPHIvs Justin Wrobleski26%
Shohei OhtaniLADvs Zack Wheeler25%
Trea TurnerPHIvs Justin Wrobleski22%
Mookie BettsLADvs Zack Wheeler19%
Bryce HarperPHIvs Justin Wrobleski17%
Freddie FreemanLADvs Zack Wheeler17%
Alec BohmPHIvs Justin Wrobleski16%
Derek HillPHIvs Justin Wrobleski16%
Andy PagesLADvs Zack Wheeler14%
Edmundo SosaPHIvs Justin Wrobleski14%
Max MuncyLADvs Zack Wheeler14%
Bryson StottPHIvs Justin Wrobleski13%
Tommy EdmanLADvs Zack Wheeler13%
Kyle TuckerLADvs Zack Wheeler12%
Alex CallLADvs Zack Wheeler12%
J.T. RealmutoPHIvs Justin Wrobleski12%
Eliezer AlfonzoLADvs Zack Wheeler9%
Minnesota Twins at Cleveland Guardians 6:40 PM ET, 9 batters
BatterTeam Opposing starterP(1+ HR)
Rhys HoskinsCLEvs Kendry Rojas15%
Gabriel AriasCLEvs Kendry Rojas13%
Chase DeLauterCLEvs Kendry Rojas12%
David FryCLEvs Kendry Rojas12%
Travis BazzanaCLEvs Kendry Rojas11%
Austin HedgesCLEvs Kendry Rojas11%
Brayan RocchioCLEvs Kendry Rojas10%
Petey HalpinCLEvs Kendry Rojas9%
Steven KwanCLEvs Kendry Rojas4%
Tampa Bay Rays at Toronto Blue Jays 7:07 PM ET, 9 batters
BatterTeam Opposing starterP(1+ HR)
Brandon ValenzuelaTORvs Drew Rasmussen19%
Kazuma OkamotoTORvs Drew Rasmussen15%
Vladimir Guerrero Jr.TORvs Drew Rasmussen14%
George SpringerTORvs Drew Rasmussen14%
Daulton VarshoTORvs Drew Rasmussen11%
Jonatan ClaseTORvs Drew Rasmussen9%
Nathan LukesTORvs Drew Rasmussen9%
Andrés GiménezTORvs Drew Rasmussen8%
Ernie ClementTORvs Drew Rasmussen6%
Baltimore Orioles at Boston Red Sox 7:10 PM ET, 9 batters
BatterTeam Opposing starterP(1+ HR)
Pete AlonsoBALvs Eduardo Rivera15%
Coby MayoBALvs Eduardo Rivera15%
Taylor WardBALvs Eduardo Rivera13%
Tyler O'NeillBALvs Eduardo Rivera12%
Gunnar HendersonBALvs Eduardo Rivera10%
Christian Encarnacion-StrandBALvs Eduardo Rivera8%
Leody TaverasBALvs Eduardo Rivera8%
Chadwick TrompBALvs Eduardo Rivera7%
Jackson HollidayBALvs Eduardo Rivera6%
San Diego Padres at Atlanta Braves 7:15 PM ET, 9 batters
BatterTeam Opposing starterP(1+ HR)
Matt OlsonATLvs Walker Buehler17%
Drake BaldwinATLvs Walker Buehler16%
Michael Harris IIATLvs Walker Buehler14%
Austin RileyATLvs Walker Buehler14%
Mike YastrzemskiATLvs Walker Buehler14%
Ozzie AlbiesATLvs Walker Buehler11%
Jim JarvisATLvs Walker Buehler11%
Brewer HicklenATLvs Walker Buehler11%
Mauricio DubónATLvs Walker Buehler10%
San Francisco Giants at Kansas City Royals 7:40 PM ET, 18 batters
BatterTeam Opposing starterP(1+ HR)
Heliot RamosSFvs Luinder Avila20%
Rafael DeversSFvs Luinder Avila20%
Jac CaglianoneKCvs Tyler Mahle19%
Salvador PerezKCvs Tyler Mahle17%
Bryce EldridgeSFvs Luinder Avila16%
Casey SchmittSFvs Luinder Avila16%
Lane ThomasKCvs Tyler Mahle15%
Carter JensenKCvs Tyler Mahle15%
Willy AdamesSFvs Luinder Avila13%
Nick LoftinKCvs Tyler Mahle10%
Jesus RodriguezSFvs Luinder Avila10%
Starling MarteKCvs Tyler Mahle9%
Vinnie PasquantinoKCvs Tyler Mahle9%
Christian KossSFvs Luinder Avila8%
Tyler TolbertKCvs Tyler Mahle7%
Jung Hoo LeeSFvs Luinder Avila7%
Michael MasseyKCvs Tyler Mahle7%
Drew GilbertSFvs Luinder Avila7%

Totals board

2.452 running CRPS over 15 graded games

The full run-total distribution per game, published before first pitch and graded by CRPS — the proper score for a whole distribution. Every P(over) below is a summation over the published strip, never a separate model, which is what stops this board and the run distributions from contradicting each other.

What clearing the launch gate does and does not mean

The gate is a floor, not a skill test. Our launch threshold was a backtest CRPS below 2.5678. A null model that knows one binary fact — which team is at home — and nothing else scores 2.5604 against that same gate. So clearing it means "not worse than knowing nothing", not "has an edge".

Any edge over climatology is marginal at best. On the 558-game holdout the model scored 2.5466 against climatology's 2.5678, and the paired-bootstrap 95% interval on that gap, [-0.0413, -0.0007], excludes zero by only 0.0007 — less than this engine's own seed-to-seed variation. We read that as suggestive, not established. The live record is what will settle it. It clears the pre-registered floor on 100% of 100 refits — that is refit reproducibility, not a confidence statement.

The companion winners market is not published: it cleared its gate on only 73% of 100 refits, so it failed and is being held. That miss is written down rather than quietly retried.

Published 2026-07-21 20:00:41 UTC. 2 of 15 scheduled games — a game appears once both starters are announced and its lineups post. Graded tonight.

LAD at PHI E[total] 9.26, P(over 8.5) 52%
Mean Run-total distributionP(over 7.5)P(over 8.5)P(over 9.5)Source
9.2660%52%43%posted/posted lineups
SF at KC E[total] 9.43, P(over 8.5) 55%
Mean Run-total distributionP(over 7.5)P(over 8.5)P(over 9.5)Source
9.4363%55%45%posted/posted lineups
Live line Briers against the frozen climatology anchors. Lines are fixed at 7.5/8.5/9.5, not taken from a market.
LineGradedBrier ClimatologyGap
Over/under 7.5150.23090.2430-0.0121
Over/under 8.5150.25890.2504+0.0085
Over/under 9.5150.28260.2458+0.0368

These lines are fixed at the same values for every start, not set to each pitcher's coin-flip point the way a market would. That places them well for a typical starter and badly for the extremes — an ace is a near-certain over at all three, a soft-tosser a near-certain under — so line Briers are flattered at both ends relative to what market-set lines would produce. Log-loss and the calibration curves score the whole distribution and do not have this problem. Benchmarking against de-vigged closing lines is goal CL-1 in the benchmarks, and is not live yet.

Probabilities, not picks. Not betting advice.