Checking in on ZiPS zStats for Hitters at the Halfway Mark

Joe Nicholson-Imagn Images

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)
Name OPS zOPS DIFF RoS
Isaac Paredes .843 .628 .215 .657
Connor Wong .839 .646 .193 .706
Ezequiel Tovar .814 .635 .179 .725
Marcell Ozuna .994 .815 .179 .879
Steven Kwan .984 .808 .177 .698
David Fry 1.024 .859 .165 .658
Daulton Varsho .757 .592 .165 .657
Jurickson Profar .924 .792 .132 .777
Adley Rutschman .822 .695 .127 .620
Jose Miranda .754 .640 .114 .760
Teoscar Hernández .861 .752 .109 .834
Kyle Schwarber .777 .670 .106 .904
Mookie Betts .917 .815 .102 .789
José Ramírez .878 .777 .102 .868

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)
Name OPS zOPS DIFF RoS
MJ Melendez .554 .763 -.209 .774
Brandon Nimmo .715 .902 -.187 .734
Vinnie Pasquantino .742 .904 -.162 .777
Corbin Carroll .610 .763 -.154 .855
Austin Riley .635 .783 -.148 .922
Francisco Lindor .699 .845 -.146 .942
Jackson Merrill .671 .815 -.144 .913
Jesús Sánchez .633 .771 -.138 .792
Ian Happ .693 .825 -.132 .846
Brendan Donovan .680 .811 -.131 .807
Yandy Díaz .685 .816 -.131 .822
Colt Keith .545 .670 -.125 .774
Jo Adell .686 .809 -.124 .667
Matt Chapman .713 .835 -.122 .851
Andrew Benintendi .514 .633 -.119 .799
Matt Olson .752 .871 -.119 .800

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)
Name zOPS OPS DIFF
Byron Buxton .751 .914 -.163
Will Smith .788 .945 -.157
Alex Bregman .786 .938 -.152
Wilmer Flores .561 .708 -.147
Jacob Wilson .705 .851 -.146
Cal Raleigh .887 1.031 -.144
Aaron Judge 1.038 1.180 -.141
Wilyer Abreu .659 .795 -.136
Josh Naylor .699 .834 -.134
Christian Yelich .663 .794 -.131
Jeremy Peña .746 .867 -.121
Ketel Marte .884 1.005 -.121
Javier Báez .667 .783 -.117
Jazz Chisholm Jr. .720 .831 -.111
Brooks Lee .613 .725 -.111
Eugenio Suárez .785 .889 -.105
Steven Kwan .676 .777 -.101
Maikel Garcia .766 .856 -.090
TJ Friedl .705 .791 -.086
Andy Pages .662 .746 -.084

OPS Underachievers (6/29/2025)
Name zOPS OPS DIFF
Brenton Doyle .746 .560 .186
Nolan Jones .806 .631 .175
LaMonte Wade Jr. .682 .522 .160
Michael Conforto .751 .602 .149
Oneil Cruz .870 .740 .130
Andrés Giménez .700 .579 .120
Ryan Mountcastle .746 .628 .118
Ty France .812 .699 .113
Ke’Bryan Hayes .716 .603 .113
Alek Thomas .747 .638 .109
Jarren Duran .819 .711 .108
Matt Shaw .723 .617 .106
Vladimir Guerrero Jr. .941 .835 .106
Tyrone Taylor .708 .606 .102
Salvador Perez .765 .664 .101
Joey Bart .743 .649 .095
Willson Contreras .856 .762 .094
Christian Walker .729 .635 .094
Brett Baty .781 .688 .093
Bryan Reynolds .795 .705 .090

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)
Name BABIP zBABIP zBABIP Diff
Jonathan Aranda .410 .337 .073
Will Smith .361 .292 .069
Alex Bregman .331 .268 .063
Aaron Judge .432 .373 .060
Riley Greene .382 .328 .054
Brooks Lee .316 .264 .052
TJ Friedl .325 .274 .051
Gavin Lux .356 .305 .051
Carlos Narváez .344 .301 .044
Josh Naylor .324 .281 .043
Kyle Isbel .290 .247 .043
Hunter Goodman .356 .313 .042
Pavin Smith .373 .332 .041
Alec Burleson .312 .272 .040
Ben Williamson .344 .305 .039
Jazz Chisholm Jr. .284 .245 .039
Wilyer Abreu .286 .247 .039
Javier Báez .337 .299 .039
Elly De La Cruz .336 .298 .038
Maikel Garcia .348 .311 .037

