The 2019 Hitter Projections: Where Did We Go Wrong?

If the other projectionators are anything like me, the projections going awry, afoul, or askew is always something in the back of their minds. Ideally, one should make projections, let the rubber hit the road, and then worry about what actually happened in the fall post-mortems. As much as I’d like to do that, when ZiPS makes an aggressive projection in one direction or the other, especially one that departs from the consensus of the other projection systems, I can’t help but look over my shoulder. Yesterday, I looked at pitchers for whom ZiPS missed the mark. Today, I consider the other side.

Among hitters, no projection has haunted my dreams as much as Juan Soto’s. Yes, Juan Soto was a superstar in 2018. Yes, he was just 19 when he destroyed the National League. Yes, everybody loves him as a player, not just the projection systems. However, in this case, ZiPS went out on a bit of a limb with Soto. Rather than the typical curmudgeonly regressing-toward-the-mean, ZiPS saw Soto playing even better, projecting a ninth-place finish in WAR among position players. Soto hasn’t been a disappointment, and ZiPS hasn’t been totally wrong, but the modest 23-point differential between ZiPS and reality grows larger once you consider that ZiPS missed low on the level of offense around the league.

ZiPS vs. Consensus, 2019 Hitters
Name Consensus OPS ZiPS OPS Diff
Juan Soto .906 .959 .053
Cody Bellinger .837 .889 .052
Joey Gallo .843 .889 .046
Christian Walker .721 .764 .043
Eloy Jimenez .820 .863 .043
Adalberto Mondesi .717 .758 .041
Eduardo Escobar .760 .798 .038
J.T. Realmuto .802 .838 .036
David Dahl .807 .840 .033
Ben Gamel .712 .744 .032
Grayson Greiner .648 .602 -.046
Mitch Garver .723 .677 -.046
Tyler Flowers .740 .694 -.046
Elias Diaz .727 .682 -.045
Jorge Alfaro .658 .614 -.044
Lourdes Gurriel Jr. .722 .678 -.044
Albert Pujols .704 .660 -.044
Jose Abreu .837 .795 -.042
Bryan Reynolds .686 .645 -.041
Robinson Cano .802 .763 -.039

It’s interesting to see where ZiPS differed the most from the other three projection systems used here. Do note that the “Consensus OPS” will vary slightly from what you see in the following tables, as ZiPS is not included in these consensus stats. ZiPS in 2019 tended to like a lot of the mid-20s “interesting” power prospects while simultaneously liking middling young catchers less than the other systems. That’s something that hadn’t come up in previous seasons, so I’m curious to see whether it continues and what it means. The data used by ZiPS versus that used by the other systems means it isn’t always going to be an apples-to-grenades comparison.

As with the pitchers, ZiPS is very close in accuracy to the consensus projections, but slightly behind (again, as I expect it to be). For the bias-adjusted projections, the consensus has an RMSE (root-mean-square error) of 0.1072 in OPS compared to ZiPS’ .1076. If these were the end-of-year results, we’d all be very depressed, but half-year stats are quite volatile!

Worst 2019 Hitting Projections (Too Pessimistic)
Name Consensus OPS Actual OPS Diff
Fernando Tatis Jr. .703 1.026 .323
Lourdes Gurriel Jr. .711 1.009 .298
Scott Kingery .661 .959 .298
Cody Bellinger .850 1.137 .287
Bryan Reynolds .676 .956 .280
Hunter Dozier .676 .952 .276
Hunter Pence .701 .962 .262
Mitch Garver .712 .972 .261
Joey Gallo .855 1.109 .254
Eric Sogard .635 .884 .249
James McCann .646 .890 .245
Josh Bell .791 1.035 .244
Christian Yelich .897 1.139 .243
Peter Alonso .759 .999 .240
Kevin Newman .652 .855 .204
Oscar Mercado .636 .837 .201
Pedro Severino .629 .829 .201
Howie Kendrick .749 .947 .198
Pablo Sandoval .679 .877 .198
Carson Kelly .685 .881 .197

Everyone liked Fernando Tatis Jr. over the long haul prior to his debut, but it was an open question whether or not everything would click in 2019. Everything has clicked in 2019. It’s easy to forget that Tatis only played a little more than half of a season in Double-A in 2018, and missed significant time due to a broken thumb. That he has succeeded does not mean it was a certainty coming into the season, so I’ll live with being wrong here. In a way, Tatis’ explosion reminds me of Hanley Ramirez’s back in the day. Not that Tatis and Hanley are or were comparable players, but the magnitude of their respective rookie explosions is similar.

