Calibration Log · Three Cohorts · 107 Graded Outcomes

Every Prediction,
Graded.

Every number this model publishes is locked before the outcome is known, graded when its 90-day window closes, and never edited afterward. The misses stay up next to the hits. The 2026 season is complete. All 107 predictions across three cohorts have resolved, 25 reached the majors, and the three checkpoints below report what each cohort actually scored, including the two that lost to a coin flip.

Sub-Batch AResolved June 18
Scored
28
Reached MLB
14
Brier
0.269
Naive
0.250
Verdict
Lost

Scored under v0.4. The bands came out in the right order and all six top-band players debuted, but the probabilities ran too low and the model lost to a constant guess. That result triggered the v0.5 recalibration.

Sub-Batch BResolved September 9
Scored
14
Reached MLB
5
Brier
0.2375
Naive
0.2296
Verdict
Lost

First cohort on the recalibrated v0.5 table, and it lost to the baseline again. Band ordering inverted for the first time. Thomas White at 62 percent, the largest number the model has published, missed after being shut down with a shoulder injury he already had on the day he was scored.

Sub-Batch CResolved October 8
Scored
65
Reached MLB
6
Brier
0.0746
Naive
0.0838
Verdict
Won

The largest cohort and the first checkpoint the model won, with monotonic band ordering restored. It also found that all six call-ups came from Triple-A, that a one-feature model knowing only that scores 0.0420, and that inside Triple-A the model's ranking carries no measurable information.

The first cohort, in full

What follows is the original Sub-Batch A report as published on June 18, 2026, unedited. It is the longest write-up of the three because it was the first.

90-Day Results · Model v0.4 · June 18, 2026
v0.4
Model Version
28
Players Scored
14
Reached MLB
Sub-Batch A
Batch ID
Complete
90-Day Resolution
0.269
Brier Score (raw)
Apr 9 Checkpoint
PPI deadline final accounting. Preserved: Wetherholt, Benge, Basallo, DeLauter, Early, McGonigle (all on MLB rosters). Griffin preserved, extension signed Apr 8, after his Apr 2 debut. Downgraded: Ritchie (ATL), Ford (WSH), Tolle (BOS). Already None: Emerson (extension before debut), Yesavage (IL). McLean (NYM) eligibility pending verification.

How the predictions scored, by tier

We sorted all 28 players into four groups by the call-up odds we gave them in March. Then we checked how many in each group actually reached the majors. A well-built model shows each higher group getting called up more often than the group below it. That is exactly what happened, and the gap between the gray and gold bars at the top is the part we are fixing next.

Long shotsUnder 10% odds · 4 players
Predicted 7%
Actual 0%
Outside chances10 to 19% odds · 8 players
Predicted 14%
Actual 25%
Live candidates20 to 29% odds · 10 players
Predicted 22%
Actual 60%
Best bets30%+ odds · 6 players
Predicted 41%
Actual 100%
What we predicted What actually happened

Every group got called up at a higher rate than the group below it. That is the model doing its core job: putting prospects in the right order. The miss is at the top. The six players we rated as best bets all reached the majors, but the model only gave them around 41% odds on average. It should have been near certain. The next version corrects that.

Every prediction, every outcome

All 28 players, sorted by the call-up odds we published on March 20. The three misses are flagged. Nothing here has been edited since the run date.

PlayerOdds we gaveOutcomeWhat happened
JR Ritchie
ATL · SP
55% Called up Debut Apr 23. Dominated Triple-A with a 0.99 ERA before the call.
JJ Wetherholt
STL · 2B
50% Called up Opening Day starter.
Carson Benge
NYM · OF
38% Called up Made the Opening Day roster. A veteran's opt-out forced the timing.
Coleman Crow
MIL · SP
35% Called up Spot start against the Marlins on Apr 17.
Travis Bazzana
CLE · 2B
35% Called up Debut Apr 28. Hit .287 at Triple-A and forced the issue.
Konnor Griffin
PIT · SS
34% Called up Debut Apr 2. Signed a $140M extension days later.
Colt Emerson
SEA · SS
24% Called up Debut May 17. Youngest Mariner since Felix Hernandez in 2005.
Brandon Sproat
MIL · SP
23% Called up Opening Day roster.
Parker Messick
CLE · SP
23% Called up In the rotation. 9-2 with a 2.39 ERA through May 30.
Connelly Early
BOS · SP
22% Called up Won an Opening Day rotation spot.
Samuel Basallo
BAL · C
22% Called up Opening Day catcher and DH.
Payton Tolle
BOS · SP
22% Called up Debut Apr 23 after two injuries opened a spot. 11 strikeouts against the Yankees.
Kevin McGonigle
DET · SS
13% Called up Miss The longest shot to get called up. Went 4-for-5 on Opening Day.
Cooper Pratt
MIL · SS
14% Called up Miss Signed an extension and debuted Jun 16.
Aidan Miller
PHI · SS
22% Did not Miss A spinal procedure on Jun 5 ended his season before it started.
Charlie Condon
COL · 1B
22% Did not Still at Triple-A Albuquerque despite April buzz.
Jett Williams
MIL · INF
24% Did not Still at Triple-A Nashville.
Harry Ford
WSH · C
20% Did not Still at Triple-A Rochester after a cold start.
Max Clark
DET · OF
15% Did not Still at Triple-A Toledo.
Ryan Sloan
SEA · SP
15% Did not Still at the lower minors.
Kade Anderson
SEA · SP
15% Did not Still at High-A.
Nate George
BAL · OF
14% Did not Still at High-A.
Luis Pena
MIL · INF
14% Did not At Double-A. Returned from a health scare in early June.
Theo Gillen
TBR · OF
13% Did not Still at Double-A.
Arjun Nimmala
TOR · SS
7% Did not Still at High-A.
Josue De Paula
LAD · OF
7% Did not Still at Double-A behind a crowded outfield.
Zyhir Hope
LAD · OF
7% Did not Still at Double-A.
Xavier Isaac
TBR · 1B
6% Did not At High-A, working back from surgery.

