Hitter zStats Entering the Homestretch, Part 2 (The Stats!)

One of the strange things about projecting baseball players is that even results themselves are small samples. Full seasons result in specific numbers that have minimal predictive value, such as BABIP for pitchers. The predictive value isn’t literally zero — individual seasons form much of the basis of projections, whether math-y ones like ZiPS or simply our personal opinions on how good a player is — but we have to develop tools that improve our ability to explain some of these stats. It’s not enough to know that the number of home runs allowed by a pitcher is volatile; we need to know how and why pitchers allow homers beyond a general sense of pitching poorly or being Jordan Lyles.
Data like that which StatCast provides gives us the ability to get at what’s more elemental, such as exit velocities and launch angles and the like — things that are in themselves more predictive than their end products (the number of homers). StatCast has its own implementation of this kind of exercise in its various “x” stats. ZiPS uses slightly different models with a similar purpose, which I’ve dubbed zStats. (I’m going to make you guess what the z stands for!) The differences in the models can be significant. For example, when talking about grounders, balls hit directly toward the second base bag became singles 48.7% of the time from 2012 to ’19, with 51.0% outs and 0.2% doubles. But grounders hit 16 degrees to the “left” of the bag only became hits 10.6% of the time over the same stretch, and toward the second base side, it was 9.8%. ZiPS uses data like sprint speed when calculating hitter BABIP, because how fast a player is has an effect on BABIP and extra-base hits.
ZiPS doesn’t discard actual stats; the models all improve from knowing the actual numbers in addition to the zStats. You can read more on how zStats relate to actual stats here. For those curious about the r-squared values between zStats and real stats for the offensive components, it’s 0.59 for zBABIP, 0.86 for strikeouts, 0.83 for walks, and 0.78 for homers. Those relationships are what make these stats useful for predicting the future. If you can explain 78% of the variance in home run rate between hitters with no information about how many homers they actually hit, you’ve answered a lot of the riddle. All of these numbers correlate better than the actual numbers with future numbers, though a model that uses both zStats and actual ones, as the full model of ZiPS does, is superior to either by themselves.
And why is this important and not just number-spinning? Knowing that changes in walk rates, home run rates, and strikeout rates stabilized far quicker than other stats was an important step forward in player valuation. That’s something that’s useful whether you work for a front office, are a hardcore fan, want to make some fantasy league moves, or even just a regular fan who is rooting for your faves. If we improve our knowledge of the basic molecular structure of a walk or a strikeout, then we can find players who are improving or struggling even more quickly, and provide better answers on why a walk rate or a strikeout rate has changed. This is useful data for me in particular because I obviously do a lot of work with projections, but I’m hoping this type of information is interesting to readers beyond that.
Yesterday, I went over how hitter zStats for the first two months of the season performed over the last two months. Today, we’ll look at the updated data, through the games on August 7. For the final zOPS, I’m limiting it to players with at least 250 plate appearances this year.
Name | HIP | zHIP | zHIP Diff | BABIP | zBABIP | zBABIP Diff |
---|---|---|---|---|---|---|
Lane Thomas | 109 | 87.4 | 21.6 | .360 | .293 | .067 |
Austin Hays | 96 | 78.3 | 17.7 | .357 | .296 | .061 |
Anthony Santander | 85 | 69.7 | 15.3 | .297 | .246 | .051 |
Cody Bellinger | 87 | 71.9 | 15.1 | .349 | .297 | .052 |
Brandon Belt | 56 | 41.4 | 14.6 | .389 | .292 | .097 |
Brandon Marsh | 80 | 65.5 | 14.5 | .402 | .334 | .068 |
Cedric Mullins | 56 | 42.1 | 13.9 | .301 | .229 | .072 |
Luis Arraez | 154 | 140.2 | 13.8 | .393 | .361 | .032 |
Elias Díaz | 83 | 69.3 | 13.7 | .325 | .276 | .049 |
Wilmer Flores | 65 | 51.6 | 13.4 | .322 | .259 | .063 |
Corey Seager | 81 | 67.7 | 13.3 | .379 | .323 | .056 |
Matt Chapman | 89 | 75.7 | 13.3 | .340 | .291 | .049 |
Joey Meneses | 108 | 95.5 | 12.5 | .333 | .297 | .036 |
TJ Friedl | 83 | 71.0 | 12.0 | .328 | .282 | .046 |
Thairo Estrada | 74 | 62.1 | 11.9 | .346 | .291 | .055 |
James Outman | 72 | 60.3 | 11.7 | .371 | .314 | .057 |
Geraldo Perdomo | 74 | 62.6 | 11.4 | .312 | .266 | .046 |
Freddie Freeman | 128 | 116.6 | 11.4 | .379 | .349 | .030 |
Orlando Arcia | 82 | 71.1 | 10.9 | .343 | .299 | .044 |
Randal Grichuk | 71 | 60.7 | 10.3 | .357 | .307 | .050 |
Ha-Seong Kim | 89 | 78.8 | 10.2 | .336 | .301 | .035 |
Hunter Renfroe | 82 | 72.4 | 9.6 | .287 | .256 | .031 |
Jarren Duran | 85 | 75.8 | 9.2 | .395 | .356 | .039 |
Christopher Morel | 52 | 43.4 | 8.6 | .354 | .299 | .055 |
Jeimer Candelario | 90 | 81.5 | 8.5 | .315 | .287 | .028 |
Luis Arraez topped this list back in June, but since then, his BABIP has dropped into the range that ZiPS sees as sustainable for him. That leaves him “only” a .340 hitter, which is definitely less depressing now that he’s fallen too far behind the .400 mark to make a late season run at it plausible. Lane Thomas is on top of this list and near the top of some of the others here, as he’s having a season that’s really confusing ZiPS; the system doesn’t believe his BABIP, but also thinks that based on his contact rates, he should have walked more and struck out less than he has. His swinging strike rate is minuscule for a guy with a decently high strikeout rate. It’s a weird mishmash of skills interacting with each other, and I suspect that other teams in the league are in wait-and-see mode with Thomas as well; I can’t imagine the Nats wouldn’t have traded him if they got a healthy offer. Cedric Mullins appears here, but he’s one player not to worry about — he’s one of the bigger year-to-year overperformers in this stat, which is why he still maintains extremely healthy long-term projections. Cody Bellinger has likely earned himself a lot in his next contract, but it shouldn’t be surprising that the numbers don’t buy a .330 batting average.
Name | HIP | zHIP | zHIP Diff | BABIP | zBABIP | zBABIP Diff |
---|---|---|---|---|---|---|
Adam Frazier | 62 | 80.9 | -18.9 | .242 | .318 | -.076 |
Anthony Volpe | 65 | 80.8 | -15.8 | .264 | .331 | -.067 |
Wander Franco | 100 | 115.2 | -15.2 | .290 | .338 | -.048 |
Will Brennan | 75 | 89.2 | -14.2 | .286 | .342 | -.056 |
Pete Alonso | 54 | 67.2 | -13.2 | .204 | .256 | -.052 |
Trea Turner | 98 | 111.2 | -13.2 | .297 | .337 | -.040 |
Gleyber Torres | 96 | 108.8 | -12.8 | .277 | .320 | -.043 |
Jake Cronenworth | 82 | 94.5 | -12.5 | .266 | .312 | -.046 |
Steven Kwan | 117 | 129.0 | -12.0 | .297 | .331 | -.034 |
Miguel Rojas | 58 | 69.8 | -11.8 | .249 | .303 | -.054 |
Tim Anderson | 85 | 96.5 | -11.5 | .309 | .354 | -.045 |
Keibert Ruiz | 74 | 85.5 | -11.5 | .243 | .282 | -.039 |
Javier Báez | 83 | 94.3 | -11.3 | .272 | .312 | -.040 |
Kyle Schwarber | 47 | 57.0 | -10.0 | .196 | .240 | -.044 |
Jake Burger | 41 | 50.9 | -9.9 | .222 | .278 | -.056 |
Spencer Torkelson | 79 | 88.8 | -9.8 | .270 | .307 | -.037 |
Jean Segura | 63 | 72.6 | -9.6 | .251 | .289 | -.038 |
Mauricio Dubón | 86 | 95.1 | -9.1 | .290 | .322 | -.032 |
Bryan Reynolds | 86 | 94.9 | -8.9 | .304 | .341 | -.037 |
Julio Rodríguez | 99 | 107.2 | -8.2 | .324 | .350 | -.026 |
Lourdes Gurriel Jr. | 81 | 89.2 | -8.2 | .270 | .298 | -.028 |
Vladimir Guerrero Jr. | 94 | 102.2 | -8.2 | .279 | .307 | -.028 |
Nick Maton | 34 | 41.8 | -7.8 | .206 | .257 | -.051 |
Fernando Tatis Jr. | 83 | 90.8 | -7.8 | .286 | .315 | -.029 |
Tony Kemp | 57 | 64.8 | -7.8 | .228 | .262 | -.034 |
If Thomas is having a weird season, Adam Frazier’s having an even weirder one. Basically, the Statcast/plate discipline data really befuddle the models. Frazier actually ends up with almost the same zOPS (.730 zOPS vs. .728 actual), yet the shape is entirely different from what you’d expect. How does a guy with a 28% line drive rate have a BABIP in the .240s? Frazier isn’t slow, nor does he have some crazy history of performing differently than the models suggest, with a .304 career zBABIP entering the season compared to his actual .303. If Frazier stayed near the top and Keibert Ruiz didn’t fall too far off, Julio Rodríguez at least dropped way down the list, with a .270 BA and a .345 BABIP over the last two months.
Name | HR | zHR | zHR Diff |
---|---|---|---|
Shohei Ohtani | 40 | 30.6 | 9.4 |
Pete Alonso | 33 | 23.9 | 9.1 |
Jose Siri | 21 | 12.3 | 8.7 |
Francisco Alvarez | 21 | 12.8 | 8.2 |
Matt Olson | 39 | 31.7 | 7.3 |
Adam Frazier | 13 | 5.9 | 7.1 |
Isaac Paredes | 21 | 14.3 | 6.7 |
Luis Robert Jr. | 30 | 23.4 | 6.6 |
Corbin Carroll | 21 | 14.7 | 6.3 |
Cody Bellinger | 16 | 10.2 | 5.8 |
Mookie Betts | 31 | 25.4 | 5.6 |
J.D. Martinez | 25 | 20.3 | 4.7 |
Nolan Gorman | 24 | 19.4 | 4.6 |
Wilmer Flores | 14 | 9.5 | 4.5 |
Nolan Arenado | 23 | 18.5 | 4.5 |
Josh Jung | 22 | 17.7 | 4.3 |
TJ Friedl | 10 | 5.7 | 4.3 |
Gunnar Henderson | 19 | 14.7 | 4.3 |
Harold Ramirez | 9 | 4.8 | 4.2 |
Justin Turner | 17 | 12.8 | 4.2 |
Whit Merrifield | 10 | 5.9 | 4.1 |
Gleyber Torres | 18 | 14.0 | 4.0 |
Max Muncy | 27 | 23.1 | 3.9 |
Alex Kirilloff | 8 | 4.1 | 3.9 |
Yandy Díaz | 16 | 12.2 | 3.8 |
You’ll have to excuse ZiPS for putting Shohei Ohtani on this list, as the model is unaware that he’s not subject to the physical laws underpinning the known universe. That being said, zHR still sees him as a player on a 45-homer pace, just not someone who could have been pushing 60 homers with health. Pete Alonso has kept hitting for power despite velocity numbers that have been pedestrian by his standards, and zHR is definitely not buying Jose Siri, 20-homer hitter, either. Frazier makes his second appearance here, but as an overachiever rather than an underachiever, as his homer total is shockingly high for a guy who very rarely connects with the ball with much force. zHR is not as keen on Bellinger as I was hoping it would be (since I’m rooting for him) and his contact data really isn’t what it was at his peak with the Dodgers.
Name | HR | zHR | zHR Diff |
---|---|---|---|
Matt Chapman | 15 | 26.9 | -11.9 |
Spencer Torkelson | 15 | 24.7 | -9.7 |
MJ Melendez | 9 | 18.2 | -9.2 |
Bryce Harper | 6 | 14.5 | -8.5 |
Trent Grisham | 11 | 18.8 | -7.8 |
Austin Hays | 9 | 14.6 | -5.6 |
Willy Adames | 17 | 22.1 | -5.1 |
Willson Contreras | 11 | 15.9 | -4.9 |
Dominic Smith | 5 | 9.9 | -4.9 |
Shea Langeliers | 11 | 15.7 | -4.7 |
Zach McKinstry | 7 | 11.6 | -4.6 |
Eugenio Suárez | 16 | 20.5 | -4.5 |
Josh Bell | 12 | 16.4 | -4.4 |
Teoscar Hernández | 17 | 21.4 | -4.4 |
Byron Buxton | 17 | 21.3 | -4.3 |
Miguel Rojas | 1 | 5.0 | -4.0 |
Willi Castro | 5 | 8.9 | -3.9 |
Edward Olivares | 6 | 9.9 | -3.9 |
Seiya Suzuki | 9 | 12.9 | -3.9 |
Randy Arozarena | 18 | 21.8 | -3.8 |
Joc Pederson | 11 | 14.8 | -3.8 |
Anthony Santander | 20 | 23.8 | -3.8 |
Ramon Urías | 4 | 7.6 | -3.6 |
Jurickson Profar | 7 | 10.6 | -3.6 |
Ryan Noda | 11 | 14.5 | -3.5 |
I kind of feeling bad for Matt Chapman, who has eight flies that have gone at least 400 feet and not been homers this year. Only eight other players have even half that number. zHR suggests that there’s still hope for Spencer Torkelson, and that his mild comeback season this year may still have more juice left in it. He’s hitting the ball hard and with loft, but it just hasn’t turned into homers yet. zHR also suggests that Bryce Harper’s rather un-Harperish power numbers since his return are kind of fluky rather than suggestive of a deeper issue for the Phillies to worry about.
Name | BB | zBB | zBB Diff |
---|---|---|---|
Ian Happ | 78 | 64.9 | 13.1 |
Shohei Ohtani | 71 | 58.5 | 12.5 |
Jake Cronenworth | 43 | 30.5 | 12.5 |
Ryan Noda | 60 | 49.1 | 10.9 |
Andrew McCutchen | 61 | 50.2 | 10.8 |
Tony Kemp | 32 | 22.1 | 9.9 |
Adley Rutschman | 65 | 55.8 | 9.2 |
Cedric Mullins | 35 | 25.8 | 9.2 |
Kyle Schwarber | 81 | 72.2 | 8.8 |
Hunter Renfroe | 32 | 23.8 | 8.2 |
Anthony Rizzo | 35 | 26.8 | 8.2 |
Willi Castro | 24 | 15.8 | 8.2 |
José Abreu | 31 | 23.0 | 8.0 |
Jake McCarthy | 25 | 17.2 | 7.8 |
Byron Buxton | 35 | 28.0 | 7.0 |
Eddie Rosario | 24 | 17.0 | 7.0 |
Jorge Mateo | 17 | 10.1 | 6.9 |
Paul Goldschmidt | 58 | 51.1 | 6.9 |
Tommy Edman | 25 | 18.3 | 6.7 |
Anthony Volpe | 38 | 31.4 | 6.6 |
Brandon Lowe | 34 | 27.4 | 6.6 |
Willy Adames | 44 | 37.4 | 6.6 |
Jean Segura | 22 | 15.7 | 6.3 |
Nico Hoerner | 30 | 23.8 | 6.2 |
DJ LeMahieu | 37 | 30.9 | 6.1 |
Jake Cronenworth was in the Adam Frazier “weird season” category, but even though he’s hardly been exciting as a player overall (.250/.305/.408 since June 8), at least the discontinuity among his numbers has been resolving itself. Sorry, Padres fans — that’s mostly a relief to me, not you. Ian Happ has already passed his career high in walks by a decent margin, but there’s also a lot to wonder about in his plate discipline stats. He’s having a good year in terms of pitch selection, but it’s hardly a sea change from what came before, and both his contact rates and first-pitch strike percentages are very ordinary.
Name | BB | zBB | zBB Diff |
---|---|---|---|
Esteury Ruiz | 14 | 28.7 | -14.7 |
Jonathan India | 39 | 51.4 | -12.4 |
Lane Thomas | 25 | 37.1 | -12.1 |
Bryan Reynolds | 35 | 46.6 | -11.6 |
Francisco Alvarez | 21 | 32.4 | -11.4 |
Connor Joe | 31 | 42.3 | -11.3 |
Pete Alonso | 39 | 50.2 | -11.2 |
Leody Taveras | 22 | 32.2 | -10.2 |
Michael A. Taylor | 16 | 26.0 | -10.0 |
Luis García | 21 | 30.6 | -9.6 |
Giancarlo Stanton | 23 | 32.5 | -9.5 |
Enrique Hernández | 24 | 33.3 | -9.3 |
Zach Neto | 12 | 21.2 | -9.2 |
Andrew Vaughn | 29 | 37.7 | -8.7 |
Bo Bichette | 20 | 28.5 | -8.5 |
Jon Berti | 17 | 25.1 | -8.1 |
Mike Trout | 45 | 53.0 | -8.0 |
Taylor Ward | 39 | 46.9 | -7.9 |
Salvador Perez | 15 | 22.8 | -7.8 |
TJ Friedl | 28 | 35.6 | -7.6 |
Orlando Arcia | 26 | 33.3 | -7.3 |
Austin Riley | 38 | 44.9 | -6.9 |
Bobby Witt Jr. | 25 | 31.6 | -6.6 |
Alex Bregman | 62 | 68.5 | -6.5 |
Ozzie Albies | 33 | 39.0 | -6.0 |
Esteury Ruiz’s walk rate has been brutally low this year, which is a shame because with his on-base percentage so low as a result, it’s keeping him from truly leveraging his ability to pilfer second base as well as he could. He’s not hopeless when it comes to contact, but so much of his game seems to be just putting the first pitch in play and beating it to first, and that’s it. The league has a .381 OBP after a 1-0 count, but Ruiz, a .250/.336/.343 hitter after 1-0, seems serially unable to take advantage. Jonathan India’s made some strides this year in the plate discipline department, both swinging at fewer out-of-zone pitches and more in-zone pitches than last year. It hasn’t resulted in a season like his rookie campaign, but there’s still some upside remaining there. He didn’t make the leaderboard, but zStats sees him having a .267/.373/.423 line this year, which lots a lot more like 2021 than 2022.
Name | SO | zSO | zSO Diff |
---|---|---|---|
Masataka Yoshida | 50 | 72.0 | -22.0 |
Gleyber Torres | 64 | 85.0 | -21.0 |
Paul Goldschmidt | 105 | 124.5 | -19.5 |
Max Muncy | 106 | 125.4 | -19.4 |
Randy Arozarena | 112 | 130.5 | -18.5 |
Adam Frazier | 42 | 59.7 | -17.7 |
Andrew McCutchen | 80 | 96.9 | -16.9 |
Javier Báez | 94 | 110.3 | -16.3 |
William Contreras | 76 | 92.2 | -16.2 |
Nick Castellanos | 125 | 140.6 | -15.6 |
Xander Bogaerts | 81 | 96.5 | -15.5 |
Kevin Kiermaier | 64 | 79.2 | -15.2 |
Pete Alonso | 90 | 104.0 | -14.0 |
Giancarlo Stanton | 61 | 75.0 | -14.0 |
Harold Ramirez | 56 | 69.5 | -13.5 |
Manny Machado | 75 | 88.3 | -13.3 |
Bryan Reynolds | 86 | 99.2 | -13.2 |
C.J. Cron | 57 | 70.1 | -13.1 |
Brent Rooker | 112 | 124.9 | -12.9 |
Esteury Ruiz | 70 | 82.8 | -12.8 |
Christian Walker | 88 | 100.5 | -12.5 |
Enrique Hernández | 71 | 83.2 | -12.2 |
MJ Melendez | 124 | 136.2 | -12.2 |
Nick Maton | 66 | 78.2 | -12.2 |
Dansby Swanson | 107 | 118.9 | -11.9 |
I would absolutely love to have data from Japan that’s of the quality we have here, because I have to wonder whether Masataka Yoshida’s relatively low strikeout rate reflects a different set of two-strike tactics in NPB than in MLB. Yoshida’s exit velocity drops by 6 mph in two-strike situations, compared to the one tick that’s typical across the league, and I’m wondering if he’s simply adjusting his approach to prioritize contact more than we usually see in the majors these days. Paul Goldschmidt is a regular resident on this list, so as with Mullins and BABIP, I wouldn’t actually worry about it in his case. It’s kind of depressing that Javier Báez is actually overachieving here.
Name | SO | zSO | zSO Diff |
---|---|---|---|
Nathaniel Lowe | 110 | 80.3 | 29.7 |
Lane Thomas | 125 | 97.9 | 27.1 |
Jake Cronenworth | 88 | 66.0 | 22.0 |
Patrick Wisdom | 95 | 73.4 | 21.6 |
Josh Jung | 135 | 114.5 | 20.5 |
Mike Trout | 103 | 82.5 | 20.5 |
Brandon Marsh | 109 | 88.8 | 20.2 |
Myles Straw | 79 | 59.3 | 19.7 |
Thairo Estrada | 81 | 62.5 | 18.5 |
Jarred Kelenic | 118 | 100.8 | 17.2 |
Julio Rodríguez | 131 | 113.9 | 17.1 |
Jarren Duran | 82 | 66.6 | 15.4 |
Brandon Belt | 108 | 93.4 | 14.6 |
Byron Buxton | 109 | 95.1 | 13.9 |
Connor Wong | 99 | 85.1 | 13.9 |
Juan Soto | 99 | 85.3 | 13.7 |
Taylor Ward | 80 | 67.0 | 13.0 |
J.P. Crawford | 85 | 72.2 | 12.8 |
Seiya Suzuki | 98 | 85.5 | 12.5 |
Zach McKinstry | 74 | 61.6 | 12.4 |
Matt Olson | 126 | 113.7 | 12.3 |
Ezequiel Duran | 90 | 77.8 | 12.2 |
Ryan McMahon | 136 | 124.0 | 12.0 |
Spencer Torkelson | 114 | 102.1 | 11.9 |
Ian Happ | 112 | 100.3 | 11.7 |
Nathaniel Lowe has an incredibly low whiff rate (81.5% contact rate, 7.7% swinging strike rate) for a guy on track to strike out more than 150 times. He’s done this a couple of times, but there’s still some upside hope here. As mentioned above, Thomas is having a weird season and Cronenworth’s Statcast data is slowly becoming as thoroughly mediocre as his actual stats are.
This time, I’m also posting the summary statistics (zBA, zOBP, zSLG, and zOPS). This will give you a better idea of whose zStats, as a whole, reflect underperforming and overperforming with something more concrete to the idea than just pointing to a fluke or a slump. I did a Tweet thread on this rather than posting the data in the article yesterday, but zStats are explicitly designed to have more predictive value than their “real” counterparts, without anything like a model of regression toward the mean built-in to “cheat” its way to better accuracy. In sum, each of these zStats projects the following season better than their companion normal stat. That doesn’t mean you should only use zStats when judging the future, only that they do bring enough to the table that you should be using both when predicting the future.
Name | AVG | zBA | OBP | zOBP | SLG | zSLG | OPS | zOPS | DIFF |
---|---|---|---|---|---|---|---|---|---|
Wilmer Flores | .306 | .233 | .361 | .298 | .539 | .396 | .900 | .694 | .206 |
Cody Bellinger | .332 | .264 | .383 | .327 | .552 | .414 | .935 | .741 | .194 |
Cedric Mullins | .259 | .196 | .347 | .267 | .454 | .347 | .801 | .614 | .187 |
Shohei Ohtani | .308 | .281 | .409 | .369 | .673 | .568 | 1.082 | .938 | .144 |
Jose Siri | .217 | .202 | .261 | .241 | .506 | .390 | .767 | .630 | .137 |
Harold Ramirez | .294 | .260 | .343 | .308 | .441 | .356 | .784 | .664 | .120 |
TJ Friedl | .284 | .243 | .351 | .329 | .453 | .364 | .804 | .693 | .111 |
Isaac Paredes | .253 | .228 | .361 | .339 | .500 | .411 | .861 | .750 | .111 |
Jordan Walker | .261 | .223 | .321 | .289 | .416 | .338 | .737 | .627 | .110 |
Randal Grichuk | .300 | .254 | .354 | .320 | .496 | .423 | .850 | .742 | .108 |
Orlando Arcia | .297 | .251 | .354 | .328 | .450 | .377 | .804 | .705 | .099 |
Ha-Seong Kim | .288 | .260 | .384 | .354 | .454 | .392 | .838 | .745 | .093 |
Chas McCormick | .275 | .247 | .368 | .346 | .522 | .453 | .890 | .799 | .091 |
Taylor Walls | .211 | .196 | .315 | .286 | .360 | .300 | .675 | .585 | .090 |
James Outman | .259 | .227 | .360 | .324 | .439 | .392 | .799 | .715 | .084 |
Spencer Steer | .268 | .243 | .351 | .327 | .463 | .404 | .814 | .731 | .083 |
Nolan Arenado | .282 | .256 | .331 | .312 | .508 | .444 | .839 | .756 | .083 |
Christopher Morel | .272 | .237 | .339 | .314 | .528 | .473 | .867 | .787 | .080 |
Hunter Renfroe | .249 | .226 | .307 | .274 | .445 | .399 | .752 | .673 | .079 |
Trey Mancini | .234 | .207 | .299 | .273 | .336 | .289 | .635 | .563 | .072 |
Freddie Freeman | .340 | .315 | .418 | .398 | .595 | .543 | 1.013 | .941 | .072 |
Paul DeJong | .222 | .199 | .283 | .267 | .387 | .333 | .670 | .599 | .071 |
Corbin Carroll | .277 | .267 | .358 | .346 | .523 | .464 | .881 | .810 | .071 |
Kevin Kiermaier | .274 | .250 | .336 | .314 | .415 | .370 | .751 | .684 | .067 |
Luis Robert Jr. | .270 | .258 | .323 | .315 | .558 | .500 | .881 | .815 | .066 |
There probably aren’t a lot of surprises on this list, as there are a lot of players who are already thought to be having unusually good seasons by their standards. For the better players on this list, it’s really no big deal, as guys like Ohtani, Freddie Freeman, Luis Robert Jr., and Corbin Carroll still have really good lines even in the less exuberant zStats versions. The players to worry about are the ones here who don’t have the same extended track records of good fortune. Maybe Bellinger’s comeback isn’t quite as potent as it looks at first glance. Jordan Walker being here is especially concerning because it kind of reflects another inconsistency in the difference between his major league stats and his minor league stats. It’s easier to dismiss Walker’s position on this list if you don’t also have a month of him hitting quite poorly at Triple-A. And yes, a .746 OPS in the International League for a prospect of any age with no defensive value is a red flag.
Name | AVG | zBA | OBP | zOBP | SLG | zSLG | OPS | zOPS | DIFF |
---|---|---|---|---|---|---|---|---|---|
Spencer Torkelson | .225 | .276 | .304 | .346 | .395 | .522 | .699 | .868 | -.169 |
Miguel Rojas | .221 | .272 | .275 | .322 | .285 | .388 | .560 | .710 | -.150 |
Michael Massey | .219 | .260 | .275 | .324 | .359 | .444 | .634 | .768 | -.134 |
Brenton Doyle | .203 | .248 | .265 | .313 | .339 | .421 | .604 | .733 | -.129 |
Willson Contreras | .252 | .295 | .347 | .380 | .425 | .519 | .772 | .899 | -.127 |
Jake Cronenworth | .228 | .287 | .314 | .350 | .380 | .471 | .694 | .821 | -.127 |
Trent Grisham | .218 | .247 | .326 | .352 | .391 | .488 | .717 | .840 | -.123 |
Joc Pederson | .230 | .261 | .350 | .380 | .426 | .508 | .776 | .889 | -.113 |
Seiya Suzuki | .249 | .281 | .327 | .367 | .388 | .460 | .715 | .827 | -.112 |
MJ Melendez | .220 | .242 | .297 | .314 | .359 | .451 | .656 | .764 | -.108 |
Mauricio Dubón | .260 | .297 | .287 | .328 | .366 | .430 | .653 | .758 | -.105 |
Tim Anderson | .242 | .278 | .285 | .322 | .290 | .352 | .575 | .674 | -.099 |
Luis Garcia | .259 | .284 | .293 | .337 | .362 | .416 | .655 | .754 | -.099 |
Julio Rodríguez | .257 | .298 | .321 | .354 | .433 | .499 | .754 | .853 | -.099 |
Mike Trout | .263 | .293 | .369 | .411 | .493 | .549 | .862 | .960 | -.098 |
Eric Haase | .194 | .225 | .236 | .259 | .270 | .344 | .506 | .603 | -.097 |
Wander Franco | .273 | .317 | .337 | .383 | .457 | .508 | .794 | .891 | -.097 |
Tommy Pham | .257 | .286 | .339 | .379 | .449 | .506 | .788 | .885 | -.097 |
Zach McKinstry | .231 | .261 | .303 | .324 | .352 | .427 | .655 | .751 | -.096 |
Willy Adames | .201 | .234 | .286 | .306 | .376 | .449 | .662 | .755 | -.093 |
Myles Straw | .239 | .280 | .303 | .333 | .298 | .356 | .601 | .689 | -.088 |
Will Brennan | .260 | .302 | .295 | .336 | .367 | .414 | .662 | .750 | -.088 |
Keibert Ruiz | .243 | .278 | .297 | .328 | .383 | .438 | .680 | .766 | -.086 |
Kyle Farmer | .247 | .272 | .308 | .332 | .379 | .441 | .687 | .772 | -.085 |
J.T. Realmuto | .247 | .272 | .312 | .338 | .453 | .512 | .765 | .850 | -.085 |
I mentioned Torkelson above, and the fact that he tops this list makes him one player I’m definitely going to be watching the rest of this season and next. I have to admit to being surprised that Tommy Pham’s season isn’t on the other list, so maybe I’m being too skeptical about his late-career comeback. I also may have been too pessimistic about MJ Melendez’s chances to stick in the majors offensively at a non-catcher position — this year would be far less disastrous for him with a .242/.314/.451 line. J.T. Realmuto’s season may not actually be a warning shot from Father Time, and Wander Franco’s poised to take another big step forward in 2024.
Hopefully, you find all this data useful. If you have any questions or comments about different types of things you might want to see in these reports, please let me know. They’re fairly difficult to automate, but if people beyond me find them interesting and/or useful, I’d like to get at least monthly updates into the leaderboards somewhere rather than the less efficient method of including them in articles.
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.
Adam Frazier is actually pretty slow now. Statcast has him at 26.3 feet/second, with league average roughly 27.