What will haunt me is the Gurriel projection. The consensus was wrong on Gurriel, but if you scroll up to the first chart, ZiPS was really, really wrong on Gurriel. What makes it even more maddening is that I’m still not sure why. Gurriel’s launch angle is up and he’s hitting more barrels, but he’s also exhibiting this weird combination of swinging at fewer pitches and making even less contact than in 2018. ZiPS is coming around on Gurriel, and his rest-of-season projection now stands a stunning 73 points of OPS above his preseason projection. If we used the full-on ZiPS rather than the simpler in-season model that increase would be 94 points! The computer understands the improvement better than I do apparently.

ZiPS liked Joey Gallo more than the consensus, but still undershot Gallo’s OPS (so far) by more than 100 points. I can at least get my head around Gallo’s improvement. While a .391 BABIP is unlikely to be sustainable, there’s been a real change in his approach at the plate. In 2018, Gallo swung at 32.2% of pitches outside the strike zone; that ranked him 152nd in baseball if we use 300 plate appearances as our cutoff. In a single year, he’s cut off nearly a third of that, with his 22.5% ranking 21st-best among players with 150 plate appearances. While he’s also swinging at fewer pitches in the strike zone, the dropoff isn’t to the same degree. Even if his BABIP drops precipitously from .391, it may not drop down to previous levels. Gallo had a .250 BABIP in 2017 and a .249 BABIP in 2018, but the ZiPS model for BABIP that uses hit ball data thinks he “ought to” have put up a .301 BABIP over that period. That’s the largest deviation among hitters, suggesting that there was some hidden upside in there. ZiPS only projected a .273 BABIP — the longer a player underperforms, the more likely ZiPS is to believe reality rather than the estimate — but now thinks he’s somewhere around .300 again.

Baseball’s having a low-ball moment. Using Statcast’s strike zone, the rate at which home runs are being hit on low pitches is up 62% from 2018. 409 balls below the strike zone were hit for homers last year; this year we’re already at 347! Does this have an effect on the projections? Looking at the projections as a whole, there’s a real relationship between a hitter’s low-ball hitting ability and him beating the 2019 projections. This is something to come back to in the season’s post-mortem. The number of golf ball homers being hit would make a 1970s hitting coach cringe!

Worst 2019 Hitting Projections (Too Optimistic)
Name Consensus OPS Actual OPS Diff
Jose Ramirez .902 .634 -.268
Travis Shaw .813 .568 -.245
Kendrys Morales .760 .566 -.194
Danny Jansen .741 .548 -.193
Carlos Gonzalez .756 .572 -.184
Jesus Aguilar .810 .631 -.179
Yonder Alonso .752 .576 -.176
Daniel Descalso .726 .554 -.172
Eduardo Nunez .725 .572 -.153
Chris Davis .685 .533 -.152
John Hicks .685 .535 -.150
Juan Lagares .654 .504 -.150
Starlin Castro .717 .571 -.146
Matt Carpenter .851 .706 -.145
Austin Hedges .701 .558 -.143
Mike Zunino .699 .557 -.142
Paul Goldschmidt .881 .741 -.140
Robinson Cano .792 .653 -.139
Jeimer Candelario .731 .595 -.136
Rougned Odor .763 .629 -.134

Oh, J-Ram, did you anger a sorcerer? Unless I missed something, if Ramirez’s season ends up with this OPS, it will be the least accurate projection for a batter coming off a five-WAR season in ZiPS history. Now, ZiPS only goes back to the early years of the millennium, but still, that’s not a feather in ZiPS’ cap.

Naturally, coming off a drug suspension, there are eyebrows being raised at Robinson Canó’s disappointing season in New York. It’s tempting to take the bait and worm out of a bad projection, but with nearly 15 years of drug testing, ZiPS still can’t find a pattern of group over-performance or underperformance based on the timing of a drug suspension. I think the more boring story — that a 36-year-old middle infielder is declining rapidly — is the more accurate one.

Danny Jansen fits in the category of “wrong, but in a very weird way.” ZiPS was relatively negative on Jansen coming into the season, projecting a .243/.332/.385 line, a full 61 points of OPS below what the fans estimated. Coming off a .247/.342/.432 debut and a strong performance in Triple-A, people expected more. Readers north of the border let me have it (though politely, because Canada). ZiPS turned out to be wrong, but in the opposite direction: Jansen now at .196/.278/.314 for the Jays.

Dan Szymborski is a senior writer for FanGraphs and the developer of the ZiPS projection system. He was a writer for 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.

Newest Most Voted
Inline Feedbacks
View all comments
Aaron (UK)
4 years ago

Ah, but Juan Soto is up to .960 now after going {2-for-3, HR, 3B, BB} vs the Marlins last night. +1 for ZiPS.

4 years ago
Reply to  Aaron (UK)

I think that kid’s gonna be a player

4 years ago
Reply to  Aaron (UK)

Soto, actual: .301/.406/.554
ZiPS preseason: .296/.400/.559

I’d call that a win.

4 years ago
Reply to  cowdisciple

He also posted a .923 OPS last year. Simply projecting anything using that data would be a win.