BABIP Underachievers (6/29/2025)
Name BABIP zBABIP zBABIP Diff
Andrés Giménez .226 .294 -.068
Tommy Edman .251 .319 -.067
Josh Bell .199 .265 -.066
LaMonte Wade Jr. .215 .279 -.064
Shea Langeliers .248 .310 -.062
Michael Conforto .210 .272 -.062
Matt Shaw .279 .341 -.062
Brett Baty .271 .332 -.061
Mike Trout .268 .324 -.056
Brenton Doyle .240 .292 -.052
Luis Rengifo .264 .315 -.050
Juan Soto .259 .309 -.050
Ian Happ .286 .336 -.050
Joey Ortiz .237 .285 -.049
Mark Vientos .268 .313 -.045
Xander Bogaerts .286 .331 -.045
Wyatt Langford .272 .316 -.045
Bo Naylor .188 .232 -.044
Seiya Suzuki .289 .333 -.043
Ben Rice .250 .293 -.043

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)
Name HR zHR zHR Diff
Salvador Perez 9 15.8 -6.8
Jarren Duran 5 11.1 -6.1
Brenton Doyle 6 11.9 -5.9
Jonathan India 4 9.4 -5.4
Vladimir Guerrero Jr. 12 16.9 -4.9
Oneil Cruz 15 19.5 -4.5
Austin Riley 12 16.4 -4.4
Joey Bart 1 5.1 -4.1
Adolis García 9 13.1 -4.1
Jasson Domínguez 6 10.1 -4.1
Ryan Mountcastle 2 6.0 -4.0
Nolan Jones 3 7.0 -4.0
Kyle Stowers 13 17.0 -4.0
Randy Arozarena 8 11.9 -3.9
Patrick Bailey 1 4.9 -3.9
Willy Adames 9 12.8 -3.8
Hunter Renfroe 0 3.7 -3.7
Bobby Witt Jr. 11 14.6 -3.6
Luis García Jr. 7 10.5 -3.5
Gabriel Arias 6 9.4 -3.4

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)
Name BB zBB zBB Diff
Cal Raleigh 53 38.5 14.5
William Contreras 52 39.7 12.3
Jeff McNeil 21 10.1 10.9
Rafael Devers 64 53.2 10.8
Anthony Santander 24 15.6 8.4
Josh Naylor 26 17.6 8.4
Carlos Narváez 27 18.7 8.3
Nolan Schanuel 38 29.7 8.3
Marcell Ozuna 58 49.8 8.2
Aaron Judge 56 47.8 8.2
J.P. Crawford 50 42.1 7.9
Bo Naylor 27 19.2 7.8
Matt Thaiss 28 20.3 7.7
Wilyer Abreu 25 17.6 7.4
Bryce Harper 35 27.6 7.4
Geraldo Perdomo 47 39.9 7.1
Max Muncy 50 43.2 6.8
Ian Happ 42 35.5 6.5
Jasson Domínguez 30 23.5 6.5
Josh Smith 26 19.7 6.3

BB Underachievers (6/29/25)
Name BB zBB zBB Diff
Ty France 14 26.2 -12.2
Kerry Carpenter 7 19.0 -12.0
Seiya Suzuki 28 38.8 -10.8
Taylor Ward 31 41.0 -10.0
Zach Neto 11 20.8 -9.8
Lawrence Butler 32 41.2 -9.2
Ke’Bryan Hayes 17 25.6 -8.6
Riley Greene 24 32.5 -8.5
Rowdy Tellez 8 16.4 -8.4
Andrew Vaughn 7 15.1 -8.1
Logan O’Hoppe 10 17.6 -7.6
Dansby Swanson 26 33.2 -7.2
Pete Alonso 37 44.2 -7.2
Caleb Durbin 13 19.9 -6.9
Yainer Diaz 10 16.7 -6.7
Jorge Polanco 16 22.6 -6.6
Bryan Reynolds 29 35.4 -6.4
Austin Riley 24 30.4 -6.4
Eric Wagaman 17 23.2 -6.2
Eugenio Suárez 21 27.1 -6.1

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)
Name SO zSO zSO Diff
Nathaniel Lowe 94 74.8 19.2
Xavier Edwards 46 29.8 16.2
Tyler Stephenson 65 49.0 16.0
Gavin Lux 65 51.1 13.9
Sean Murphy 58 44.7 13.3
Jasson Domínguez 75 61.8 13.2
Heliot Ramos 84 71.5 12.5
Anthony Santander 55 42.5 12.5
Sal Frelick 42 29.6 12.4
Alek Thomas 59 46.7 12.3
Christian Walker 93 80.8 12.2
Trey Sweeney 57 44.9 12.1
Bryan Reynolds 87 75.0 12.0
Alec Bohm 58 46.1 11.9
Tyler Soderstrom 82 70.2 11.8
Denzel Clarke 42 30.3 11.7
Isaac Paredes 59 47.4 11.6
Nolan Jones 53 41.6 11.4
Cedric Mullins 69 57.7 11.3
Luis Robert Jr. 88 76.8 11.2

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!





Dan Szymborski is a senior writer for FanGraphs and the developer of the ZiPS projection system. He was a writer for ESPN.com from 2010-2018, a regular guest on a number of radio shows and podcasts, and a voting BBWAA member. He also maintains a terrible Twitter account at @DSzymborski.

11 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
cashgod27Member since 2024
5 hours ago

Interesting that ZiPS thinks Ben Rice’s production is pretty much exactly where it should be whereas Statcast thinks he’s grossly underperforming

si.or.noMember since 2017
4 hours ago
Reply to  cashgod27

Where did you see Rice’s numbers? I only see him on the BABIP leaderboard here

cashgod27Member since 2024
3 hours ago
Reply to  si.or.no

I was more surprised that I DIDN’t see his numbers

mopete12Member since 2023
3 hours ago
Reply to  cashgod27

Not being included in the list of ~20 hitters with the biggest difference between actual results and ZiPS doesn’t mean ZiPS thinks is production is “pretty much exactly where it should be”. It just means he’s not in the top 20 or bottom 20 out of 227 players with 200+ PA’s this year.