The three misses worth keeping

A model that never admits a miss is not worth trusting. Three predictions came out wrong. Each one points to a specific fix.

Called up, we said unlikely · 13% odds
Kevin McGonigle, Detroit
The longest shot in the group to actually get called up. He went 4-for-5 on Opening Day. The model saw a player who had never been above Double-A and was not on the 40-man roster, and it leaned on those barriers. It underweighted how good his spring was. The fix: give a hot spring more credit for hitters with elite bat-to-ball skills.
Did not play, we said likely · 22% odds
Aidan Miller, Philadelphia
Miller had a spinal procedure on June 5 and never played in 2026. At the run date he was listed as recovering from a minor issue. It turned out to be season-ending. The model cannot see the inside of an injury report. The fix: build in extra caution for any player flagged as hurt at the run date.
Called up, we said unlikely · 14% odds
Cooper Pratt, Milwaukee
A minor miss. Pratt signed an eight-year contract and debuted June 16. A long-term deal is a sign the team is committed and may move a player up sooner. The fix: treat a new extension as a small nudge toward a faster call-up.

What changes next

The results point to one big fix and a few small ones. The next version of the model, v0.5, ships before the next group of prospects is scored.

1
Fix the confidence numbers. The rankings were right but the odds printed too low at the top. The best-bet group got called up 100% of the time against a 41% prediction. The new version rebuilds that mapping from these 28 real outcomes, so a top-tier prospect reads closer to 85% instead of 58%.
2
Loosen the service-time penalty. Teams promoted prospects faster in 2026 than the model expected. The built-in delay for service-time games may be too heavy for the current era.
3
Reward a great spring more for hitters with elite contact skills. That is the McGonigle lesson.
4
Add caution for injured players. When a prospect is hurt at the run date, the model should hedge. That is the Miller lesson.
5
Count contract extensions as a small positive signal toward a faster call-up. That is the Pratt lesson.
6
Leave everything else alone. The core engine works. The order was right. You do not rebuild what is working.

These 28 results are now the first real training data for the model. Every prediction, locked on March 20 and graded here, becomes the foundation the next versions learn from. The next group of prospects gets scored later this season. The full rebuilt model is targeted for spring 2027.

The numbers, for the record

For people who want the raw scoring. A Brier score measures forecast accuracy where lower is better and 0 is perfect. There is a catch worth understanding, explained below.

Raw Brier score
0.269
The unadjusted score across all 28 predictions.
Do-nothing baseline
0.250
What a coin-flip 50% guess on everyone scores this year.
Corrected Brier
0.148
Same rankings, confidence numbers fixed. Cuts the error nearly in half.
Why the raw score looks worse than the model performed

This year exactly half the players got called up. When the real rate lands at 50%, a lazy guess of "50% for everyone" happens to score well, even though it tells you nothing about who is actually going up. The MKDC model does the hard part a coin flip cannot: it ranks players in the right order. The raw score hides that. The corrected score, which keeps the exact same rankings and only fixes the too-low confidence numbers, drops to 0.148. That number is computed the careful way: small groups that went perfect are pulled back toward their prediction before refitting, so a 6-for-6 band cannot claim it was a sure thing. That is the real measure of what the model got right, and it is the entire job of the next version. The full fit is documented in the technical report.

What is next

That next version, v0.5, is now live. It rebuilds the CUS-to-CUP mapping from the 28 outcomes above and adds an injury-severity humility band. Two cohorts were scored on it and both have now resolved: Sub-Batch B on September 9, fourteen outcomes, and Sub-Batch C on October 8, sixty-five outcomes. Across those 79 outcomes v0.5 scored a Brier of 0.1034 against a naive 0.1199, and a one-feature level-only baseline scored 0.0687, better than both. The full patch is on the methodology page. The results above are not edited. They remain the honest first record.