> > >
90-Day Results · Model v0.4 · June 18, 2026

The First Cohort
Has Resolved.

On March 20 we published call-up odds for 28 prospects and locked them in public. Ninety days later, the results are in. Fourteen reached the majors. Fourteen did not. And the model ranked all 28 correctly, from most likely to least likely to get called up. Here is everything, every hit and every miss.

Called Correctly
14 of 14
Every prospect we flagged as a call-up reached the majors
Ranking Accuracy
100%
Higher odds meant higher call-up rate at every tier
Where It Fell Short
Low
The odds were ranked right but printed too low at the top
Players Tracked
28
Every one logged publicly on March 20, none edited since
What this means in plain terms

Think of the model like a weather forecaster for call-ups. The job is not to be certain. The job is to say which prospects are more likely to get the call than others, and to be right about the order. On that test the model went a perfect 14 for 14 on who got called up, and it sorted all 28 players into the right order from most to least likely.

The one thing it got wrong: it was too cautious with the numbers at the top. Players it pegged around a 1-in-3 chance actually got called up far more often than that. The ranking was right. The confidence was low. That is a fixable problem, and fixing it is the entire focus of the next version.

Model Integrity Statement
All outputs on this page were generated on March 20, 2026 using model v0.4. They are immutable, no prediction is ever edited retroactively. This page exists because calibration transparency is the only honest way to build trust in a probabilistic model. If the model is wrong, it will say so here.
Mar 20, 2026
Run Date
v0.4
Model Version
28
Players Scored
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 in public 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.142
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.142. That is the real measure of what the model got right, and it is the entire job of the next version.

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. The first cohort scored on it is Sub-Batch B, fourteen players that resolve September 9. The full patch is on the methodology page. The results above are not edited. They remain the honest first record.