Using Statcast and xStats To Value Pitches
The past few days I’ve been working on a tool that, I hope, will be capable of comparing the strengths of a pitcher to the strengths of a batter to build up pitcher vs batter match ups using the Statcast data and my xStats. This is a pretty big project for me, and it might take me a while to get it up and running. However, I have completed one small part of it: pitch values for each pitcher.
I’ve calculated various stats for each pitch type, for each pitcher in MLB. These include basic things like Swinging Strike, Called Strike, and Ball rates; the number of balls put in play; and average pitch speed. I also have average perceived velocity; average exit velocity; average launch angles; and xOBA, xBABIP, and xBACON. I’ve done this for each pitch type, as assigned by MLBAM. The MLBAM pitch designations are not perfect, and there is some pretty wide disparities between its classifications those given by other sources, such as Brooks Baseball, but these definitions are convenient so I will be using them for the moment.
For the xOBA, xBABIP, and xBACON stats, I am using the balls in play as the denominator, as opposed to the total pitches thrown. This is something I’m on the fence about, since calculating it by pitches thrown might give a better sense of how strong the pitch is relative to its use. You can convert the xOBA, xBABIP, and xBACON to have pitches thrown in the denominator by multiplying by BIP/Pitches thrown. So, for example, if a pitcher has .290 xBABIP for four seamers with 100 BIP and 400 pitches thrown, you can multiply by 100/400, ie 1/4, to get his xBABIP per pitch. In this case .25 x .290 = .073. Which would be a solidly above average fastball.
There is obviously a great discrepancy between the batted ball values of each pitch, with fastballs creating the highest value. Personally, I find it interesting that four seamers have a much lower expected BABIP than two seamers and sinkers. Two seamers and sinkers sit roughly around the .250 xBABIP, while four seamers are .225. Four seamers also has a much lower xBACON, which means fewer expected home runs, sitting at .254 while two seamers and sinkers are both around the .280 mark. Knuckle curves, sliders, and curve balls are each at the bottom in terms of xOBA, xBABIP, and xBACON, sitting around .260, .200, and .220 respectively.
This sort of background information is nice, but I’m here to rank the relative values for each pitch thrown by each pitcher, which I can later compare against the ability of batters in hopes of estimating how well they match up against each other. So, lets see if the pitch ranks work out for a few pitch categories, here are the top 10 pitchers for Four Seamers (minimum 400 pitches thrown):
name | Pitches | AVG Vel | Effective Vel | SwStrk | Called | Ball | BIP | AVG EV | xOBA | xBABIP | xBACON |
Aroldis Chapman | 489 | 100.6 | 87.3 | 17.6% | 12.3% | 30.9% | 114 | 87.8 | .214 | .178 | .187 |
Hisashi Iwakuma | 420 | 88.4 | 88.2 | 6.9% | 24.3% | 30.0% | 100 | 88.7 | .214 | .155 | .171 |
Rich Hill | 582 | 90.7 | 90.4 | 12.9% | 24.7% | 33.5% | 117 | 87.4 | .228 | .148 | .158 |
David Phelps | 423 | 94.5 | 93.2 | 10.9% | 19.9% | 30.3% | 83 | 90.3 | .238 | .175 | .193 |
Ryan Buchter | 779 | 92.8 | 93.0 | 9.2% | 19.0% | 35.9% | 173 | 88.8 | .244 | .133 | .151 |
Seung-hwan Oh | 594 | 93.0 | 91.9 | 13.6% | 17.3% | 31.0% | 122 | 92.3 | .244 | .178 | .201 |
Tyler Thornburg | 518 | 94.6 | 94.0 | 9.7% | 18.1% | 32.2% | 121 | 91.6 | .251 | .186 | .194 |
Brad Brach | 544 | 95.4 | 94.0 | 12.3% | 15.6% | 29.6% | 126 | 88.5 | .256 | .161 | .188 |
Tyler Anderson | 428 | 91.0 | 91.0 | 4.9% | 18.7% | 31.1% | 113 | 86.2 | .261 | .224 | .231 |
Kevin Siegrist | 470 | 93.3 | 93.8 | 8.5% | 20.2% | 33.2% | 115 | 89.0 | .262 | .155 | .192 |
Aroldis Chapman certainly has to be the top of this list. Especially when you factor in his 17.6% swinging strike rate and insane 101+mph velocity. Chapman has the best fastball in MLB. Buchter has some ludicrous spin rate on his fastball, which Eno Saris wrote about a few days ago. Iwakuma, I personally wouldn’t have guessed would end up on this list, but the AL West is a blind spot of mine in MLB, so I may have simply missed out on him.
One thing to notice, though, the top fast balls are not necessarily linked to velocity. Yes, Chapman is at the top of the list, but Iwakuma is right behind him, throwing 12 mph slower. Thornburg, Brach, and Phelps are all above average velocity, but nothing crazy. This list isn’t dominated by guys throwing 97-98 mph, you see some 91, some 93, even a little 88. These are average fastball velocities inducing a lot of very weak contact. Velocity is not the determining factor in this sort of success. I love seeing that.
Applying the same ranking system to change-ups, albeit with a minimum of 200 pitches thrown, here are the top 10 change ups:
name | Pitches | AVG Vel | Effective Vel | SwStrk | Called | Ball | BIP | AVG EV | xOBA | xBABIP | xBACON |
Stephen Strasburg | 284 | 89.3 | 90.5 | 15.8% | 9.2% | 37.3% | 87 | 85.9 | .139 | .101 | .120 |
A. J. Schugel | 262 | 82.9 | 81.6 | 14.1% | 11.1% | 31.3% | 71 | 85.5 | .186 | .107 | .146 |
Kyle Hendricks | 504 | 80.5 | 79.8 | 22.0% | 3.2% | 27.8% | 182 | 81.9 | .196 | .164 | .176 |
Danny Duffy | 273 | 85.4 | 86.4 | 20.9% | 11.0% | 33.0% | 87 | 87.7 | .198 | .151 | .183 |
Fernando Rodney | 329 | 83.2 | 82.6 | 20.1% | 16.7% | 29.8% | 78 | 81.4 | .209 | .160 | .162 |
Michael Fulmer | 285 | 86.4 | 86.4 | 17.5% | 14.0% | 34.0% | 70 | 89.8 | .214 | .190 | .191 |
Dillon Gee | 214 | 84.0 | 84.0 | 20.1% | 9.8% | 27.6% | 69 | 85.3 | .215 | .184 | .201 |
Aaron Sanchez | 200 | 89.0 | 88.5 | 9.5% | 11.0% | 41.5% | 55 | 89.0 | .218 | .182 | .187 |
Danny Salazar | 354 | 86.7 | 85.5 | 20.1% | 8.5% | 19.5% | 141 | 91.5 | .219 | .167 | .185 |
Marco Estrada | 627 | 78.1 | 76.4 | 20.3% | 7.8% | 32.7% | 196 | 81.9 | .220 | .169 | .183 |
Strasburg’s change up has been deadly this season, producing some exceptionally weak contact. Not only weak in exit velocity, but also weak in launch angle as well. Contact off his change up as much like a lonely puppy, it goes straight towards the first fielder it finds, as you can see represented in that .101 xBABIP. I didn’t know xBABIP even got that low. One base in every ten batted balls, so much for putting the ball in play making things happen. You might be better off striking out than swinging at his change up, luckily 37% of his change ups are called balls, so if you can identify it and lay off, you might survive.
Michael Fulmer is having an extraordinary rookie season, and his change up is a big reason why. He has 17.5% swinging strike rate, 14% called, and the balls put in play have a .214 xOBA and .190 xBABIP. That is incredible. I mean, those stats match Chapman’s four seamer, if you want to look at it that way. Granted, he throws far fewer change ups than Chapman throws fastballs, as you’d imagine, but the quality of this pitch is right up there with the best of them.
Marco Estrada has limited batters to merely 82 mph average exit velocity on his change up, which he throws very, very often. He has thrown 627 change ups so far this season, the second most in MLB, only Shoemaker has thrown more (829). While Shoemaker’s change up is above average in its own right, Estrada’s is certainly on a different level, registering a mere .169 xBABIP and .183 xBACON.
For the curve balls, minimum of 200 pitches, the top 10 pitchers:
Name | Pitches | AVG Vel | Effective Vel | SwStrk | Called | Ball | BIP | AVG EV | xOBA | xBABIP | xBACON |
Clayton Kershaw | 255 | 73.7 | 72.8 | 9.4% | 12.9% | 38.8% | 76 | 80.8 | .103 | .124 | .125 |
Corey Kluber | 362 | 83.9 | 83.2 | 20.4% | 12.2% | 28.2% | 122 | 84.4 | .119 | .109 | .118 |
Madison Bumgarner | 338 | 75.1 | 74.4 | 10.9% | 15.4% | 34.0% | 97 | 85.4 | .141 | .130 | .136 |
Jerad Eickhoff | 506 | 75.3 | 74.6 | 9.9% | 23.7% | 32.0% | 137 | 84.1 | .163 | .138 | .151 |
Trevor Bauer | 358 | 78.1 | 76.6 | 7.3% | 15.6% | 40.2% | 83 | 91.0 | .164 | .141 | .157 |
Jose Fernandez | 742 | 84.1 | 84.1 | 20.4% | 17.8% | 26.1% | 222 | 88.8 | .165 | .132 | .142 |
Will Harris | 254 | 82.4 | 81.5 | 8.7% | 11.4% | 34.3% | 64 | 90.7 | .168 | .189 | .192 |
Mike Montgomery | 202 | 77.5 | 76.9 | 13.4% | 15.3% | 34.2% | 60 | 87.6 | .176 | .152 | .153 |
Carlos Carrasco | 232 | 84.0 | 83.7 | 12.9% | 24.1% | 28.9% | 68 | 88.9 | .179 | .140 | .163 |
A. J. Griffin | 237 | 67.1 | 66.7 | 10.1% | 16.9% | 33.8% | 67 | 82.3 | .191 | .167 | .186 |
Clayton Kershaw obviously has the best curve ball in baseball. He has had the best curve ball in baseball for many years now. He’s the best pitcher in baseball, a lefty, and has the best curve ball. It isn’t fair. It also isn’t fair that injuries have taken him away from us. Hopefully he has a healthy rebound very soon.
Corey Kluber’s curve ball specializes a bit more in swing and miss, while Eickhoff’s and Carrasco’s are both more about the called strike. Getting an umpire to call a strike on a curve ball can be difficult, especially on a good curve ball, but Jerad Eickhoff and Carlos Carrasco have each managed to get a 24% called strike rate so that this season, in addition to the extremely weak contact they have induced. Meanwhile, Jose Fernandez has excelled in both called and swinging strikes with his curve ball, and I could easily see him taking another step forward with the pitch in the coming years, as he matures a little, lets not forget he is only 24 years old. Not that he needs that sort of development, considering he is already arguably one of the top 10 pitchers in MLB.
I made a google doc containing all of this information. You can feel free to look and play with the data, if you’re curious. Personally, I find it very fun to mess around with. I love seeing how pitchers fair with their arsenal, especially compared against the backdrop of reports from scouts, and whatever pitch may be particularly eye popping at any given moment. You can find all of the other pitches (except screwballs and eephus, which are so rare that I opted not to include them). Sinker, splitter, slider, knuckleball, they’re all there. You can feel free to sort by pitch velocity, effective velocity, swinging strike rate, or whatever else. I have a lookup page that allows to get at a glance stats for individual pitchers.
This is the first step to a larger project I’m working on, I aim to add batters to this very soon, hopefully this weekend. After that, I’ll work on mixing the data together to build a batter versus pitcher match up tool, which will hopefully be useful for DFS.
Andrew Perpetua is the creator of CitiFieldHR.com and xStats.org, and plays around with Statcast data for fun. Follow him on Twitter @AndrewPerpetua.
Interesting project. Can you do handedness splits on the data also?
I absolutely can do that (and I have already), the issue is how much time I want to put into updating the document every day. If I were better at PHP I’d just have a webpage set up and draw the data that way. But alas, I am not good at php.