Creating an App to Guide Pitch Design

Before we begin, here is the link to app being discussed:

Two months ago, I wrote a blog post arguing José Berrios should learn a cutter. My argument hinged on the striking similarities between Berrios and Corey Kluber and the fact that Kluber has a good cutter and Berrios does not. Since then, I’ve developed a more objective way to evaluate a pitcher’s current pitches and make recommendations to guide the pitch design process. Pitch design is the process of a pitcher making changes to existing pitches or adding new ones, often using high-speed video and devices such as Rapsodo or TrackMan to get the spin axis of the pitch just right to create desired movement. The app I’ve built creates targets for pitchers and details ideal pitch characteristics to give objective, quantitative direction to the pitch design process.

My plan is to turn the tool into a service for college teams to use for their pitchers in pitch design, but I’ve also created a version which uses Statcast data to create pitch design plans for big leaguers that I’ve released for free. I figured this would be a good place to share the Statcast data version and give a brief explanation of how it works (if you’re interested in a more detailed explanation of the tool, check out this post on my blog).

How it works

In the Statcast version, the tool finds pitch data from the selected player’s most recent year to form the chart for the player’s current arsenal. Each pitch is then assigned a pitch score. Each pitch score was determined by figuring out which variables were related to performance for each pitch for the pitcher and then weighting them. For example, higher called and swinging strike percentages tend to lead to more success, so pitches that result in high swinging and called strike percentages are awarded a higher score.

If you weight the pitch score metric for each pitcher by pitch usage, it ends up accounting for a good chunk of the variance in xFIP (data from 2015-18):

And here is the linear model output from the R console:

From there, pitches are recommended based on release characteristics, velocity, and other variables (I’m purposely a bit vague when describing this part since I want to keep it proprietary). The target arsenal pitch scores are predicted by an ensemble of machine learning models from pitch characteristics that weren’t factored into the originally derived pitch score metric to avoid overfitting. For each pitch, there is also a pitch grade metric which places the quality of the pitch on the traditional 20-80 scouting scale. The pitch grade is the pitch score metric adjusted for pitch type with an average pitch score being 50, a pitch with a score one standard deviation above the average for that pitch type a 60, etc.

Questions about the tool? Send me a message through the contact page on my blog or shoot me a DM on Twitter.

Once again, here is the link to app:

Additionally, if you find any bugs or do something that causes the app to crash, please let me know if you can. I’m still investigating why it crashes for certain players when I run it locally, so a few players have been removed from the version linked above… I’m not sure I’ve caught them all, though.

Comments are closed.