Checking in on ZiPS zStats for Pitchers at the Halfway Mark

Love ’em or hate ’em, the class of “expected” stats has utility when we’re talking about predicting the future. The data certainly inspire 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, as in the case of home runs allowed for pitchers. Of the fielding-neutral stats, home runs are easily the most volatile, and home run estimators for pitchers are much more predictive of future home runs allowed than are actual home runs allowed are. Also, the longer a pitcher “underachieves” or “overachieves” in a specific stat, the more ZiPS believes in the actual performance rather than the expected one. More information on accuracy and construction can be found here.
As we did with hitters yesterday, let’s start with a quick look at how last season’s pitching overachievers and underachievers through June performed on the mound over the rest of the season. Again, please note that these aren’t projections themselves, but rather indicators of performance that assist in making projections:
Name | FIP | zFIP | zFIP Diff | RoS FIP |
---|---|---|---|---|
Luis L. Ortiz | 3.49 | 4.72 | -1.23 | 4.54 |
Albert Suárez | 2.79 | 3.91 | -1.12 | 4.95 |
Kevin Gausman | 3.39 | 4.35 | -0.95 | 4.00 |
Dylan Cease | 3.03 | 3.98 | -0.95 | 3.14 |
Mitch Spence | 3.17 | 4.09 | -0.92 | 4.74 |
Cristopher Sánchez | 2.58 | 3.46 | -0.88 | 3.25 |
Sean Manaea | 3.79 | 4.62 | -0.83 | 3.84 |
Matt Waldron | 3.26 | 4.06 | -0.80 | 5.13 |
Jon Gray | 2.67 | 3.41 | -0.74 | 5.27 |
Logan Webb | 2.74 | 3.48 | -0.74 | 3.10 |
Cole Irvin | 3.64 | 4.38 | -0.73 | 6.31 |
Victor Vodnik | 3.87 | 4.53 | -0.66 | 4.49 |
Cole Ragans | 2.31 | 2.96 | -0.65 | 3.48 |
Sonny Gray | 2.55 | 3.18 | -0.62 | 3.51 |
Luis Gil | 3.06 | 3.67 | -0.61 | 5.18 |
Freddy Peralta | 3.52 | 4.12 | -0.60 | 4.58 |
Simeon Woods Richardson | 3.54 | 4.14 | -0.59 | 4.46 |
Ranger Suárez | 2.62 | 3.21 | -0.59 | 4.18 |
Of the 19 biggest FIP overachievers according to zFIP — I was apparently unable to count to 20 when making the chart — 18 managed at least 30 innings over the remaining 2024 schedule. Trevor Williams, the biggest overachiever, went on the injured list a few weeks later with a flexor strain that ended his season. All 18 had a higher FIP after June 13. The RMSE (root mean squared error) between FIP through June 13 and rest-of-season FIP was 1.46, while for zFIP vs. rest-of-season FIP it was 0.93. In other words, zFIP did about 60% better at projecting FIP for the rest of the season than actual FIP did for the overachievers. Remember, there’s no projection data or regression to the mean built in to “help” zFIP, which is solely derived from the Statcast and similar types of data through a particular date. Let’s look at last year’s FIP underachievers:
Name | FIP | zFIP | zFIP Diff | RoS FIP |
---|---|---|---|---|
Kyle Hendricks | 6.37 | 4.06 | 2.31 | 4.34 |
Brayan Bello | 4.64 | 3.17 | 1.47 | 3.93 |
Hunter Brown | 4.86 | 3.40 | 1.46 | 2.85 |
Logan Allen | 5.50 | 4.24 | 1.26 | 6.56 |
José Berríos | 4.57 | 3.42 | 1.15 | 4.82 |
Tyler Alexander | 5.28 | 4.16 | 1.12 | 4.83 |
Nathan Eovaldi | 3.47 | 2.49 | 0.97 | 4.01 |
Griffin Canning | 5.14 | 4.19 | 0.96 | 5.32 |
Tobias Myers | 5.04 | 4.09 | 0.96 | 3.43 |
Aaron Civale | 4.61 | 3.69 | 0.92 | 4.83 |
Jared Jones | 3.75 | 2.84 | 0.91 | 4.37 |
Joe Musgrove | 5.34 | 4.45 | 0.89 | 2.59 |
Michael King | 4.16 | 3.27 | 0.89 | 2.56 |
Frankie Montas | 4.67 | 3.80 | 0.86 | 4.72 |
Slade Cecconi | 5.99 | 5.19 | 0.80 | 3.69 |
Justin Verlander | 4.97 | 4.20 | 0.77 | 4.43 |
Kenta Maeda | 5.65 | 4.89 | 0.76 | 4.50 |
Carlos Carrasco | 4.98 | 4.23 | 0.75 | 4.86 |
For the 18 underachievers with at least 30 innings over the rest of the season, zFIP won by a smaller margin, with an RMSE of 1.16 vs. 1.30 for FIP.
zFIP working better with overachievers than underachievers appears to be a feature specific to 2024 rather than a consistent characteristic of the model; with a half-season of data, zFIP is usually 30-40% more accurate than FIP at projecting future FIP.
Let’s start the 2025 numbers off with zFIP underachievers and overachievers, based on data through June 29. I’m using 40 innings pitched as a cutoff point here:
Name | FIP | zFIP | zFIP Diff |
---|---|---|---|
Bowden Francis | 6.81 | 4.48 | 2.33 |
Tanner Houck | 6.11 | 3.85 | 2.26 |
Keider Montero | 5.43 | 3.63 | 1.80 |
Emerson Hancock | 5.67 | 3.92 | 1.74 |
Jameson Taillon | 5.16 | 3.66 | 1.51 |
Walker Buehler | 6.03 | 4.61 | 1.41 |
Osvaldo Bido | 6.52 | 5.11 | 1.41 |
Aaron Nola | 5.02 | 3.66 | 1.36 |
Zach Eflin | 5.72 | 4.54 | 1.17 |
Jack Kochanowicz | 5.54 | 4.38 | 1.16 |
Bryse Wilson | 6.44 | 5.32 | 1.12 |
Bailey Ober | 5.29 | 4.18 | 1.12 |
Ryan Yarbrough | 4.69 | 3.68 | 1.02 |
Scott Blewett | 5.26 | 4.25 | 1.01 |
Abner Uribe | 2.91 | 1.95 | 0.96 |
Hunter Greene | 3.40 | 2.45 | 0.95 |
Tyler Phillips | 4.77 | 3.82 | 0.95 |
Kyle Hendricks | 4.88 | 4.00 | 0.87 |
Jose A. Ferrer | 3.36 | 2.52 | 0.84 |
Ben Brown | 4.09 | 3.26 | 0.84 |
Name | FIP | zFIP | zFIP Diff |
---|---|---|---|
Hoby Milner | 2.03 | 4.18 | -2.15 |
Michael King | 3.21 | 4.64 | -1.43 |
Joe Ryan | 3.22 | 4.39 | -1.17 |
Brenan Hanifee | 3.21 | 4.35 | -1.14 |
Brent Suter | 3.79 | 4.82 | -1.03 |
José Buttó | 3.34 | 4.36 | -1.02 |
Max Fried | 2.75 | 3.73 | -0.97 |
Nathan Eovaldi | 2.40 | 3.33 | -0.93 |
Brady Singer | 4.23 | 5.06 | -0.83 |
Garrett Whitlock | 2.89 | 3.72 | -0.83 |
Cade Povich | 4.11 | 4.90 | -0.79 |
Simeon Woods Richardson | 4.32 | 5.08 | -0.76 |
Hunter Brown | 2.69 | 3.44 | -0.75 |
Kodai Senga | 3.20 | 3.94 | -0.75 |
Cole Ragans | 2.41 | 3.15 | -0.74 |
Ranger Suárez | 2.88 | 3.62 | -0.74 |
Nick Pivetta | 3.26 | 4.00 | -0.74 |
MacKenzie Gore | 2.92 | 3.64 | -0.71 |
Garrett Crochet | 2.54 | 3.25 | -0.71 |
Chad Patrick | 3.42 | 4.12 | -0.70 |
zFIP doesn’t completely salvage a poor showing by Bowden Francis, but it brings him to the point of being a moderately useful innings-eater, at least when his shoulder is better. Walker Buehler appearing here is interesting, because I’ve gotten a lot of commentary in my chats over the last month that he looks a lot better than his actual results; it looks like some of you folks were on to something. Zach Eflin being better than his numbers is too little, too late for the Orioles, but at least this might make him fetch more at the trade deadline. Seeing Hunter Greene here is a lot of fun, as he’s actually having a legitimately excellent season already. This suggests that he might be stickier in the Cy Young race going forward.
The estimated numbers take a bite out of some of the league’s best pitchers, but many of them (Nathan Eovaldi, Garrett Crochet, Hunter Brown, MacKenzie Gore) are still seen as excellent contributors, just not quite to the same degree. Emerging less unscathed are Joe Ryan and Michael King. King has been hit harder this season and is getting into a good deal more 1-0 counts. Ryan’s zFIP is less concerning, as he has a history of outperforming his zStats, to the point where ZiPS puts less emphasis on the expected stats when running projections.
Turning our attention to home runs:
Name | HR | zHR | zHR Diff |
---|---|---|---|
Jameson Taillon | 22 | 13.6 | 8.4 |
Emerson Hancock | 15 | 7.0 | 8.0 |
Bowden Francis | 19 | 11.5 | 7.5 |
Zach Eflin | 16 | 9.9 | 6.1 |
Zack Littell | 23 | 17.5 | 5.5 |
JP Sears | 18 | 12.5 | 5.5 |
Ryan Yarbrough | 10 | 4.7 | 5.3 |
Tanner Houck | 10 | 5.2 | 4.8 |
Bailey Ober | 21 | 16.4 | 4.6 |
Walker Buehler | 15 | 10.4 | 4.6 |
Tanner Bibee | 15 | 10.7 | 4.3 |
Aaron Nola | 11 | 6.8 | 4.2 |
Jackson Rutledge | 8 | 3.8 | 4.2 |
Jack Kochanowicz | 15 | 11.0 | 4.0 |
Kyle Hendricks | 15 | 11.3 | 3.7 |
Michael Lorenzen | 16 | 12.3 | 3.7 |
Keider Montero | 11 | 7.3 | 3.7 |
Tomoyuki Sugano | 17 | 13.4 | 3.6 |
Kyle Hart | 8 | 4.4 | 3.6 |
Tyler Holton | 8 | 4.4 | 3.6 |
Name | HR | zHR | zHR Diff |
---|---|---|---|
Kris Bubic | 5 | 10.6 | -5.6 |
Miles Mikolas | 9 | 13.9 | -4.9 |
Hoby Milner | 0 | 4.6 | -4.6 |
Brady Singer | 10 | 14.6 | -4.6 |
Joe Ryan | 10 | 14.5 | -4.5 |
Garrett Whitlock | 2 | 6.2 | -4.2 |
José Buttó | 2 | 6.2 | -4.2 |
Tyler Mahle | 4 | 8.2 | -4.2 |
Matthew Liberatore | 7 | 11.1 | -4.1 |
Nathan Eovaldi | 4 | 8.1 | -4.1 |
Erick Fedde | 9 | 12.7 | -3.7 |
José Soriano | 4 | 7.6 | -3.6 |
Jack Leiter | 9 | 12.4 | -3.4 |
Yusei Kikuchi | 11 | 14.4 | -3.4 |
Drew Pomeranz | 0 | 3.3 | -3.3 |
Shane Smith | 5 | 8.2 | -3.2 |
Martín Pérez | 1 | 4.2 | -3.2 |
Nick Pivetta | 11 | 14.2 | -3.2 |
Framber Valdez | 6 | 9.1 | -3.1 |
AJ Smith-Shawver | 4 | 7.0 | -3.0 |
Of the three FIP components, home runs are easily where zStats for pitchers are the most valuable. Unlike with hitters, home runs for pitchers tend to be an absolutely dreadful stat from a predictive standpoint, and many of the long-term failures to evaluate pitchers have come from taking very high or very low numbers for home runs allowed too seriously. Indeed, home runs allowed being such an abysmal stat for pitchers is why xFIP is more predictive despite it making the assumption that pitchers exert no influence over whether a pitch becomes a home run, which is a ludicrous notion. Home run suppression is far better measured by things like exit velocity data, so practically any estimate that uses this data will do a superior job predicting future home runs allowed than either home run tally or xFIP.
Jameson Taillon is a good example here. His barrel rate isn’t good and his hard-hit rate is ordinary, but neither number is so inflated as to justify a roughly 70% increase in his home run allowed rate, nor is he suddenly missing velocity. He’s allowed more pulled fly balls, which is a bad thing, but it only accounts for about four additional home runs.
On to walks:
Name | BB | zBB | zBB Diff |
---|---|---|---|
Grant Holmes | 42 | 26.6 | 15.4 |
Luis L. Ortiz | 42 | 27.2 | 14.8 |
Mitchell Parker | 36 | 22.3 | 13.7 |
Ben Brown | 27 | 14.1 | 12.9 |
Jake Irvin | 30 | 17.3 | 12.7 |
Jack Flaherty | 35 | 23.4 | 11.6 |
Sandy Alcantara | 34 | 22.7 | 11.3 |
Framber Valdez | 39 | 27.8 | 11.2 |
Zac Gallen | 42 | 31.8 | 10.2 |
Corbin Burnes | 26 | 15.9 | 10.1 |
Keider Montero | 20 | 10.2 | 9.8 |
Luis García | 16 | 6.2 | 9.8 |
José Berríos | 37 | 27.4 | 9.6 |
Clay Holmes | 35 | 25.4 | 9.6 |
Bowden Francis | 27 | 17.6 | 9.4 |
Jack Kochanowicz | 40 | 30.6 | 9.4 |
Shane Baz | 35 | 26.0 | 9.0 |
Keegan Akin | 18 | 9.0 | 9.0 |
Cionel Pérez | 18 | 9.2 | 8.8 |
Luis Castillo | 32 | 23.5 | 8.5 |
Name | BB | zBB | zBB Diff |
---|---|---|---|
Max Fried | 21 | 39.0 | -18.0 |
Hunter Brown | 28 | 45.7 | -17.7 |
Eduardo Rodriguez | 27 | 41.5 | -14.5 |
Joe Ryan | 20 | 32.9 | -12.9 |
Nick Martinez | 21 | 32.3 | -11.3 |
Zack Wheeler | 25 | 36.1 | -11.1 |
Ben Casparius | 12 | 22.8 | -10.8 |
Brandon Eisert | 8 | 18.4 | -10.4 |
MacKenzie Gore | 30 | 40.2 | -10.2 |
Sonny Gray | 17 | 26.9 | -9.9 |
Pablo López | 14 | 23.9 | -9.9 |
JP Sears | 22 | 31.9 | -9.9 |
Trevor Williams | 20 | 29.4 | -9.4 |
Michael King | 17 | 26.1 | -9.1 |
Brent Suter | 9 | 18.0 | -9.0 |
Tomoyuki Sugano | 18 | 27.0 | -9.0 |
Bryan Woo | 17 | 25.8 | -8.8 |
Edwin Díaz | 12 | 20.6 | -8.6 |
Chris Bassitt | 25 | 33.5 | -8.5 |
Freddy Peralta | 34 | 42.5 | -8.5 |
Unlike home runs allowed, walks allowed (and strikeouts) are good stats for pitchers, so zStats don’t dominate the real numbers here. zBB is still more predictive than actual walks, primarily because it includes two plate discipline stats that are important leading indicators of future walk rate: out-of-zone swing percentage and first-pitch strike percentage.
Ben Brown is interesting here because of the great strides he’s made in his walk rate in the majors, with zBB suggesting that he could get even better. His improvement in the first pitch of an at-bat has been quite spectacular; he went from 46% strikes in the minors in 2024 to 69% in the majors this year. Alas, he’s currently bedeviled by a .362 BABIP, so the Cubs are trying to “reset” him a bit in the minors. zBB is less alarmed about Sandy Alcantara than you might expect from his numbers this year, especially early on (and he has in fact improved in recent weeks). He may very well end up being the most valuable trade candidate in July after all.
Now let’s look at strikeouts:
Name | SO | zSO | zSO Diff |
---|---|---|---|
Bailey Ober | 74 | 91.7 | -17.7 |
Jameson Taillon | 74 | 88.6 | -14.6 |
Antonio Senzatela | 42 | 55.9 | -13.9 |
Jeffrey Springs | 75 | 88.5 | -13.5 |
Tyler Phillips | 23 | 35.9 | -12.9 |
Justin Verlander | 55 | 67.3 | -12.3 |
Emmanuel Clase | 38 | 49.8 | -11.8 |
Hunter Dobbins | 43 | 54.3 | -11.3 |
Cade Horton | 33 | 44.2 | -11.2 |
Osvaldo Bido | 34 | 45.1 | -11.1 |
Angel Chivilli | 24 | 35.0 | -11.0 |
Randy Vásquez | 48 | 58.8 | -10.8 |
Mitchell Parker | 62 | 72.7 | -10.7 |
Keider Montero | 39 | 49.6 | -10.6 |
Spencer Schwellenbach | 108 | 118.0 | -10.0 |
Chase Shugart | 20 | 30.0 | -10.0 |
Kolby Allard | 14 | 23.7 | -9.7 |
Orion Kerkering | 32 | 41.3 | -9.3 |
Jimmy Herget | 30 | 39.0 | -9.0 |
Ben Casparius | 54 | 62.6 | -8.6 |
Name | SO | zSO | zSO Diff |
---|---|---|---|
Zack Wheeler | 126 | 101.9 | 24.1 |
Garrett Crochet | 135 | 114.7 | 20.3 |
Hunter Brown | 118 | 98.5 | 19.5 |
MacKenzie Gore | 129 | 111.6 | 17.4 |
Chad Patrick | 93 | 75.7 | 17.3 |
Joe Ryan | 104 | 86.9 | 17.1 |
Grant Holmes | 103 | 88.0 | 15.0 |
Yoshinobu Yamamoto | 101 | 87.4 | 13.6 |
Max Fried | 104 | 90.6 | 13.4 |
Félix Bautista | 41 | 28.6 | 12.4 |
Merrill Kelly | 100 | 87.7 | 12.3 |
Seth Lugo | 76 | 64.1 | 11.9 |
Jack Flaherty | 100 | 88.2 | 11.8 |
Ranger Suárez | 67 | 55.4 | 11.6 |
Will Warren | 103 | 91.7 | 11.3 |
Cole Ragans | 76 | 64.8 | 11.2 |
Chris Sale | 114 | 102.9 | 11.1 |
Chris Bassitt | 93 | 82.0 | 11.0 |
Drew Rasmussen | 72 | 61.1 | 10.9 |
Nick Pivetta | 101 | 90.2 | 10.8 |
zSO is only slightly more predictive than actual strikeouts, but the projections work best when they have access to both numbers. zSO’s strongest ability is identifying players whose contact rate is a bit out of whack with their strikeout rate.
One thing you might notice is that there tend to be more veterans among the overachievers than the underachievers. There’s actually something to that! It wasn’t my original intention, but the relationship between plate discipline and strikeouts appears to be capturing some kind of ability, whether you call it “veteran moxie” or “pitchability” or whatever, that isn’t measured well by the data. The zSO model actually improves significantly if you include service time as one of the inputs, but I excluded it here simply because I’m trying to only utilize performance rather than these “extra” characteristics. When ZiPS interprets this data in a projection, it believes overachieving a bit more for younger pitchers and underachieving a bit less for older pitchers. This is a work in progress; I’ve been exploring the interaction of repertoire, sequencing data, and strikeouts, which appears to have promise. For now, don’t get too excited or panicky about this data, even though it remains useful!
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.
Thanks for publishing this, it’s cool!
Lots of Red Sox and former Red Sox here! I’m glad to see there may be some regression for Houck and Buehler. Hopefully the Sox haven’t stacked too many losses before that happens to lose a playoff spot. It also looks like the positive regression has a chance to balance the negative regression.