The Best (Expected) Fastballs of 2019

If you’re into FanGraphs’ linear pitch values, there was a many-way tie for the single most valuable pitch of the year. As the pitch values are context-neutral and count-adjusted, the best pitch you can throw is a 3-0 pitch that retires a batter. 3-0 is the worst count you can be in as a pitcher, and an out is the best possible outcome. Here’s one:

Wait a second. That doesn’t look like a very good pitch at all! Yasiel Puig got robbed there; that’s a 400-foot laser beam, at pretty much the optimum home run angle. He just happened to catch the deepest part of the park, and Starling Marte is fast.

Yes, linear weights aren’t perfect. We all know that. Many of their problems are nearly impossible to fix; if a pitcher’s fastball helps set up his slider, should it get credit for some of the slider’s effectiveness? If he’s staying away from Juan Soto with first base open and a man on third, should we dock those pitches for being outside the strike zone? Pitch values have their fair share of problems.

But if we can’t fix all of those problems, we can at least tackle one. When a ball is nailed like Puig did with that one, it’s usually a hit. Since 2015, we’ve had access to xwOBA, which (roughly speaking) considers the speed and angle of a given hit to assign it a value. Rather than look at the result on the field, it looks at the results of all similar batted balls. It has its shortcomings (largely related to spray angle), but it sure beats calling that Jordan Lyles pitch a good one.

I went back through every pitch thrown in 2019 and converted the batted balls from wOBA (what happened) to xwOBA (what we would expect to happen on average). For all the non-contact results, I left the pitches exactly as they were. A strike to get from 1-0 to 1-1, for example, is worth the difference in expected production between batters after 1-0 counts and batters after 1-1 counts.

With the x-results for batted balls and the realized results for balls and strikes, we’ve got the whole ball of yarn. We simply look at the change from one state to the next for every pitch, convert from wOBA to runs, and go from there. Let’s use another Pirate as an example. Trevor Williams threw 1,208 four-seam fastballs this year. On 989 of them, there was no fair contact. Batters put the other 219 in play:

Trevor Williams’ Fastballs
Pitcher Non-Contact FF Contact FF Total FF
Trevor Williams 989 219 1208

Those 989 fastballs batters didn’t put in play were mostly excellent. Overall, Williams saved 21.2 runs with balls and strikes. And that’s true broadly as well; pitchers as a whole saved 1.5 runs per 100 fastballs they threw that weren’t put in play. Williams is slightly ahead of the pack there, but not by much.

When batters put the ball in play against a Williams fastball, they were rewarded. For every 100 fastballs batters put in play, they added 9.1 runs relative to average. That sounds bad, and it is — but that’s because batters do damage on all the fastballs they connect with. The league as a whole added 8.6 runs per 100 four-seam fastballs put in play.

Williams, in fact, was slightly better than league-average when it comes to fastballs. The average fastball has a negative run value, which makes sense; batters do best against fastballs, and since the overall value of every pitch thrown in baseball this year sums to zero, some pitches have to be negative. So overall, Williams was worth one run above average with his fastballs:

Trevor Williams’ Fastballs
Pitcher Non-Contact FF Non-Contact Runs Contact FF Contact Runs Total FF Total Runs
Trevor Williams 989 18.1 219 -17.2 1208 0.9

He was worth -4.1 runs by traditional pitch values. Unlike Lyles, Williams was unlucky when opponents put his fastball in play. Said another way, he allowed a .425 wOBA when batters put his fastball in play, but only a .402 xwOBA.

Roughly speaking, most pitchers are like Williams; their x-pitch values are different from their regular pitch values, but not hugely so. The top 10 is mostly guys you’ve heard of:

Best Four-Seam Fastballs, 2019
Pitcher xRuns/100 Pitches Total Runs FG Pitch Value Difference
Gerrit Cole 2.24 38.6 34.4 4.2
Lance Lynn 1.30 24.3 25.7 -1.4
Walker Buehler 1.35 20.1 21.6 -1.5
Chris Paddack 1.34 18.7 13.5 5.2
Jake Odorizzi 1.13 18.2 17.4 0.8
Emilio Pagán 2.74 18.0 11.8 6.2
Jacob deGrom 1.17 17.9 16.8 1.1
Max Scherzer 1.27 17.1 17.1 0.0
Blake Snell 1.75 15.9 8.6 7.3
Zack Greinke 1.22 15.6 16.9 -1.3

Aside from a knowing nod — of course Gerrit Cole gets better the more you look at him — there’s not much to say there. Good four-seam fastballs are good, albeit in a slightly different way. How about the pitchers who are helped out most by switching to expected results?

The Unluckiest Four-Seam Fastballs, 2019
Pitcher xRuns/100 Pitches Total Runs FG Pitch Value Difference
Dylan Bundy -0.58 -6.9 -21.7 14.8
Elieser Hernandez 0.31 2.4 -10.6 13.0
Mitch Keller 0.25 1.1 -10.4 11.5
Yusei Kikuchi -0.40 -5.1 -16.0 10.9
Matthew Boyd 0.80 12.2 1.9 10.3
Freddy Peralta 0.50 6.2 -2.6 8.8
Noah Syndergaard 1.00 9.1 0.6 8.5
Dylan Cease -0.89 -5.9 -13.5 7.6
Robert Stephenson 0.20 0.7 -6.8 7.5
Matt Wisler -1.16 -1.7 -9.1 7.4

This is more interesting. Would we feel different about Mitch Keller and Dylan Bundy if their fastballs were presented this way? Maybe, and maybe not. But it’s worth knowing that pitch values might underrate them. The flip side of the coin is interesting as well:

