Jeff Hoffman Has Finally Found a Home

Remember when the Blue Jays and Rockies connected for a blockbuster deal that sent Troy Tulowitzki to Toronto? That was eight years ago today, and that was also when Jeff Hoffman was a top prospect. A year before that, the young right-hander was so highly touted that even though news of a torn UCL surfaced weeks before draft day, the Jays still took him ninth overall. Sure enough, he rewarded them by touching 99 in his pro debut at High-A Dunedin the next season and the Jays rewarded him by… trading him to the Rockies two months later.
The state motto of Colorado is “Nil Sine Numine,” or “Nothing without Providence,” but it might as well be “Ubi Iuvenēs Iactūs Eunt Morior,” or (if my high school Latin isn’t failing me), “Where Young Pitchers go to Die.” Perhaps it’s due to the inherent discouragement that comes from pitching on the moon, or the lack of investment in player development. Either way, Hoffman’s tenure with the Rockies started innocently enough. He tossed 118.2 innings of 4.02 ERA, 4.13 FIP ball — with a 24.2% K rate to boot — in the notoriously offense-heavy Pacific Coast League in just his second pro season (2016), earning him his first taste of the majors. But as most pitchers arriving on other planets do, the right-hander struggled to the tune of a 4.88 ERA and 6.27 FIP in 31.1 innings spread over eight appearances (six starts).
Over the next four seasons, Hoffman split his time between Triple-A and the majors. He received extended looks in the big league rotation in 2017 and 2019, but he floundered both times. Overall, he tossed 230.2 innings for Colorado’s big league club with a 6.40 ERA and 5.58 FIP, and he didn’t even crack a 2:1 strikeout-to-walk ratio. To make matters worse, after that stellar Triple-A debut in 2016, he pitched to a 5.87 ERA and 4.77 FIP in 243.2 innings in the minors (all but three frames at the highest level) from 2017-19. But the strikeout potential was still there; he also K’ed 23.1% of the hitters he faced in the minors during that time.
The rebuilding Reds were the next team to take a crack at unleashing that potential in the majors, but Hoffman was a different pitcher from the one who debuted in Dunedin. For starters, his velocity had grown inconsistent; he averaged 94.4 mph on the heater in his first extended look in 2017 before that dropped to 92.7 in 2018 thanks to a shoulder strain that delayed the start of his season. It didn’t fully bounce back the next year either, averaging 93.7. Perhaps the lone positive development from his time in Colorado was the introduction of a splitter; more on that later.
But in terms of velocity, it took a move to the bullpen in 2020 to bring it all the way back to 94.4 The Reds were probably curious if it would remain elevated given a starter’s workload. But another major change from the Hoffman of yore was that his shoulder was now a vulnerability; it gave out again after 10 starts of 4.61 ERA, 4.66 FIP ball to begin the 2021 season. He made just one more start after returning, a four-inning, five-run clunker, before the Reds decided to pull the plug on the Hoffman-as-a-starter experiment.
That may have been the best thing to possibly happen. After posting a meager 4.3% K-BB rate through 11 starts, Hoffman improved that mark to 20.2% through 28 innings out of the ‘pen the rest of the season. Perhaps even more promising, his fastball velocity spiked, flirting with 97 mph by year’s end. Yet, it dropped back to 94.2 the next season — and his K-BB rate dropped to 11.2% — even though he pitched almost exclusively in relief, thanks to some forearm and elbow issues that prompted Cincinnati to non-tender him in the offseason.
The Phillies decided to take a flier on the right-hander, who had been so close to putting it all together, inking him to a minor league deal. Sure enough, that’s when everything clicked. With a healthy elbow, a new strength routine, and a short relief role out of the gate, Hoffman struck out 16 of the 39 Triple-A hitters he faced before receiving a call-up. Better yet, he averaged 96.9 mph on the heater in the minors, and he’s been at 97.1 across 26.2 major league frames. The pitch that’s benefitted the most from the increased velo? His splitter.
Hoffman’s fastball prior to this year reads like a roadmap of his career, that of the one-time prospect four different orgs have left their mark on: higher velocity one season, a dip the next, and finally a plateau. More run one year, more carry the next, settling somewhere in between. Even this year, the pitch’s run value has simply been “less negative.” I’m not convinced this is its best version, and he’s throwing it less often than ever. Meanwhile, the slider has saved Hoffman runs in each of the last three seasons, but it’s also spanned three different shapes. Plus, it cost him in each of his first three pro seasons before he basically scrapped it from 2019-20. Yet, each iteration of his splitter has been better than the last, and I think that it’s the pitch that best reflects how much Hoffman has learned at each step of the way.
The following is a graph (courtesy of Brooks Baseball, which uses Pitch Info — everything else in this piece is per Statcast) of horizontal vs. vertical movement for all of Hoffman’s pitches, with each dot representing one pitch’s profile for a single season. I’ve pointed out this season’s pitches (oh yeah, Hoffman flirted with a curveball and a changeup early on too):
The slider has had more drop and more horizontal movement in some previous seasons while the fastball has had more carry and the same amount of run. The velocity is helping these shapes play up, but again, that doesn’t mean they’re the best shapes. Yet, Hoffman’s splitter has added more run and been more effective each year, making it clearer what shape works best for the pitch. Even going from 2020 to 2021, when the split sacrificed a considerable amount of drop for a bit more run (and added only about half a tick in velocity), it improved by run value. Now, at a higher velocity than ever, it has more run than ever too. Observe it in all its glory here:
What’s all that velocity and run amounted to? A 144 Stuff+ and a 20.8% swinging-strike rate. The slider, with an 18.2% swinging strike rate, and the fastball, with its improved velocity, have pushed their way into the 120s themselves. That’s resulted in a 129 overall Stuff+ mark, tied for 15th among the 452 pitchers with at least 20 innings this year. In other words: Hoffman is nasty.
The best part is that he knows it and he’s using that knowledge to further improve his game. In an interview with The Philadelphia Inquirer’s Alex Coffey in May, Hoffman stated: “My stuff hasn’t been this good since I left college.” As a result, he’s trusting it far more, with his highest Zone% since 2020. After seeing so many different versions of himself over the years, of course he’d be able to recognize the best iteration. I hope this article helps the rest of us recognize and appreciate it as well.
Alex is a FanGraphs contributor. His work has also appeared at Pinstripe Alley, Pitcher List, and Sports Info Solutions. He is especially interested in how and why players make decisions, something he struggles with in daily life. You can find him on Twitter @Mind_OverBatter.
I often wonder how many pitchers could have had really decent MLB careers and just got wrecked by Colorado. If I was a pitcher with any modicum of leverage I would tell the Rockies to eff off.
Honestly, even getting drafted by Colorado seems like a death knell to starters. Not necessarily relievers, but definitely starting pitchers.
Of course, it doesn’t help that their approach to drafting pitchers isn’t actually tailored to Coors, but that’s a separate matter.
I’m not sure the Rockies really understand altitude – or care. Altitude kills stuff – and altitude will always kill stuff. Altitude has little effect on deception or funkiness or head games or control or pitch selection. Those are two different pitchers.
I don’t understand why the Rockies don’t focus on getting the latter and giving them long-term contracts as soon as they know they can work at Coors and have them then mostly work at Coors. Against visiting teams full of stuff pitchers who are petrified of Coors. At Coors – find pitchers who just thrive on winning rather than shiny numbers and pitching awards.
Or why they do try to find stuff pitchers and develop them for altitude. Rather than just develop them for what they are and find out quickly whether they will deal with altitude. And if they can’t, position them for trade with shinier stats and pitching mostly on the road. Half the games are on the road. Salvage those ‘mistakes’ – stuff pitchers – via trade value. Which would also help the Rockies road record because those ‘mistakes’ are also the pitchers who thrive everywhere else but Coors.
At Coors, Kershaw is a 4.6 ERA and 1.3 WHIP pitcher who averages just short of 6 innings and a win % slightly above .500
Jorge de la Rosa is a 4.4 ERA and 1.4 WHIP pitcher who averages just under 6 innings and a win% of .726
Schedules make it impossible to pitch someone only at home or only on the road while maintaining any kind of routine. What’s a Coors-oriented guy supposed to do when the team is on a 9-game road trip, or vice versa?
Schedules and off-day routines are not impossible to figure out. Probably far cheaper to figure that out than it is to keep breaking pitchers and destroying trade value.
And Mike Petriello wrote an article about just that subject in March 2015 on this very website.
Depends what you mean by “stuff.” High-spin pitchers do not pitch well at altitude, or at least they have to pitch very differently since things just don’t spin right. But you can still have good “stuff” that doesn’t rely on high spin. There are pitchers who throw “gyro ball” sliders that are devastating. Throwing harder plays better everywhere. Changeups play differently but they are still useful.
What I call stuff is what is called stuff+ on the pitch modelling here. Those don’t work the same at altitude because of the lower air density. And all data/stats about their effectiveness will exclude altitude precisely because that is outlier data. Any recommendations based on those analytics are also therefore baseless for use at altitude.
At core that is why the only way to preserve trade value for a Rockies pitcher who can’t pitch well at Coors is for them NOT to pitch at Coors. Or alternatively stated, for them to pitch at not-coors as much as feasible as long as they are with the Rockies.
The other 29 teams don’t care about Coors and don’t understand why saber data doesn’t work there and use analytics where Coors is always an outlier and normal stats doesn’t do outliers well. Those 29 are who decide trade value.
I knew this was going to end badly. He was a fastball-curveball guy and that “stuff” plays very differently in Colorado than anywhere else, and shortly after they traded for him the front office started going on a tour, telling anyone who would listen that they were going to be throwing four-seamers and curveballs from now on. He even did an interview with Travis Sawchik here where he said the same thing.
But the thing is, what they were doing was essentially transforming the curveballs into a splitter because it doesn’t spin like a curveball at altitude. That can work, but for a high spin guy like Hoffman it doesn’t play the same way. And his home/road splits were enormous as a result. He still needed a breaking ball, and he didn’t start throwing one more often than his curveball until he left and went to the Reds (unless you count 8 innings in 2018).
Ironically, the sort of pitcher that Hoffman is now would play pretty well in Colorado. He has a fastball, but he throws his slider and splitter at least as much. He seems to have ditched the curveball entirely. As far as I can tell, he barely threw a splitter at all until he got to the Reds, and increased his slider usage by a lot there too.