This is the complete public documentation of the MKDC call-up model as it runs today. It exists for two reasons. First, a forecasting model you cannot inspect is just a person with opinions and a spreadsheet, and we would rather be checkable. Second, versions need a record: when v1.0 ships next spring, this page is what it will be measured against.
Everything below is reproducible from the public record. The run files, the event ledger, and the calibration log are linked throughout. Where a claim rests on outside work, it is cited at the bottom.
The model answers a single question: will this minor league player make an MLB appearance within 90 days of the run date? Not whether he is good. Not whether he will succeed once he arrives. Just when the door opens. That narrowness is deliberate. Timing is governed by structure, service-time windows, roster math, and organizational habit, and structure is measurable in a way that talent projection is not.
Every output is a probability, locked at run date, and graded when its 90-day window closes. The grade is a Brier score, the standard scoring rule for probability forecasts since Glenn Brier introduced it for weather forecasting in 1950 [1]. A Brier score is the average squared gap between what you predicted and what happened. Zero is perfect. Guessing 50 percent on everything scores 0.25.
Thirteen features, each with a fixed published scoring range, summing to a maximum raw total of 153, normalized to 0-100. The full point tables are on the methodology page. The design principle is that the weights live inside the scoring ranges and never move mid-season. There is no freehand adjustment. If the model is wrong about a player, it stays wrong until the next locked run, and the miss gets recorded.
Two features deserve a note. Level proximity and age-versus-level together carry 36 possible points, which encodes the strongest finding in public prospect research: how close a player is to the majors, and how young he is for where he plays, predict outcomes better than any single performance stat. Our own study of 36 years of Top 100 data covers the evidence in What a Top 100 Ranking Is Actually Worth. The PPI feature prices the 2022 CBA's Prospect Promotion Incentive, the rule that awards teams a draft pick for carrying elite prospects on Opening Day rosters [4]. It has a hard April 9 deadline, after which it zeroes for the rest of the season.
The score so far describes the player. The multipliers describe his situation. Four apply in sequence.
The org coefficient is one behavior prior per franchise, built from documented promotion history: Colorado promotes ready players fastest and anchors the top at 1.02, Tampa Bay slowest at 0.85. The positional rate reflects that relievers get called up constantly and catchers last. The service-time multiplier suppresses first call-ups during the early-season window when teams hold players down for an extra year of control, then releases. The PPI multiplier is the flip side of that suppression, live only until the April deadline.
The adjusted score maps to a probability through a band table. This table is the entire difference between v0.4 and v0.5, and the story of why it changed is the most important part of this document.
On March 20, 2026 we locked 28 predictions and let them resolve. On June 18 the window closed: 14 of 28 reached the majors, and the model had ranked all 28 in the correct order. But the probabilities themselves ran low. The top band averaged a 41 percent prediction and reached the majors 100 percent of the time. Ranking players correctly and printing calibrated probabilities are different skills, and v0.4 had one of them.
So v0.5 rebuilt exactly one thing: the mapping table, refit on the 28 resolved outcomes. The fit works in log-odds space, following the approach Platt introduced for converting raw classifier scores into probabilities [2]. Because 28 outcomes is a small sample, each score band is shrunk toward its own prediction by two pseudo-players before fitting, so a band that happened to go 6-for-6 cannot drag the curve to an overconfident place. Shrinkage toward a prior is the standard defense against small-sample overfitting [3].
The result, scored on the same 28 predictions: Brier fell from 0.269 to 0.148. Two honesty notes ship with that number. The 0.269 stays on the calibration log permanently, because it was the real first result. And 0.148 is a resubstitution score, the remap graded on the same data that built it, so it flatters the model. The clean test is Sub-Batch B, fourteen predictions made on the new table on June 11 and graded September 9. The full derivation is in the June 18 technical report.
CUP says whether. ECD says roughly when: a projected call-up window assigned through one of three pathways. Pathway A is service-time driven, where the calendar itself decides and the window is tight. Pathway B is opportunity driven, an injury or trade opening a door, validated when Konnor Griffin resolved through exactly that route in April. Pathway C is performance driven, the default, where the player forces the issue and the window is wide.
One reconstruction note, on the record. The original pathway dates for Sub-Batch A were per-player roster judgments. For the 79 open predictions in Sub-Batches B and C, windows are derived by a fixed documented rule from the model's own features, 40-man status, level, and CUP, and expressed at month granularity with a confidence tier. The rule and every player's inputs are published in the ECD run record. ECD windows are directional. They are never graded by Brier and never enter the training data.
Locked probabilities cannot react to news, and that is by design: a prediction you can quietly revise is not a prediction. But readers reasonably want to know what today's injury does to a timeline. PIX is the answer: a live promotion-pressure index, one number per prospect on a 3-to-95 scale, in the family of rating systems Arpad Elo built for chess [5].
Its rules are strict. It starts from the locked model baseline and moves only on logged events, each with a fixed value and a source link. An injury to an MLB blocker is worth a fixed number of points; a prospect hitting the injured list costs a fixed number. Event values scale with the player's level, full at Triple-A down to a quarter in complex ball, because an open door matters more to the player standing next to it. Quiet weeks pull the number back toward the baseline at ten percent of the gap per week. Daily and weekly movement caps stop any news cycle from swamping the signal. And the whole event history lives in a hash-chained, append-only ledger, so a rewritten past would be detectable.
Does the live layer add anything over the frozen model? We replayed the Sub-Batch A window to check. Measured on the day before each debut, the live index separated debuts from non-debuts with an AUC of 0.804 against 0.705 for the frozen scores.
The replay also caught a spec error, which is what backtests are for. The original design priced a pre-debut contract extension as a negative signal. The record disagreed: Pratt signed and debuted within days, Griffin extended six days after debut. Teams extend players they are about to promote. The value was flipped, the change logged openly, and the one partial counterexample, Lara staying at Triple-A for several weeks after his June extension before debuting in July, noted alongside it.
PIX is never called a probability, never enters a scored run, and never touches the Brier math. Every published board carries that disclaimer.
A model document that skips this section is marketing. Five known problems, in order of how much they worry us.
The remap is in-sample. 0.148 was scored on the data that built it. Until Sub-Batch B grades on September 9, v0.5's calibration is a well-reasoned claim, not a demonstrated one.
Injury status at run date is a blind spot. Thomas White was scored at 62 percent, the largest number the model has published, while already on the minor league injured list. Kaelen Culpepper's number was days old when he went back on the shelf. If the September checkpoint confirms the pattern, an injury-status feature gets a shadow test. It does not get patched mid-window.
The top of the scale is extrapolation. The observed calibration range ends around a 42 percent pre-remap prediction. Everything above it is an extension of the curve, labeled low confidence and capped at 95.
One season of data. Every number here comes from 2026. Org coefficients built on one front office's year may not survive a regime change.
ECD windows are reconstructed. The B and C windows come from a derived rule, not per-player roster analysis, and say so on the label.
v1.0, targeted for Spring 2027, is a different kind of model: trained on labeled outcomes rather than hand-built from priors. The gate was 50 resolved outcomes. By October 8 there will be 107. The build plan, in the order it matters:
A trained classifier. Logistic regression first, gradient boosting if the data supports it, fit on all 107 outcomes with the 13 features as inputs. The hand-tuned scoring ranges become starting points the data can overrule.
Honest validation, finally. Cross-validation and a held-out test set, so v1.0's headline number is out-of-sample from day one. No more resubstitution asterisks.
An injury-status feature. The White and Culpepper cases make it the leading candidate. It gets tested against the resolved record before it touches a live run.
A PIX observed-frequency layer. Daily board snapshots have been archived since July. With a season of them plus resolved outcomes, we can publish what a PIX of 50 has historically meant in call-up frequency, with shrinkage, as observed history rather than model output.
Event value re-estimation. The extension flip was found by replay with eleven events. A full season's ledger lets every event value be re-fit from evidence, on a dated spec change, including the open question of whether the extension signal deserves more weight.
Uncertainty on the number. A 33 percent built on strong data and a 33 percent built on proxies should not read identically. v1.0 outputs get an interval or a confidence grade derived from input quality.
The through-line: v0.4 proved the ordering. v0.5 fixed the mapping. v1.0 replaces belief with training data, and this page is the baseline it has to beat.
References: [1] Brier, G.W., "Verification of Forecasts Expressed in Terms of Probability," Monthly Weather Review 78:1-3, 1950. [2] Platt, J., "Probabilistic Outputs for Support Vector Machines and Comparisons to Regularized Likelihood Methods," in Advances in Large Margin Classifiers, MIT Press, 1999. [3] Efron, B. and Morris, C., "Stein's Paradox in Statistics," Scientific American 236(5):119-127, 1977. [4] MLB glossary, "Prospect Promotion Incentive," 2022 Collective Bargaining Agreement. [5] Elo, A., The Rating of Chess Players, Past and Present, Arco, 1978. Project records: June 18 technical report, Sub-Batch C run record, ECD run record, and the public event ledger on the PIX board.