RRosternomics

Model Versions — what changed, and when

A running changelog for the trade-grading model. We'd rather show our work than silently move the numbers.

v1.2 — Convexity-aware, dual-source prospect pricing (July 2026)

Two changes to how undebuted prospects are priced, both aimed at the same problem: a single point-estimate expected WAR was quietly underpricing exactly the players it matters most to get right.

Convexity-aware pricing. The $/WAR tier table is a convex curve — a star's production is priced meaningfully higher per win than a replacement player's. Running one shrunk point estimate through that curve once prices the average outcome's tier, but a real prospect isn't one outcome — he's a distribution, most of it below that average, a real minority well above it. Pricing off the point estimate misses the upside entirely. Fixed by pricing every historically realized outcome for a prospect's pedigree tier through the same aging-curve/tier/salary math and averaging the dollars, not the WAR — the mathematically correct way to price a convex payoff. The effect is larger for the highest-pedigree prospects specifically, where the outcome spread is widest.

Combined BA + MLB Pipeline rankings. Previously, when a prospect was ranked by both Baseball America and MLB Pipeline, only BA's rank counted — Pipeline's was silently dropped, even when the two disagreed. We tested whether one source is more predictive of what a prospect actually becomes and found no reliable difference between them — so when both rank a player, we now price off the average of what each ranking implies, and the site shows both ranks side by side instead of just one.

v1.1 — Role-specific pricing (July 2026)

The tier-adjusted $/WAR curve was calibrated on all roles pooled together — fine for hitters, but it systematically mispriced pitchers by role. A dominant closer's θ (expected WAR/yr) tops out around 0.5-1.5 simply because he throws 60-70 innings a year, not because he's replacement-level — so the pooled curve was pricing elite closers like part-time role players. Added a role-specific correction on top of the existing tier table, calibrated the same way (real FA-signing AAV vs. θ, empirical-Bayes shrunk by sample size):

Full table and methodology: Grading Trades. The correction only applies once a player has a real, games-evidenced role — an unproven pitching prospect isn't defaulted into the starter premium just because he hasn't been used in relief yet.

v1.0 — Tier-adjusted $/WAR (launch)

The original model: WAR delivered by a star prices at a real premium over WAR delivered by a replacement-level player (0.65× to 1.60× the league-average $/WAR, by talent tier), calibrated against FA-signing AAV data. See Grading Trades for the full tier table.

Fit on full team-seasons (≥100 games), 1985–2024/25. All figures are franchise-level outcomes credited to the decision-maker in the relevant year — see the GM profiles for per-executive numbers.