Love ’em or hate ’em, the class of “expected” stats has utility when we’re talking about predicting the future. The data certainly have mixed feelings among fans, but they perform an important task of linking the things that Statcast and similar non-traditional metrics say to performance on the field. A hard-hit rate of X% or a launch angle of Y degrees doesn’t really mean anything by itself, without the context of what’s happens in baseball games.
I’ve been doing projections now for nearly half (!) my life, so outside of my normal curiosity, I have a vested interest in using this kind of information productively in projections. Like the Statcast estimates (preceded with an x, as in xBA, xSLG, etc.), ZiPS has its own version, very creatively using a z instead.
It’s important to remember these aren’t predictions in themselves. ZiPS certainly doesn’t just look at a pitcher’s zSO from the last year and say, “Cool, brah, we’ll just go with that.” But the data contextualize how events come to pass, and are more stable than the actual stats are for individual players. That allows the model to shade the projections in one direction or the other. Sometimes that’s extremely important, such as in the case of homers allowed for pitchers. Of the fielding-neutral stats, homers are easily the most volatile, and home run estimators for pitchers are much more predictive of future homers than are actual homers allowed. Also, the longer a hitter “underachieves” or “overachieves” in a specific stat, the more ZiPS believes the actual performance rather than the expected one. More information on accuracy and construction can be found here.
Looking at zOPS from last year’s midseason update in June, 14 of the 20 OPS overachievers made 200 plate appearances over the remainder of the season; 12 of those 14 players had a worse OPS after the update, collectively declining by 110 points of OPS.
2024 OPS Overachievers (6/12)
Among last year’s 20 underachievers, 16 recorded at least 200 plate appearances from June 13 onward, and 15 of those 16 improved their OPS the rest of the way.
2024 OPS Underachievers (6/12)
But we’re here for 2025, so let’s get to it! For rate measurements, I’m using a minimum of 200 plate appearances.
OPS Overachievers (6/29/2025)
OPS Underachievers (6/29/2025)
Naturally, at least some regression toward the mean is expected for Aaron Judge and Cal Raleigh, who have been hitting at absurd levels this season. “Regression,” however, doesn’t mean “bad,” and even with zOPS taking a chunk out of their actual numbers, Judge still has the best zOPS in baseball by nearly 50 points (Pete Alonso is next at .989), and Raleigh’s still leaves him as the best catcher in baseball in the middle of an historically significant season. It’s really quite impressive that Judge isn’t overachieving by more than 141 points of OPS considering he’s running a .432 BABIP, which looks a bit like “ludicrous speed” from Spaceballs.
ZiPS also still has hopes for Brenton Doyle and Nolan Jones, and if you’re down on Oneil Cruz given his middling numbers in 2025, perhaps you should reconsider. Based on the data here, it’s understandable that the Cubs have not yet hit the panic button on Matt Shaw. Also, ZiPS doesn’t feel the Jays ought to have any buyer’s remorse (yet) on Vladimir Guerrero Jr.
Remarkably, two hitters with at least a .900 OPS are underperforming these numbers: Alonso (.921 OPS vs. .989 zOPS) and Corbin Carroll (.914 OPS vs. .959 zOPS).
zBABIP is also an important part of projections, simply because BABIP for hitters is quite volatile, though obviously a great deal less so with hitters than for pitchers. Actual BABIP over/underperformance is a key factor in determining the direction in which a hitter’s fate falls. zBABIP uses information such as sprint speed and spray data as well.
BABIP Overachievers (6/29/2025)
BABIP Underachievers (6/29/2025)
As noted above, it’s mighty impressive that so much of Judge’s BABIP appears to be real. His .373 zBABIP is the best in baseball, just slightly ahead of Brice Turang’s mark, also at .373. Only two other players, Cam Smith and Kyle Stowers, have zBABIP numbers of at least .350. Some of you may have noticed there are a few Red Sox here; these data do factor in park effects for Fenway Park and the BABIP-generation machine that is the Green Monster.
For hitters, there’s realistically a floor that any competent major league hitter will struggle to stay below. Filtering out bunt attempts, pitchers when batting have a collective BABIP of .232 since 2008, and few big league batters (or Triple-A or Double-A hitters), are going to put balls into play less effectively than your typical pitcher. Even an indifferent-at-best hitter like Randy Johnson managed a .234 BABIP over his career!
HR Overachievers (6/29/2025)
Name | HR | zHR | zHR Diff |
---|---|---|---|
Eugenio Suárez | 25 | 15.0 | 10.0 |
Christian Yelich | 16 | 6.4 | 9.6 |
Junior Caminero | 20 | 12.6 | 7.4 |
Cal Raleigh | 32 | 24.9 | 7.1 |
Byron Buxton | 19 | 12.5 | 6.5 |
Isaac Paredes | 17 | 10.9 | 6.1 |
Andy Pages | 16 | 9.9 | 6.1 |
Wilmer Flores | 11 | 5.0 | 6.0 |
Jacob Wilson | 9 | 3.0 | 6.0 |
Kyle Schwarber | 25 | 19.5 | 5.5 |
Jo Adell | 18 | 12.5 | 5.5 |
Logan O’Hoppe | 17 | 11.5 | 5.5 |
Trevor Larnach | 12 | 6.9 | 5.1 |
Taylor Ward | 20 | 15.0 | 5.0 |
Brandon Nimmo | 15 | 10.4 | 4.6 |
Pete Crow-Armstrong | 21 | 16.5 | 4.5 |
Nick Kurtz | 12 | 7.5 | 4.5 |
Tommy Edman | 10 | 5.6 | 4.4 |
Nathaniel Lowe | 13 | 8.9 | 4.1 |
Teoscar Hernández | 14 | 10.2 | 3.8 |
HR Underachievers (6/29/2025)
Suffice it to say, zHR is not convinced Eugenio Suárez ought to be headed toward a 50-homer season. While his hitting metrics are at or near career highs, they’re not dramatically different than they were in his other good seasons, in which he was more of a 30-homer hitter (except for 2019, when he ripped 49 round-trippers). zHR “merely” sees this edition of Raleigh as a 50-homer guy, and it isn’t on board with the comeback in Christian Yelich’s power. It should be emphasized that home runs are a far more predictive stat for batters than BABIP, so unlike zBABIP, we can’t just look at zHR as a pseudo-projection for what a player’s true performance will be moving forward. zBABIP over a half season is usually better to use than actual BABIP when projecting a player’s rest-of-season BABIP, whereas zHR and HR are about equal in their predictive quality. In that sense, the difference between a player’s zHR and HR is more important than their zHR total, with a larger difference suggesting a sharper regression.
There are a lot of Royals on this list, and I’m not quite sure what that means. At the very least, it suggests the team’s being so patient with Salvador Perez and Jonathan India is more than simply name value. I’m impressed how well Stowers fares again on a fundamental level, and the full ZiPS estimate likes him even better than the 112 wRC+ of the simple in-season model.
BB Overachievers (6/29/25)
BB Underachievers (6/29/25)
SO Overachievers (6/29/25)
Name | SO | zSO | zSO Diff |
---|---|---|---|
Mookie Betts | 35 | 58.2 | -23.2 |
Jeremy Peña | 55 | 75.4 | -20.4 |
Bryce Harper | 47 | 67.1 | -20.1 |
Vladimir Guerrero Jr. | 49 | 66.7 | -17.7 |
Alejandro Kirk | 27 | 44.6 | -17.6 |
Jorge Polanco | 33 | 50.2 | -17.2 |
Teoscar Hernández | 67 | 84.2 | -17.2 |
Aaron Judge | 95 | 111.6 | -16.6 |
Nolan Arenado | 34 | 50.5 | -16.5 |
Manny Machado | 57 | 72.2 | -15.2 |
Evan Carter | 18 | 31.8 | -13.8 |
Otto Lopez | 38 | 51.4 | -13.4 |
Andrew McCutchen | 62 | 75.0 | -13.0 |
George Springer | 62 | 74.8 | -12.8 |
Kyle Schwarber | 95 | 106.9 | -11.9 |
Trevor Larnach | 70 | 81.7 | -11.7 |
Jonathan India | 48 | 59.4 | -11.4 |
Elias Díaz | 48 | 59.2 | -11.2 |
Trea Turner | 61 | 71.9 | -10.9 |
Josh Naylor | 42 | 52.5 | -10.5 |
SO Underachievers (6/29/25)
These stats aren’t as important as their counterparts for pitchers, but they do provide additional value in predicting the future over the actual strikeout and walk totals. Strikeouts and walks stabilize very quickly for hitters, but components of zSO and zBB stabilize even more quickly. It’s interesting that for both stats there’s a lot of non-overlapping explanatory variables. Contact information is really important for strikeout rate, whereas swing-decision information and called-strike percentage are not. But swing-decision data are far more important than contact information for modeling walk rate. The r^2 for zBB% vs. BB% is just under 0.7, and for zSO% vs. SO%, a hair under 0.9. (I’m most interested to see how bat speed data will interact with these numbers, but alas, that may be an article for future Dan to write, not the current one.) Don’t worry, though: zBB and zSO will get their time to shine with pitchers. You’ll just have to wait until tomorrow for that one!
Content Source: blogs.fangraphs.com