The Calibration Ledger
RunsLeft publishes calibrated MLB pitcher strikeout probabilities — and tracks how those probabilities perform. The claim we make is calibration: when the model says a number, how often does that number come true.
- Model typeMLB pitcher strikeout probability
- MethodProbability calibration
- Tracking sinceMay 2026
- Predictions graded882
Predicted vs. actual, by probability bucket
Every graded strikeout pick lands in a bucket by the probability the model gave it. Perfect calibration sits on the diagonal: a bucket's actual hit rate matching what the model predicted. 4 of 5 buckets have earned a point so far; the rest stay marked collecting until they reach 100 graded predictions. Buckets short of 100 are never plotted, estimated, or filled in — the curve forms as the sample does.
| Bucket (predicted) | Graded n | Mean predicted | Actual |
|---|---|---|---|
| <55 | 31 | collecting data (n=31) | — |
| 55-60 | 139 | 57.7% | 65.5% |
| 60-65 | 149 | 62.7% | 64.4% |
| 65-70 | 203 | 67.5% | 68.5% |
| 70+ | 335 | 76.4% | 75.8% |
Rolling graded record
Grouped by the confidence the pick was published with. All windows are measured through 2026-07-10. Past results do not predict future results.
| Window | High — record | High — hit rate | Medium — record | Medium — hit rate |
|---|---|---|---|---|
| Last 7 days from 2026-07-04 | 81–26 (+2 voided — excluded from the rate) | 75.7% | 11–10 (+1 voided — excluded from the rate) | collecting data (n=21) |
| Last 30 days from 2026-06-11 | 320–122 (+17 voided — excluded from the rate) | 72.4% | 50–29 (+3 voided — excluded from the rate) | collecting data (n=79) |
| Season from 2026-05-27 | 528–216 (+22 voided — excluded from the rate) | 71.0% | 75–38 (+3 voided — excluded from the rate) | 66.4% |
By line tier
Most graded picks ride reduced-payout lines, so a single pooled number would flatter the record. Rates are shown per tier, labeled for what the tier is, and never pooled across tiers.
| Tier | Decided | Record | Hit rate |
|---|---|---|---|
| standard line | 3 | 1–2 | collecting data (n=3) |
| goblin — reduced payout | 746 | 538–208 | 72.1% |
| demon — boosted payout | 1 | 0–1 | collecting data (n=1) |
| tier unrecovered | 107 | 64–43 | 59.8% |
| Month | standard | goblin | demon | unrecovered | tier coverage |
|---|---|---|---|---|---|
| May 2026 | 0 | 117 | 0 | 0 | 100.0% |
| June 2026 | 3 | 510 | 1 | 57 | 90.0% |
| July 2026 | 0 | 119 | 0 | 50 | 70.4% |
Line-tier recovered for 87.5% of decided picks.
How often the high-probability spots occur
The model publishes a pick only when a line clears its capture bar — on most slates that is a handful of pitchers, not the whole board. Counts of decided picks this season, by the probability the model assigned:
| Predicted probability | Decided picks |
|---|---|
| 50–60% | 170 |
| 60–70% | 352 |
| 70%+ | 335 |
Recent evaluated predictions
The last 20 decided picks, newest first — every decided pick in order, never curated, never sorted by result.
| Date | Pitcher | Line | Predicted | Result |
|---|---|---|---|---|
| 2026-07-10 | Aaron Nola | o5.5 | 53.9% | HIT |
| 2026-07-10 | Chris Sale | o5.5 | 53.7% | MISS |
| 2026-07-10 | Hunter Brown | o5.5 | 58.3% | MISS |
| 2026-07-10 | Jacob Lopez | o1.5 | 85.6% | MISS |
| 2026-07-10 | Parker Messick | o4.5 | 63.7% | MISS |
| 2026-07-10 | Shota Imanaga | o5.5 | 56.1% | MISS |
| 2026-07-10 | Tanner Gordon | o3.5 | 60.3% | MISS |
| 2026-07-09 | Andre Pallante | o3.5 | 56.6% | MISS |
| 2026-07-09 | Anthony Kay | o3.5 | 54.5% | HIT |
| 2026-07-09 | Bailey Ober | o3.5 | 59.2% | HIT |
| 2026-07-09 | Bryce Elder | o3.5 | 65.9% | MISS |
| 2026-07-09 | Carson Whisenhunt | o3.5 | 64.8% | HIT |
| 2026-07-09 | David Peterson | o4.5 | 57.1% | MISS |
| 2026-07-09 | Framber Valdez | o4.5 | 59.6% | HIT |
| 2026-07-09 | Gavin Williams | o5.5 | 58.2% | HIT |
| 2026-07-09 | Janson Junk | o3.5 | 60.4% | HIT |
| 2026-07-09 | Nathan Eovaldi | o6.5 | 53.3% | HIT |
| 2026-07-09 | Patrick Sandoval | o4.5 | 57.8% | HIT |
| 2026-07-08 | Alan Rangel | o4.5 | 63.9% | HIT |
| 2026-07-08 | Dean Kremer | o4.5 | 60.4% | MISS |
How this ledger works
What counts as a pick
Each evening the model snapshots every published strikeout line it likes, with the probability it assigned at capture time. The next morning, each pick is graded against what the pitcher actually did: over the line is a hit, under it is a miss. When a pitcher has more than one graded line for the same night, the ledger keeps the single line the model rated highest and discards the rest, so one start never counts twice.
What calibration means
A calibrated model is one whose numbers mean what they say: gather every pick it rated at some probability, and about that share of them should come true. That is the whole claim this page tracks — the chart above compares what the model predicted with what actually happened, bucket by bucket. It is a different and humbler claim than promising winners.
Why the chart shows the raw model probability
The model produces a raw probability, and a calibration layer adjusts it before publication. Stamping the calibrated number into the graded ledger only began on July 4, 2026, so it covers just a small share of the graded history. Mixing the two numbers into one chart would be dishonest, so the historical view is built on the raw probability every pick has carried since day one. A calibrated view will be added alongside it once enough stamped picks have graded — the raw view will not be silently swapped out.
Pushes, voids, and scratches
A push (the pitcher lands exactly on a whole-number line) and a void (the pitcher never played) are counted and shown, but excluded from every hit-rate denominator. Scratches are also handled at the source: when a pitcher is confirmed out after the evening snapshot, the capture is removed before grading and swept again at the nightly backfill, and each removal is copied to an audit table — so the graded set reflects picks that could actually have been played, and the removals stay reviewable.
The tier mix
Most of the graded sample rides reduced-payout ("goblin") lines, which are easier to hit by construction. A single pooled hit rate over that mix would look better than it is — which is why every rate on this page is segmented by tier and labeled, and why no pooled number appears anywhere.
How the windows work
Every table on this page is a rolling window measured through the most recent graded slate — nothing is a frozen, cherry-picked span. Any cell still short of 100 graded picks says "collecting data" instead of quoting a rate that small samples would make noisy.