Pure Specs Pitch Grading

Jackson Del Rosario
10 min readJul 7, 2021
Corbin Burnes \ Getty Images

Intro

As many of you know I work in College Baseball, and lately, I’ve been following the MLB Draft because I’ll know guys in it and actually have some cool data for some top prospects. This process has deepened my understanding of what makes a successful pitcher and what factors go into pitches that are descriptive of success.

A facet of predicting success for prep guys is pitch grading. If you aren’t familiar a “Pitch Grade” is the future value teams see in a particular pitcher’s pitch. Typically on a 20–80 scale with 50 being MLB average. However this scale is pretty arbitrary from what I’ve seen and I thought as someone who values data, I could develop a pitch grading system for multiple levels centering around how the “stuff” compares to the MLB averages.

My idea is that I could input data for any pitcher and evaluate how their pitches compare to the bigs. Then you can tweak some things and see where small improvements can make large differences.

So the first step was to pick how to evaluate pitches. Immediately I tossed aside command for a couple of reasons. Firstly, for my purposes of applying to different levels, the complexities of command varies greatly and would be very difficult to enter. It’s really not the point of this exercise. This made life a whole lot easier, so I was just focusing on Pure Stuff. I then decided on the dependent variables I wanted to input into the model. I decided on only Pure Specs (I’ll say Pure Specs a lot, the following statistics are what I mean by that for the whole article and beyond):

Release Velocity

Spin Rate

Spin Efficiency

Extension

Release Height

Vertical Movement

Horizontal Movement

Pitch Hand (1 = RHP, 0 = LHP)

Note: Vertical Movement and Horizontal Movement are total movement not pfx_x/pfx_z

So I had these eight dependent variables and I needed something to predict. I went with Whiff Rate over SwStr% because it correlates very well with pitch success and is typically used as a measure of how well a pitch is performing.

Acquiring Data and Running the Model

I am only using data from the 2021 data mostly because of Hawkeye and isolating a single season appeared to be the best for displaying pitch grades for MLB guys. For Velocity, Spin Rate, Extension, and Release Height I used the play-by-play StatCast data scraped using the baseballR package.

Another important thing to note is that I did this on a pitcher level rather than a pitch level.

To get Spin Efficiency I originally used the formula to estimate it, but I wasn’t very happy with that so I downloaded the CSV from baseball savant. I did the same for vertical and horizontal movement because I wanted the full movement because Trackman data doesn’t provide pfx_x and pfx_z.

So I had a data frame for each pitch that looked a little like this:

Four Seam Fastball Data Frame

The next part might be dicey because I’m still learning so bear with me.

To predict whiff rate I ran a Random Forest Model using these eight dependent variables. I split into a test and train group, with a split ratio of 75%. I thus trained the model on the train data and after it worked, I predicted the whiff rate on the real dataset. The following is the RMSE of each pitch’s model:

I’m honestly pretty content with these results (maybe sans CH, but I’ll talk about that later) I was surprised it was this decent without plate location.

I then found the mean predicted whiff value and assigned ranges to each 20–80 grade in increments of five. It was a little bit subjective and I might just use Z-Scores or something in the future.

So let’s talk about each pitch and the strengths and shortcomings of each:

Four Seam Fastballs

I did four-seam fastballs first because, obviously. I’ll start by showing you the top-rated guy’s FF:

If Justin Steele surprised you as the far and away best FF in the game you’re not alone (Cubs Fans Rejoice)

His FF is more like a cutter with that 68% Eff and 0.4 in of hmov but Savant counts it as a FF so whatever. Here was the rating scale I used:

Alex Vesia almost got to an 80 grade, was .1 off, and with some rounding would get there, but gotta earn it. I’d probably call it a 75+.

Here’s a graph of Whiff by xWhiff

There are some significant outliers. This is a common trend throughout all these models, odd fastball metrics that play well in-game sometimes get overlooked by this model as they are so unique. This is VERY evident in changeups.

Forgot to mention for a pitch to qualify a pitcher needs to have thrown it 100 times in 2021.

I also thought it would be interesting to mention what correlated the best with xWhiff%, so here’s a handy chart:

This is just a simple R, coefficient of correlation, not determination. What I found to be very interesting is how fastballs really only require three metrics:

Velocity, Spin, and Vertical Break.

While a low release height is very helpful, the three metrics mentioned clearly make all the difference with the four-seam fastball. And that makes a lot of sense. Typically higher spin rates and Velo equate to more whiffs and the more vertical the pitch is the flatter the VAA becomes and generates whiffs.

