TJ Rumfield struck out in 13.6% of his plate appearances, walked in 11.4%, and hit .300/.390/.453 as a rookie. He also hit the ball more softly than 97% of the 267 hitters with 300 or more plate appearances. His average exit velocity was 84.3 mph, and Statcast’s expected wOBA on his batted balls was .333, 40 points under the .373 he put up. Colorado has to decide how much of that .373 to count on.
A quick note on the stats: wOBA is a rate stat that credits every outcome for what it’s worth in runs, and a league-average hitter was at .316 in 2026. wRC+ puts the same idea on a scale where 100 is league average after adjusting for park. xwOBA is what Statcast says a hitter’s batted balls should have produced, based on exit velocity and launch angle.
To work out how much of the .373 should carry over, I built a forecasting model. It projects the pieces of a plate appearance (strikeouts, walks, singles, home runs and so on) separately, adjusts for the park, and learns from every MLB hitter season since 2015. Then I went through Rumfield’s 2,396 pitches and 460 tracked batted balls to separate what looks like skill from what looks like luck or Coors Field.
What I found
- He looks like a good hitter, not a 126 wRC+ hitter. At Coors, the median 2027 forecast is a .340 wOBA (80% range .303–.377), a 104 wRC+ (79–129) and a .271/.360/.404 line with 11 home runs in 550 plate appearances. That’s about what the average first baseman did in 2026. I put the chance he beats a 100 wRC+ at 58% and the chance he repeats his 2026 wOBA at 13%.
- The contact skills are real. Strikeout and walk rates carry over from season to season (year-to-year correlations of 0.83 and 0.71). The model has him at 14.0% strikeouts and 10.7% walks, and even a 10th-percentile season has a .322 OBP. That protects his on-base percentage more than his slugging.
- About a third of the 40-point gap is Coors. Across MLB, batted balls at Coors beat their expected wOBA by 38 points more than batted balls elsewhere. Most of what’s left is Rumfield’s own, and historically only about 27% of that kind of surplus repeats the next year.
- The model beats the standard baselines, but not by a lot. On 1,721 player-seasons it hadn’t seen, it cut next-season wOBA error 4% below a Marcel-style projection (a simple, widely used baseline) in the most recent test years, and its 80% ranges captured 84% of actual results. Picking comparable players by algorithm did worse than every model except simply repeating last year’s numbers.
- I don’t see a platoon case. He hit .347 against lefties and .385 against righties. That +38-point gap is the same as the average left-handed hitter’s, and splits barely repeat from year to year (correlation of 0.00). He should play every day. Whether he’s a good first baseman depends on defense and baserunning, which this bat-only model doesn’t cover.
Short on time? Read the one-page brief (PDF), written like an internal research summary. It is not a Rockies document.
1 What did Rumfield actually do?
He debuted on March 27, came to the plate in 155 games and 631 times in all, after two seasons at the Yankees’ Triple-A affiliate in Scranton/Wilkes-Barre. The line was .300/.390/.453 with 16 home runs and a .373 wOBA. By my calculation that’s about a 126 wRC+. (It’s my own calculation, so it may differ slightly from FanGraphs’ published number; the details are in the methodology.) Strip out Coors Field’s boost and his wOBA in a neutral park would be .352, still +36 points above a league that hit .316.
Two things about his background matter here. First, 631 plate appearances is a small sample for everything except strikeouts. Second, his Triple-A strikeout rates were 16.5% in 2024 and 18.4% in 2025 (.292/.365/.461 and .285/.378/.447), so 13.6% in the majors is better than anything he did in the minors. Adding his Triple-A numbers didn’t improve my forecasts in testing, so I kept them out of the main model and ran them as a check. If I trusted them more, the model would project more strikeouts.
2 The skills that might last
Some of what a hitter produces is his and some isn’t, and stats differ in how much of them carries over. From 2015 to 2025, the correlation between a hitter’s strikeout rate in one season and the next was 0.83 (1.00 would be a perfect repeat). For whiff rate it was 0.87, for in-zone contact rate 0.82, for ISO 0.58, for wOBA 0.46 and for BABIP 0.38. The higher the number, the more of it is skill. Rumfield is at the 90th percentile for avoiding strikeouts, the 94th for contact on pitches in the zone and the 81st for walks. He’s also in the bottom 10% for exit velocity, hard-hit rate and bat speed, and the bottom 3% for sprint speed.
Bars are percentile ranks oriented so that longer is better for a hitter (strikeout, whiff and chase rates are reversed). Year-to-year r is the correlation between a hitter’s value in consecutive seasons, 2015–2025, among hitters with 250+ PA in both: the closer to 1, the more of the number is repeatable skill.
I wanted to know whether the contact skill is spread across the zone or lives in one spot. The explorer below puts every pitch he saw in 2026 on his own strike zone (the ABS zone, scaled to his 6'5" frame). You can switch between whiff, swing and chase maps and filter by pitcher hand, pitch type, count and month. Watch the sample sizes: I leave any area with fewer than eight pitches blank on purpose.
Decision and Result filters apply to the “Every pitch” view only; this map already divides swings by pitches or by swings.
It’s spread out. Against fastballs he whiffed on 12.8% of swings (95% range 10.4%–15.6%), compared with 19.4% for left-handed batters league-wide. On breaking balls it was 28.5% against 31.6%, and on offspeed pitches 22.2% against 30.9%. With two strikes he whiffed on 16.9% of swings (league lefties: 24.2%) and swung at 61% of pitches. In the zone, his contact rate ran from 83% up and away (52 swings) to 99% middle-inside (79 swings). Up and away looks like his soft spot, but on 52 swings I’d call that a lead, not a finding.
He isn’t especially patient. He chased 30.4% of pitches outside the zone, close to the league norm (54th percentile), so the low strikeout rate comes from making contact, not from laying off. Contact plus walks gives him a floor for on-base percentage. It doesn’t give him one for slugging, and that’s where the next question starts.
3 The contact-quality question
The other half of his profile is the soft contact: exit velocity of 84.3 mph (3rd percentile), a hard-hit rate of 27.9% (6th), bat speed of 68.4 mph (8th) and a barrel rate of 5.0% (23rd). Statcast’s expected stats grade every batted ball on exit speed and launch angle. By that grade, his wOBA on contact was .384 and his expected wOBA on contact was .329. Strikeouts, walks and hit-by-pitches count the same in both measures, so all 40 points of the gap come from 463 batted balls. 29 of his hits came on balls with an expected wOBA under .300, and 14 of his outs came on balls above .600.
Where does the gap come from? The park is the obvious first suspect. I used every league batted ball in 2026 to measure how much more batted balls at Coors beat their expected wOBA than batted balls anywhere else. For left-handed batters the answer is 38 points per batted ball. Applied to Rumfield’s home batted balls, that explains 15 of his 40-point gap, about 36% of it.
Points of wOBA (.001 = 1 point) per 631 PA. Ranges account for game-to-game luck, and for the park effect, for luck across the league’s games. The split between “park” and “own” is a descriptive decomposition, not a causal one: the league-wide Coors baseline also contains the park’s effects on defence and sequencing.
That leaves 26 points that belong to Rumfield, and they show up on the road (219 batted balls, +18 above the league’s road baseline for lefties) as much as at home. It isn’t just weak contact either. The surplus is concentrated in balls hit 70 to 95 mph (+11 and +20 points), and it shows up on pulled balls (+21) and opposite-field balls (+20) but not to center (−1).
So what should a forecast do with that? Neither measure is the truth. Expected wOBA ignores the park, spray direction, fielder positioning and, for him, a sprint speed in the 3rd percentile. Actual wOBA includes luck. Historically the gap carries over only partly. Across 2,402 pairs of consecutive seasons, a hitter’s gap in one year carried over to the next at a rate of 0.29 (0.24–0.33), 0.27 away from Coors, and just 0.19 for the third of hitters with the lowest exit velocity, which is where Rumfield sits. If you keep all of the Coors effect and about a quarter of the rest, roughly 21 points of the gap survive into 2027. I wouldn’t subtract the full 40 and I wouldn’t leave them all in. The model sets the weights from the data; this arithmetic is just a sanity check on it.
4 The Coors Field problem
A Rockies hitter has to be forecast twice: once as a hitter and once as a Coors hitter. For 2024–26, Coors’ park index (where 100 is a neutral park) is 112 for wOBA and 125 for runs. Singles (115), doubles (123) and triples (215) do most of that. Strikeouts are down at 90 and home runs only reach 108. A hitter who plays half his games there gets half of each effect. That helps a contact hitter more than a slugger, so I forecast Rumfield in a park-neutral world first and then move him to Denver.
Source: Baseball Savant Statcast park factors, 3-year rolling, as of 2026. Singles and doubles carry most of Coors’ run boost; home runs only a little. It helps a contact hitter more than a slugger.
| Coors | Road | Home − road (95% range) | |
|---|---|---|---|
| PA | 325 | 306 | |
| AVG / OBP / SLG | .304 / .385 / .479 | .295 / .395 / .425 | |
| wOBA | .379 | .367 | +12 (−68 to +91) |
| xwOBA | .338 | .328 | +10 (−50 to +68) |
| K% / BB% | 13.2 / 9.8 | 14.1 / 13.1 | |
| HR | 10 | 6 |
A typical hitter’s wOBA is roughly 12% higher at Coors than elsewhere. Rumfield’s splits are close to flat, but a 300-PA split cannot tell a flat bat from a 12% bat: the range on the difference spans −68 to +91 points.
I keep three numbers apart. Park-neutral talent is what he’d do in an average park: a .321 wOBA, about a 103 wRC+. Projected production at Coors is the same talent with the park added back: .340. wRC+ is adjusted for league and park, so it takes the Coors boost back out and lands near the neutral number, 104. The park gets applied once going in and removed once in wRC+. Using the park index for left-handed batters instead of the all-hitter index moves the forecast by a point (.341).
His own splits don’t settle anything. He hit .379 at home and .367 on the road, but with about 300 plate appearances each, the plausible range for the difference runs from −68 to +91 points. That’s wide enough to include a hitter with no park boost and one with the full 12%. The league-wide picture is clearer. Since 2015, Rockies hitters have averaged a 2.1-point surplus of wOBA on contact over expected, against -0.0 for everyone else. Expected stats run low for Colorado hitters because they don’t account for the park.
5 Building the forecast
The model forecasts ten pieces of every plate appearance: strikeouts, walks, intentional walks, hit-by-pitches, singles, doubles, triples, home runs, sacrifice flies and sacrifice bunts. It works in a park-neutral world and builds the stat line from those pieces, so AVG, OBP, SLG and wOBA always agree with each other. It works in two steps. First, each piece starts as a weighted average of the player’s last three seasons, pulled toward the league average by an amount that depends on how quickly that stat settles down, with an adjustment for age. A hitter’s own strikeout rate counts for as much as the league average after about 60 plate appearances; for doubles it takes about 1,700. Second, a correction uses Statcast: exit velocity, hard-hit rate, barrels, sweet spot, launch angle, xwOBA on contact and the gap between actual and expected results.
I tested whether each piece earned its place. For every season from 2019 to 2026, I trained the model only on seasons that had already happened and graded it on how well it predicted the next season’s actual results, ballpark included. That gave 1,210 player-seasons for building the model (2019, 2021–24) and 511 for a final test (2025–26) that I didn’t look at until the design was locked.
- vs the same model without the Statcast step: 29.2 vs 29.8 points of typical miss — no clear difference
- vs a Marcel-style projection: 29.2 vs 30.4 points of typical miss — selected model clearly better
- vs a league-average forecast: 29.2 vs 34.8 points of typical miss — selected model clearly better
- vs a more complex model fed every signal: 29.2 vs 29.2 points of typical miss — no clear difference
- vs similar-player comparables: 29.2 vs 34.6 points of typical miss — selected model clearly better
All error measures for this set (typical miss in points; HR rate ×10,000)
| Model | n | wOBA | AVG | OBP | SLG | K% | BB% | HR rate |
|---|---|---|---|---|---|---|---|---|
| League average | 511 | 34.8 | 28.3 | 33.9 | 64.3 | 60.0 | 30.1 | 145 |
| Last season’s numbers | 511 | 36.9 | 31.9 | 34.3 | 67.9 | 36.9 | 24.0 | 134 |
| Marcel-style projection | 511 | 30.4 | 25.8 | 28.0 | 56.9 | 34.3 | 20.8 | 112 |
| Same model without the Statcast step | 511 | 29.8 | 25.1 | 27.7 | 55.4 | 33.5 | 20.8 | 111 |
| Same model plus Triple-A stats | 511 | 29.6 | 25.0 | 27.5 | 55.1 | 33.5 | 20.8 | 110 |
| Selected model (with Statcast step) | 511 | 29.2 | 24.4 | 27.2 | 54.5 | 33.5 | 20.5 | 110 |
| Selected model plus Triple-A stats | 511 | 29.1 | 24.3 | 27.1 | 54.2 | 33.5 | 20.5 | 109 |
| Model using every Statcast signal | 511 | 28.9 | 24.0 | 26.8 | 54.3 | 33.4 | 20.5 | 109 |
| More complex model, all signals | 511 | 29.2 | 24.2 | 27.0 | 54.7 | 33.7 | 20.4 | 111 |
| Similar-player comparables | 511 | 34.6 | 29.0 | 32.8 | 61.7 | 40.7 | 23.2 | 121 |
Each forecast uses only seasons that had already been played and is graded on the next season’s actual results, ballpark included. Hitters counted: 150+ PA in the starting season and 250+ PA in the target season. “Clearly better” means the improvement holds up when I resample players 1,000 times.
In both periods, the model’s next-season wOBA forecasts were closer than a Marcel-style projection (a simple, widely used baseline): 31.7 points of average error against 32.9 in the building years, and 29.2 against 30.4 in the final test. Both gaps are large enough that they are unlikely to be chance. It also beat a league-average forecast comfortably (38.2 and 34.8). For hitters with 1,000 or fewer career plate appearances, like Rumfield, the improvement over the same model without the Statcast step was bigger (31.2 against 32.4). Across all hitters, that Statcast step helped clearly in the building years and by about the same amount in the final test, though the final test is small enough that I can’t rule out chance. I didn’t compare against Steamer or ZiPS because I couldn’t get their forecasts as they stood at each past date, so I’m not claiming anything about them.
Some things didn’t work. Picking comparable players by algorithm (34.6 points of error) did worse than every model except repeating last season’s numbers. A more complex model fed all the signals didn’t beat the simpler one. Contact quality by itself made the final-test forecasts worse; the gap between actual and expected results is what makes the Statcast step useful. Two groups of signals I expected to help, swing decisions and batted-ball profile, didn’t earn a place. When the complicated version doesn’t beat the simple one, I use the simple one.
Comparable players are how scouts think about this, so I tested that too, with the players picked by an algorithm instead of by me. I took 416 hitters near Rumfield’s career stage (ages 23–29, 300+ PA, 1,500 or fewer career PA, one season per player) and picked the 15 closest on nine features measured at the end of the season. Their next seasons ranged from poor to excellent, and on average they dropped 19 points relative to the league. Applied to Rumfield, that puts his park-neutral level at +17 relative to the league. The model says +4. The comparables tell us what happened to similar players, not what will happen to him.
−19 points on average from the comparable season to the next (spread of 40 points across 14 comparables with 100+ PA the next year). Applied naively to Rumfield’s park-neutral 2026, that implies +17 relative to league, against +4 from the forecasting model.
With 8, 15 or 30 neighbours the average change is −27, −19 and −25. These outcomes describe what happened to similar players; they do not cause or guarantee anything for Rumfield.
Bars show the standardised gap to Rumfield (centre = identical, each grid step = 1 standard deviation of the candidate pool). Position (C) adds a penalty versus a 1B/DH. Next season: +25 vs league in 482 PA; the model had projected wOBA .322 and he hit .345.
Here’s how the model gets from his .373 to .340. Most of the work is removing what probably won’t repeat: Coors Field’s boost to his 2026 numbers, the share of his strikeout, walk and home-run rates that should drift back toward the league average, and the part of his gap between actual and expected results that history says fades. Then Coors goes back in.
The thin vertical line is the 2026 league wOBA (.316). Stages after the first two are the model’s own adjustments, evaluated in order on the same hitter; the contact-quality and gap terms are linear, so their contributions add up exactly (checked to under half a point). The order of the stages affects only how the total is divided between them.
The forecast is a range of outcomes, not a single number. It combines two kinds of uncertainty: how well we know Rumfield’s true level (which shrinks as he adds seasons) and the luck of a single year of plate appearances. I simulated both, letting things that tend to move together, such as power and walks, move together. I set how wide the ranges should be using the building years only, then checked them on the final test: the 50%, 80% and 95% ranges for wOBA contained 53%, 84% and 96% of actual results. Strikeout and home-run ranges landed close to their targets, and walk-rate ranges ran a little narrow (76% for an 80% range).
6 The 2027 projection
At 550 plate appearances the median forecast is .271/.360/.404, a .340 wOBA and 11 home runs. The 50% range for wOBA is .321–.359, the 80% range .303–.377 and the 95% range .285–.398. Strikeouts stay low (14.0%, 80% range 10.7%–17.5%). Home runs vary the most (5–17). I put the chance of a 100 wRC+ or better at 58%, of 120 or better at 21%, and of dropping under 85 at 17%.
Pick a statistic, a playing-time scenario and a view below. “Underlying talent” takes out single-season luck and shows only how much we don’t know about him. “2027 results” puts the luck back in.
The playing-time scenarios are just scenarios. 450, 550 and 650 plate appearances use the same underlying skills, and only the number of events and the luck change. Real seasons don’t work that way, because playing time follows performance. In testing, hitters who finished with 650 or more plate appearances beat their forecast by +14 points of wOBA on average, and those under 350 missed it by +10, since teams keep playing the hitters who are hitting. So a season that ends at 450 plate appearances is more likely to be a bad one than the 450-PA column suggests.
The lab below lets you try some what-ifs. Each control is tagged by the kind of claim it is: a playing-time scenario, a skill assumption you set, or the model’s own park context. Moving a slider changes the arithmetic. It doesn’t change Rumfield.
scenario a playing-time assumption, not a roster forecast · assumption a change to park-neutral skill that you set, applied with consistent arithmetic (a strikeout avoided becomes a ball in play; extra power replaces batted-ball outs); not a model forecast and not something a slider can do to a real player · context the model’s own park translation.
7 What should Colorado do with this?
For player evaluation, the answer is fairly simple. A first baseman who put up a 126 wRC+ is more likely a 104 going forward, which is about the 2026 average for first basemen (+24 points of wOBA over the league among the 39 first basemen with 200 or more plate appearances; the forecast is +24). That’s a useful player, not a star. Here’s what I’d take from it.
A Plan on a 100–110 wRC+ bat, not a 126
- What I saw
- .373 wOBA against a .333 expectation. About +21 points of his wOBA came from Coors Field’s boost.
- Why I believe it
- The model was tested on 1,721 past player-seasons it hadn’t seen. 80% range 79–129 wRC+. 13% chance he matches .373.
- What could be wrong
- He has one MLB season. The choice of model matters too: the plain version (no Statcast step) says .364 and the version using every signal says .327, against .340 for the one I chose.
B Keep him in the lineup against left-handed pitching
- What I saw
- .347 against lefties in 197 PA, .385 against righties in 434.
- Why I believe it
- His +38-point split has a 95% range of −47 to +123 and matches the +38 average for left-handed batters. Individual splits barely repeat (correlation of 0.00).
- Verdict
- He should play every day. The data can’t rule out a real weakness against lefties, so I’d keep watching the pitch types, but it gives no reason to platoon him.
wOBA from pitch-level plate appearances with 2026 official weights; ranges are ±1.96 standard errors of the per-PA wOBA. Eligible for the stability sample: left-handed batters with 80+ PA against lefties and 150+ against righties in both seasons.
C The thing to work on is damage, not contact
- What I saw
- Bat speed 68.4 mph (8th percentile), exit velocity 3rd, barrels 23rd.
- Why I believe it
- In the lab, 20% more extra-base power adds about 15 points to his median wRC+ (to 118). Cutting his strikeout rate by two points adds about 5, and adding 1.5 points of walk rate about 4. Those come from assumptions I set, not from anything the model says coaching can do.
- How to test it
- I’d track swing speed, attack angle and barrel rate through spring training and the first two months, and compare them with his own 2026 numbers before reading anything into batting average.
D What this does not say
- Scope
- This is an offensive forecast. It says nothing about defense, baserunning (he’s in the 3rd percentile for sprint speed) or positional value, so I won’t put a WAR number on it, and it doesn’t value a contract.
- Follow-up
- Does the gap between actual and expected results last longer for slow-bat, high-contact hitters than the typical carryover of 0.29 suggests? Bat-tracking data from 2023–26 could answer that.
Methodology
This section is for anyone who wants to check my work. Everything above comes from public MLB data.
Data and cutoff. Research cutoff 2026-10-30; sources retrieved 2026-10-30. The data cover player-season lines for every MLB hitter from 2015 to 2026 from the MLB StatsAPI; Statcast contact-quality and plate-discipline numbers from Baseball Savant’s custom leaderboard; park indices from Savant’s Statcast park factors (3-year rolling, as published each season); Rumfield’s 2,396 pitches from Statcast search; and Triple-A and Double-A lines from the StatsAPI. Definitions follow the Savant CSV documentation, the MLB glossary and FanGraphs’ wRC+ definition. FanGraphs’ data pages block automated access, so I didn’t use them. The panel has 7,675 non-pitcher hitter-seasons from 1,846 players; 4,408 pitcher batting lines (their 36,414 PA) are excluded, and 708 multi-team seasons get no park adjustment.
Checking my numbers against Savant’s. A season’s wOBA recomputed from raw counts, with weights fitted to each season, reproduces Savant’s published wOBA to a root-mean-square error of 0.0003 (the fitted 2023 weights are .696, .883, 1.242, 1.565 and 2.004 for walk, single, double, triple and home run; I could not check them against FanGraphs’ published constants). Rumfield’s pitch file has 633 plate-appearance rows less two truncated PAs, 631 in all. My swing rate (48.3%), whiff rate (18.8%), zone swing rate (70.6%), chase rate (30.4%) and zone contact rate (91.7%) match Savant’s to within 0.05 points. My reconstructed wOBA is 0.3730 and xwOBA 0.3328, against .373 and .333 (reaching on error counts as an out, as Savant does). Savant’s pitch-level wOBA value uses rounded weights and treats errors as singles, so I didn’t use it.
Pitch locations. 2026 Statcast pitch locations are measured at the middle of the plate (I verified this in my ABS research to about a millionth of a foot). Savant’s strike-zone top and bottom for Rumfield (77 inches) equal the ABS zone, 27% and 53.5% of height, and called strikes were 97% of pitches inside that box and 9% outside it. Heat maps group pitches into 6-inch by quarter-zone cells and hide any cell with fewer than eight pitches. In-zone and chase rates use Savant’s own zone field so they match its numbers.
wRC+ and the wOBA scale. wRC+ = 100 × [(wOBA − league wOBA) / (wOBA scale × league runs per PA) + 1 + (1 − park factor)]. I used the 2026 league wOBA (.316) and runs per plate appearance (0.1205), the effective Coors runs park factor (1.125) and a wOBA scale of 1.194 (95% range 1.190–1.198), which comes from regressing the run value of every 2026 plate appearance (Savant’s change in run expectancy) on its wOBA value. A team-level version gave 1.40, which I rejected as biased low. It is my own calculation and will not match FanGraphs’ published wRC+ exactly. The 2027 forecast assumes the 2026 run environment and the 2024–26 Coors index.
Park adjustment. Each component rate (strikeouts, walks, singles, doubles, triples, home runs) is divided by 1 + h × (index − 1), where h is the share of the player’s plate appearances at home. Each season uses the index published through that season, so no future park information leaks in. Forecast rates are multiplied back by the target team’s park index, with h = 0.5.
The model. Step one, for each component: a weighted average of the last three seasons of park-neutral rates (measured against each season’s league rate), pulled toward the league average in proportion to how reliable that component is, plus an age adjustment. The weights, reliability constants and age curve were fitted by plate-appearance-weighted least squares. The final settings (the number of plate appearances at which a hitter’s own rate counts for as much as the league average) are 60 for strikeouts, 190 for walks, 290 for singles, 260 for home runs and 1,700 for doubles. Step two adds, for seven components, a ridge regression on composites of contact-quality signals and the actual-minus-expected gap, weighted by plate-appearance reliability, with the penalty chosen by leaving out one target year at a time. Everything is expressed relative to the previous season’s league mean, so league-wide drift shows up as forecast error instead of something the model gets to see.
Validation. For each target season, the model is trained on every pair of seasons that ended before it. Scoring uses hitters with at least 150 PA in the starting season and 250 in the target season, judged on raw outcomes. The building years are 2019 and 2021–24; the final test is 2025–26; 2020 is never a target. Model choice followed a rule I fixed in advance: add one group of signals at a time on the building years, and keep it only if the 95% range on the improvement (from a bootstrap that resamples whole players) excludes zero. Savant revises its expected-stat models after the fact, a limitation I couldn’t remove. Scoring only covers hitters who reached 250 PA in the target season, so players who lose their jobs are left out.
Uncertainty. Each simulated season starts by drawing a true talent level for each component: the model’s estimate plus noise scaled to how reliable that component is, with the noise correlated across seven core components using the correlations of out-of-sample forecast errors. The season’s plate appearances are then simulated from those rates. The spread factor for each component (between 0.8 and 4.8) comes from out-of-sample squared errors beyond what chance alone would produce. A width multiplier for strikeouts, walks, home runs and everything else was set on the building years so that 80% ranges cover 80% of results, then tested on the final test (Figure 6). Final settings were re-estimated on all 1,721 out-of-sample rows. The comparable players use nine features standardized against the candidate pool, distance penalties for batting side and position, and the 15 nearest, one season per player.
Limitations
- I have one MLB season on him. The model’s starting point for a first-year hitter is the league, and the Triple-A lines I have didn’t help in testing.
- Statcast’s expected statistics, bat tracking (available since 2023) and park indices get revised after the fact, and none of them were time-stamped, so I couldn’t rebuild exactly what a forecaster would have seen at each date.
- Savant’s park index is itself a model, and its Coors numbers aren’t the same as FanGraphs’ park factors. A different factor would move the 2027 forecast; the left-handed-batter version moved it a point.
- The playing-time scenarios hold skill fixed, while real playing time depends on performance and injuries. wRC+ is my own calculation.
- Rumfield’s profile is unusual. In the 78 out-of-sample cases with exit velocity 3 or more mph below the league, the model’s bias was −3 ± +3 points of wOBA, which is within sampling error. For hitters whose gap on contact was +4 points or more, like him, it still over-forecast by +8 ± +3 (n = 94). That suggests .340 may be a little generous. Unusual profiles carry more model risk than the ranges show.
- This is offense only. It doesn’t price defense, baserunning, aging beyond the fitted curve, injuries or a contract.
Sources, attribution and independence
Every number on this page can be rebuilt from public data; the analysis code, tests and notes are kept with this site’s source, and the page’s figures come from stored model outputs. Baseball data © MLB Advanced Media, L.P., used for independent, non-commercial analysis; league pitch-level files are not republished. This work is not affiliated with, endorsed by, or reviewed by Major League Baseball or the Colorado Rockies. Names and statistics are used only to report on public play.