While there’s still a bit of baseball left to be played, this is always the time of the year when I dissect the current season’s ZiPS projections. Baseball history is not so long that we suffer from a surfeit of data, and another season wrapped means more for ZiPS to work with. ZiPS is mature enough at this point that (sadly) the major sources of systematic error have been largely ironed out, but that doesn’t mean that the model doesn’t learn new things from the results.
Last week, we looked at the team projections. Now, we turn our eyes to the hitters. Given the length of the 2020 season, the accuracy and bias of hitters’ projections this year likely offer fewer broadly applicable lessons, but they can still help us learn something about how projections ought to treat truncated seasons.
The first thing I can say with confidence is that, at least when it comes to ZiPS, there was no group tendency that could be gleaned from the projection errors. I assessed the errors using a variety of tools to see if certain types of players had more or less accurate projections or a 2020 tendency to over- or underperform the projections as a group. For instance, did fastball hitters fare better or worse? Did young players, or faster players?
The answer for these and other similar comparisons I looked at was no; none of these attributes had significant predictive value when it came to the magnitude of the errors or the bias of the projections. That’s good news in that 2020 didn’t feature any new calibration errors, but bad news in that we didn’t really learn anything new about short seasons. If, for example, my analysis had revealed that older hitters overperformed their projections as a group, it may have given us new insight into how aging players can better maintain their performance in 60 games rather than 162. On the whole, the errors were uncorrelated in this manner. The exception was the usual one: players with shorter resumés had less accurate projections than players with longer ones, but that’s always the case.
So, let’s go through the various categories and take a look at the biggest over- and underachievers, at least relative to what ZiPS thought. 100 plate appearances were required to make these lists.
First up: batting average.
Player | BA | ZiPS BA | Miss |
---|---|---|---|
Jo Adell | .161 | .273 | .112 |
Christian Yelich | .205 | .300 | .095 |
Gary Sánchez | .147 | .242 | .095 |
Omar Narváez | .176 | .270 | .094 |
Shohei Ohtani | .190 | .284 | .094 |
Luis Rengifo | .156 | .247 | .091 |
Gregory Polanco | .153 | .244 | .091 |
Scott Kingery | .159 | .247 | .088 |
Jose Altuve | .219 | .303 | .084 |
Edwin Encarnación | .157 | .241 | .084 |
Ender Inciarte | .190 | .273 | .083 |
Elvis Andrus | .194 | .276 | .082 |
Daulton Varsho | .188 | .270 | .082 |
Willie Calhoun | .190 | .269 | .079 |
J.D. Martinez | .213 | .291 | .078 |
Hunter Renfroe | .156 | .233 | .077 |
Bryan Reynolds | .189 | .263 | .074 |
Tyler O’Neill | .173 | .245 | .072 |
Rougned Odor | .167 | .238 | .071 |
Javier Báez | .203 | .273 | .070 |
Ehire Adrianza | .191 | .261 | .070 |
Kris Bryant | .206 | .269 | .063 |
The biggest disappointment to me on this list has to be Jo Adell, the only player who fell short of his projecting batting average by at least 100 points. There were no particular worries about Adell coming into the season; he was generally well-liked by both the projections and scouts, though Eric Longenhagen did note that strikeout issues might limit his production upon his initial big-league promotion. Sure, he was far from amazing in his short stint in Triple-A in 2019 (.264/.321/.355), but a 42% strikeout rate en route to a pitcher-esque .161/.212/.266 line is just a miserable season. And he’s not even eligible for the Rookie of the Year award in 2021; MLB adjusted the service time requirements so that September roster days do count towards rookie status.
Meanwhile, a few other players can at least point to injuries as mitigating factors for their underperformance. Willie Calhoun returned from an extremely painful broken jaw. Shohei Ohtani suffered from a sore forearm that left him unable to pitch, and while I’m not a hitting mechanics expert, I’d assume having use of your arms helps you at the plate.
Christian Yelich was a stupefying miss, but in his case, at least he can complain about a BABIP 95 points lower than his career numbers to help explain his down season. There are still concerns here — for example, his contact numbers continuing to worsen even as he was more selective at the plate — but I’m not aboard the panic bus just yet.
Others can join Yelich on the BABIP Blame Train, including Gary Sánchez (.159 BABIP), Edwin Encarnación (.156), Hunter Renfroe (.141), Rougned Odor (.157), and Tyler O’Neill (.189). Sixty games is brutal for these kinds of BABIP misses and there’s little reason to think that sub .200 BABIPs are ever real for legitimate major league hitters. After all, pitchers across the majors had a .243 BABIP in 2019.
Player | BA | ZiPS BA | Miss |
---|---|---|---|
José Iglesias | .373 | .267 | -.106 |
Willi Castro | .349 | .254 | -.095 |
Salvador Perez | .333 | .247 | -.086 |
Max Stassi | .278 | .203 | -.075 |
Alec Bohm | .338 | .265 | -.073 |
Brandon Belt | .309 | .236 | -.073 |
Ryan Mountcastle | .333 | .262 | -.071 |
DJ LeMahieu | .364 | .294 | -.070 |
Michael Conforto | .322 | .257 | -.065 |
Jared Walsh | .293 | .228 | -.065 |
Dominic Smith | .316 | .251 | -.065 |
Donovan Solano | .326 | .262 | -.064 |
Travis d’Arnaud | .321 | .258 | -.063 |
Nick Madrigal | .340 | .278 | -.062 |
Jeimer Candelario | .297 | .237 | -.060 |
Robinson Canó | .316 | .258 | -.058 |
Marcell Ozuna | .338 | .281 | -.057 |
Juan Soto | .351 | .295 | -.056 |
Pat Valaika | .277 | .221 | -.056 |
Trea Turner | .335 | .280 | -.055 |
Dylan Moore | .255 | .201 | -.054 |
Will Smith | .289 | .236 | -.053 |
Raise your hand if you had the season’s big breakout candidate as José Iglesias! OK, put your hands down, liars. Iglesias was one of six players to put up a .400 BABIP in 2020 and five of them (Iglesias, Castro, d’Arnaud, Bohm, and Conforto) made this list. The more interesting names are the ones who overperformed despite only moderate BABIP spikes: Juan Soto cut a quarter of his strikeout rate, as did Max Stassi in more limited time. DJ LeMahieu kept 2019’s power while actually improving his contact numbers as well; I haven’t run the official projections yet, but I’m quite confident that his will put him in the elite second baseman category, even given the realities of being an over-30 middle infielder.
Name | SLG | ZiPS SLG | Miss |
---|---|---|---|
Willie Calhoun | .260 | .495 | .235 |
Carter Kieboom | .212 | .413 | .201 |
Eric Thames | .317 | .507 | .190 |
Joey Gallo | .378 | .566 | .188 |
Jo Adell | .266 | .450 | .184 |
Gleyber Torres | .368 | .551 | .183 |
Luis Rengifo | .200 | .382 | .182 |
Omar Narváez | .269 | .445 | .177 |
Eduardo Escobar | .335 | .500 | .165 |
Shohei Ohtani | .366 | .525 | .159 |
Jose Altuve | .344 | .502 | .159 |
Gary Sánchez | .365 | .523 | .157 |
J.D. Martinez | .389 | .546 | .157 |
Daniel Murphy | .333 | .488 | .154 |
Roberto Pérez | .216 | .370 | .153 |
Javier Báez | .360 | .512 | .152 |
Kris Bryant | .351 | .502 | .151 |
Avisaíl García | .326 | .475 | .149 |
Tommy Pham | .312 | .460 | .148 |
Nomar Mazara | .294 | .440 | .146 |
Shogo Akiyama | .297 | .441 | .145 |
Ender Inciarte | .250 | .393 | .143 |
Since there’s a lot of BA in SLG, there are some holdovers here. But there are some definite power disappointments, too. Carter Kieboom’s rookie season being more of a Kersplat than a Kieboom worries me; he only had a single extra-base hit in 122 plate appearances. He had more than that in 43 plate appearances in his 2019 debut! An 85 mph average exit velocity isn’t very exciting, nor the zero barrels he hit. Joey Gallo’s low average doesn’t worry me, but his lack of 2020 power certainly does. Gallo’s statcast data was down across the board and it’s a major concern for the Rangers as they can’t put together an offense that even aspires to being “normal-bad” without him producing.
The outlook may be especially worrisome for Kris Bryant. Even worse than slugging .351 is the numbers extrapolated from advanced data thinking you were fortunate to slug .351; his Statcast data led ZiPS to conclude he should only have slugged .344 in 2020. His oblique issue mitigates this somewhat, but at least hitters like Gallo and J.D. Martinez had slightly better power data than their bottom-line numbers.
Name | SLG | ZiPS SLG | Miss |
---|---|---|---|
Jared Walsh | .646 | .439 | -.208 |
Dominic Smith | .616 | .409 | -.206 |
Salvador Perez | .633 | .453 | -.180 |
Jose Iglesias | .556 | .383 | -.173 |
Brandon Belt | .591 | .418 | -.172 |
Willi Castro | .550 | .380 | -.170 |
Max Stassi | .533 | .367 | -.166 |
Alex Dickerson | .576 | .411 | -.165 |
Wil Myers | .606 | .444 | -.162 |
DJ LeMahieu | .590 | .435 | -.155 |
JaCoby Jones | .515 | .361 | -.155 |
James McCann | .536 | .382 | -.155 |
Anthony Santander | .575 | .422 | -.153 |
Dylan Moore | .496 | .351 | -.146 |
Robinson Canó | .544 | .398 | -.145 |
Jose Abreu | .617 | .472 | -.144 |
Byron Buxton | .577 | .439 | -.138 |
Juan Soto | .695 | .560 | -.134 |
Mike Yastrzemski | .568 | .436 | -.132 |
Jake Cronenworth | .477 | .346 | -.131 |
Trea Turner | .588 | .458 | -.130 |
Marcell Ozuna | .636 | .508 | -.128 |
ZiPS is a bit more skeptical about LeMahieu’s SLG than it was in 2019, but his BA projection will likely be strong enough that a drop in power won’t even matter. The players on this list ZiPS is the most confident will maintain their newfound thump are Juan Soto (some of this is BA) and Byron Buxton, who ZiPS thought should have slugged .540, which would be mighty impressive if he can stay healthy for an entire season one of these years. Jake Cronenworth’s .525 zSLG was actually even better than his actual bump to .477.
There are a lot of repeats in the overall OPS misses, so these tables are mostly for historical reference.
Name | OPS | ZiPS OPS | Miss |
---|---|---|---|
Willie Calhoun | .491 | .823 | .332 |
Jo Adell | .478 | .776 | .298 |
Gregory Polanco | .539 | .782 | .244 |
Joey Gallo | .679 | .920 | .241 |
Jose Altuve | .629 | .867 | .238 |
Luis Rengifo | .469 | .704 | .235 |
Eric Thames | .617 | .851 | .234 |
Omar Narváez | .562 | .794 | .231 |
J.D. Martinez | .680 | .911 | .231 |
Gary Sanchez | .618 | .847 | .228 |
Kris Bryant | .644 | .870 | .226 |
Javier Báez | .599 | .824 | .225 |
Daniel Murphy | .608 | .832 | .224 |
Eduardo Escobar | .605 | .822 | .216 |
Ender Inciarte | .512 | .727 | .215 |
Shohei Ohtani | .657 | .871 | .214 |
Tommy Pham | .624 | .829 | .205 |
Scott Kingery | .511 | .707 | .196 |
Edwin Encarnación | .627 | .822 | .195 |
Carter Kieboom | .556 | .750 | .193 |
Nolan Arenado | .738 | .930 | .193 |
Josh Bell | .669 | .857 | .188 |
Name | OPS | ZiPS OPS | Miss |
---|---|---|---|
Dominic Smith | .993 | .716 | -.277 |
José Iglesias | .956 | .687 | -.269 |
Brandon Belt | 1.015 | .760 | -.255 |
Salvador Perez | .986 | .736 | -.250 |
Willi Castro | .932 | .685 | -.247 |
Max Stassi | .886 | .643 | -.243 |
Jared Walsh | .971 | .735 | -.236 |
DJ LeMahieu | 1.011 | .781 | -.230 |
Dylan Moore | .855 | .631 | -.224 |
Mike Yastrzemski | .968 | .747 | -.221 |
Alex Dickerson | .947 | .731 | -.216 |
James McCann | .896 | .683 | -.214 |
Marcell Ozuna | 1.067 | .856 | -.211 |
Juan Soto | 1.185 | .975 | -.210 |
JaCoby Jones | .849 | .644 | -.204 |
Miguel Rojas | .888 | .686 | -.202 |
Wil Myers | .959 | .760 | -.200 |
Darin Ruf 러프 | .887 | .691 | -.197 |
Jose Abreu | .987 | .793 | -.194 |
Donovan Solano | .828 | .636 | -.192 |
Robinson Canó | .896 | .708 | -.188 |
Will Smith | .980 | .793 | -.187 |
The other useful question to ask is how did ZiPS fare in terms of its calibration? Remember, there’s more than a mean projection for each player; every player is given X% chance at hitting .300 or .350, or slugging .500, etc. ZiPS only projected four players with a .300 BA or better mean projection, but that’s not the same thing as saying that only four players will hit .300 because most players aren’t expected to be at their mean projections. This is one of the more depressing parts of working with projections, the knowledge that being too correct is also a miscalibration in a very real sense. In this case, ZiPS thought that 41.3 players would in fact hit .300 in a short season, while 39 actually did (keeping the 100 PA minimum).
Category | ZiPS Expected | Actual |
---|---|---|
>.400 BA | 0.1 | 0 |
>.350 BA | 4.2 | 3 |
> .300 BA | 41.3 | 39 |
<.200 BA | 38.6 | 35 |
<.150 BA | 3.2 | 1 |
>.700 SLG | 1.0 | 0 |
>.600 SLG | 10.6 | 11 |
>.500 SLG | 58.4 | 62 |
<.400 SLG | 127.1 | 132 |
<.300 SLG | 26.6 | 22 |
>.400 OBP | 20.3 | 18 |
<.300 OBP | 90.3 | 84 |
>1.000 OPS | 6.0 | 5 |
<.600 OPS | 30.5 | 28 |
While ZiPS was generally well-calibrated in this manner, it did see slightly more spread at the extremes than in reality, mostly in the BABIP components. This is useful information for any future shortened seasons, knowledge that hopefully will never actually prove useful!
In the next part, we’ll take a look at the pitchers.
Read More