The Luckiest Four-Seam Fastballs, 2019
Pitcher xRuns/100 Pitches Total Runs FG Pitch Value Difference
Jack Flaherty 0.67 9.9 23.2 -13.3
Yoan López -2.68 -13.4 -0.5 -12.9
Shane Bieber 0.15 2.2 15.0 -12.8
Homer Bailey -0.36 -4.7 6.4 -11.1
Zach Plesac -1.13 -10.8 0.1 -10.9
Aníbal Sánchez -0.60 -4.9 5.0 -9.9
Brad Keller -0.51 -5.7 3.1 -8.8
Jeff Samardzija 0.22 1.8 10.6 -8.8
Merrill Kelly -0.21 -2.4 5.8 -8.2
Tyler Beede -0.63 -7.2 1.0 -8.2

Jack Flaherty’s four-seam fastball is still very good despite being the biggest loser in the switch. But Shane Bieber falls from excellent to average, and Zach Plesac falls from average to awful. Maybe there’s something in the water in Cleveland.

We can do the same exercise for sinkers. Adrian Houser is an absolute house:

Best Sinkers, 2019
Pitcher xRuns/100 Pitches Total Runs FG Pitch Value Difference
Adrian Houser 2.64 17.2 11.3 5.9
Joey Lucchesi 1.24 16.7 9.7 7.0
Chris Bassitt 1.37 13.8 20.1 -6.3
Aaron Bummer 1.79 12.7 14.0 -1.3
Craig Stammen 1.28 11.4 12.6 -1.2
Julio Teheran 1.70 11.4 18.7 -7.3
Taylor Rogers 2.03 10.6 8.6 2.0
Eduardo Rodriguez 1.69 10.0 5.6 4.4
Marcus Stroman 0.84 9.4 -1.8 11.2
José Berríos 1.28 9.4 4.7 4.7

And Marcus Stroman deserved better than he got last year:

Unluckiest Sinkerballers, 2019
Pitcher xRuns/100 Pitches Total Runs FG Pitch Value Difference
Marcus Stroman 0.84 9.4 -1.8 11.2
Zach Eflin 1.25 7.0 -3.2 10.2
Lance Lynn 0.54 3.2 -5.4 8.6
Robert Gsellman 0.95 5.1 -2.7 7.8
Joey Lucchesi 1.24 16.7 9.7 7.0
Sam Gaviglio -0.05 -0.3 -7.2 6.9
Diego Castillo 0.59 2.9 -3.3 6.2
Wade LeBlanc 0.06 0.2 -5.7 5.9
Robbie Ray 0.47 1.3 -4.6 5.9
Adrian Houser 2.64 17.2 11.3 5.9

On the other hand, holy Adrian Sampson:

Luckiest Sinkerballers, 2019
Pitcher xRuns/100 Pitches Total Runs FG Pitch Value Difference
Adrian Sampson -1.73 -19.2 -0.5 -18.7
Patrick Corbin -0.36 -4.1 7.0 -11.1
Mike Soroka 0.40 4.6 15.2 -10.6
Tyler Chatwood 0.32 1.6 10.3 -8.7
Yonny Chirinos -0.42 -4.6 3.9 -8.5
Miles Mikolas -0.79 -5.2 3.2 -8.4
Erick Fedde -2.27 -12.2 -3.9 -8.3
Mike Montgomery -2.40 -9.9 -2.2 -7.7
Félix Peña -0.65 -4.5 3.2 -7.7
Gregory Soto -1.13 -7.9 -0.5 -7.4

But in fact, that Adrian Sampson reading shows a problem with syncing up these two leaderboards. Pitchers who throw multiple pitches can get blended between the two. In Baseball Savant’s database (the one I used to get xwOBA), Sampson didn’t throw any four-seam fastballs in 2019. In our database, he was almost exclusively a four-seam guy.

So rather than point out further weird loopholes and things you have to think about, I’ll simply link to the data. This sheet has pitch values for every pitcher who had at least one pitch that didn’t result in contact, one pitch that did result in contact, and one inning pitched in 2019.

There are further things we can do with this data. First, we could look at other pitches, which I’ll do later this week. Second, we could test for reliability and year-to-year stability; I have a hunch that they’ll be a bit better, though I’m not yet certain. Lastly, there are things we could do to overhaul all pitch values, and these projects are in my pipeline as well. Using a purely count-based measure ignores changing hitter composition. Controlling for quality of opposition would be a step in the right direction. And while it’s complicated, folding in the base/out state would be useful. The cost of a ball depends heavily on which bases are occupied, because walking someone with two outs and runners in scoring position is different than walking them as a leadoff batter.

But even without those improvements, I hope this is fun and at least somewhat useful. Pitch grades are a neat tool, and these exercises are a low-hanging way to improve them.

Ben is a contributor to FanGraphs. A lifelong Cardinals fan, he got his start writing for Viva El Birdos. He can be found on Twitter @_Ben_Clemens.

newest oldest most voted
Skin Blues
Skin Blues

I like the way this gives a more true sense if how good certain pitches are. Standard pitch values always seemed so flawed.

I think that park factors will play a major part in this, especially when looking at only 4S fastballs. We usually have component park factors for handedness, but maybe we need to look at it for pitch type.

And for sinkers, infield defense will play a big part in the wOBA/xwOBA disparity.

These things can be accounted for though. ie, if we have a guy with a mediocre 4S fastball, and he goes from SD to BAL, maybe we think twice about him. Having the neutralized skills is really nice so we don’t have to just do mental math.