Sinkers

Next, we’ll continue with Fastballs and do sinkers which is quite the common pitch around the MLB. I’ll do a briefer synopsis than FF, but I’ll show all the same information:

I had a tough time with the grading system for this as the xWhiff (pred) dropped off pretty significantly so only eight players have a 70+ Grade Sinker. I’d also add Whiff% isn't exactly the best for sinkers to evaluate how well its performed. While whiffs are great, ground balls are also an important success feature of sinkers that isn’t taken into account here.

Not many huge outliers here which is always nice to see. Overall a very linear relationship with two sinkers clearly being the best in Kenley Jansen and Jeffrey Springs.

And for what correlates well with it:

Interesting to note that hmov is much more important here obviously which takes a little strain off of Velo and Spin. Extension also is a large factor here. Maybe adding to the effective velo?

Cutters

For the final type of fastballs, didn't include splitters because there’s little data on their active spin, so cutters will finish us off here.

Shoutout to Sean Newcomb who grew up close to where I did! Also didn’t expect to see Carson Fulmer on any type of positive list so I can see why he was drafted so high.

A notable omission from the top 10 is Corbin Burnes as he might have the most notable cutter in baseball today. He is a 70 though so don’t worry. The massive outlier is Alex Young who comes in with a 50 grade, about average. From what I understand it's because he gets very little HB even though it's so successful.

And here’s what correlates well:

Very interesting how Velo has virtually no effect and it's all on spin, eff, and the movement profile. For most pitches, Velo is king but not cutters. Probably why Burnes isn't an 80.

Sliders

The Slider is my favorite pitch in baseball so I was most excited to see these results:

Hey, look! It's Ryan Hendrix… did you know he’s the only MLB player in HISTORY to have his last name end in X? Crazy right, almost feels too good to be true.

Ok, there are some large outliers here, let's go over them:

Logan Webb: 50 Grade Slider, Real Whiff Rate: 56.6%

I’d posit it's because he doesn't throw it too too hard (~83 MPH) Maybe it's his awkward efficiency of around 55%.

Brooks Raley: 45 Grade Slider, Real Whiff Rate: 54.1%

Not 100% sure why it doesn't like it too much. Maybe it's the movement profile? 36/15.6 VB/HB in Inches. Everything else seems like a 55–65 grade Slider.

Most outliers just have one thing they do uniquely that the model doesn’t appear to like all too much.

To continue with that here’s what correlates well:

Nothing too strong besides velo. Extension is important but sliders are pretty customizable so they fall into different categories.

Gyro Sliders tended to grade out pretty well:

Curveballs

The second to last pitch is the mighty hook. Not as many pitchers threw this consistently as I thought:

Yankees Fans finally have something to celebrate. And the A’s can continue to hope Luzardo figures out where his pitches are going so he turns into a star.

A couple of outliers here for guys who throw it with too much extension. Didn’t know that was a thing, but it appears that Zach Wheeler and Jose Quintana’s only difference from a 70 Grade CB is the longer extension.

Let’s see if that correlates:

Huh, it’s not. But Vertical Movement, Velo, Spin, and Eff all are. No big surprise there.

So here, you tell me if you can see why Wheeler and Quintana are so low rated:

Changeups

I’m really not the biggest fan of this model, because of one man. Devin Williams, it has him as a 55-Grade I think because he’s so unique.

deGrom and Burnes… BIG SUPRISE HUH

No, that huge outlier isn’t D-Will, it's actually Patrick Sandoval. Not really sure why he’s graded so low honestly, I’ll let you look:

Here’s Williams

And to help you, here’s what correlated well:

Extension makes sense, typically changes have very high extension. Nothing else correlates all too well probably because changeups are also very unique player by player.

Model Darlings

Here are some model darlings that perform well across the board:

Jacob deGrom:

70 FF

80 SL

75 CH

Corbin Burnes

70 SL

80 CH

70 CT

60 FS

80 CB

Josh Hader

70 FF

75 SL

Trevor May

70 FF

55 SL

55 CH

If you made it this far, thanks! Your reward is the link to my sheet that contains the entire leaderboard of grades by pitch and a cumulative arsenal page:

Just remember this project isn’t finished and eventually, I hope to have a tool for you to plug in your info to see how it grades out! I also plan on refining and reworking numerous parts of this to get better so don’t be too surprised when things/players change.

If you want to know about a player who’s not on the list ( <100 Pitches), tweet at me, and if I have time I’ll try to get back to you!.

Follow my Twitter @jacksondels2

Have a Nice Day!

--

--