What Spin Direction Tells Us From MLB Data

Robert Frey
8 min readNov 20, 2020


Thanks to Bill Petti noticing that the MLB play-by-play files had spin direction data, I thought it would be a good time to dive in and attempt to explain and examine what it means.

First, spin direction (or tilt) is a measure of the orientation of each pitch’s rotation after release (credit to Jake Stone for the definition on his recent SimpleSabermetrics video). In Layman’s terms, it is the measure of a clock when the ball is released. Below is a basic visual of a 1 o’clock tilt fastball from a RH pitcher (210 degree spin direction) from BaseballCloud’s BallR Lite.

Here’s a clock for a visual as well.

For the rest of this post, however, spin direction/tilt will be measured and discussed in degrees.

What we also know is thanks to Twitter User @903124, we see that the spin direction is observed and not inferred. https://twitter.com/903124S/status/1326543499861221379?s=20

To begin, I will do some exploratory data analysis (with code presented).

First, obtaining spin direction distribution by pitch type and handedness:

Spin Direction DIstribution by Pitch Type of RHPs
Spin Direction DIstribution by Pitch Type of LHPs

What I first see is the difference in 4-Seam Fastballs by handedness. The average spin direction for RHPs on 4-Seams is 211 degrees while the average spin direction for LHPs is 147 degrees. Now what do these numbers mean? What perspective are these numbers from? To help me understand this, I talked with a few people and tested it using a particular pitcher:

The reason I used Sergio Romo as an example is from this article on spin mirroring, written by Michael Augustine, to help me verify what view it is from.

Here are the average spin directions by pitch type of Sergio Romo’s pitches in 2020.

4-Seam Fastball: 240 degrees

Slider: 96 degrees

Changeup: 258 degrees

By viewing various articles and resources, I believe that the spin axis data will be best explained by using this graph below (pulled from this article from Driveline). There’s more ways to interpret the data, but given the axis is observed and not inferred, the rest of this article will be viewing spin direction data from the pitcher’s perspective.

Now with the precursor of data, let’s turn our focus into analyzing the data.

First, what variables influence/are influenced by spin direction? I took variables in the Statcast data set and ran a simple linear model to determine those variables.

The selected variables:

pitch_name: Pitch Name

release_speed: Pitch Velocity

release_spin_direction: Release Spin Direction

release_pos_z: Pitch Release Height in feet

release_pos_x: Pitch Release Side in feet (negative values are closer to the third base side of the rubber, positive closer to the first base side)

release_extension: Release Extension (how far the pitcher releases the pitch from the mound) in feet

pfx_x: Horizontal Movement in feet

pfx_z: Vertical Movement in feet

estimated_woba_using_speedangle: xwOBAcon or Expected Weighted On-Base on Contact based on Exit Velocity and Launch Angle.

Below is the summary of the multiple regression model, which variables are significant, and which variables have the biggest effect from spin direction.

Model results

An R squared of .6325 is not too shabby, and we see that most pitches, where it’s released from (both horizontally and vertically) and movement are significant to spin direction.

Now Variable importance, how important is each variable?

Variable Importance on Spin Direction (the higher the number, the more important the variable)

One glaring answer is that horizontal movement is largely important to spin direction. How the ball initiall spins when it comes out of hand can play a big role in generate more side-to-side movement.

Seeing that horizontal movement plays a big role, as well as release position, I wanted to see what it would look like if I grouped data by handedness and measured average movement a. Though we need to come up with another model.

To get an idea of how frequently pitches are thrown at what axis, I created a psuedo-kmeans algorithm by creating “clusters” (splitting the spin direction data into four quadrants), shown below (again from the pitcher’s perspective).

Now, I create a function to measure data by each quadrant, also grouped by handedness and pitch type by creating a function.

This function allows us to get league data by quadrant and summarize key metrics. Below are some examples of some pitch types by handedness.

The variables listed all from catcher’s view:

quadrant: which quadrant the pitch was located

pitches: how many pitches were thrown in that quadrant

mean_sd: average spin direction in degrees

mean_x_mov: average horizontal movement in feet

mean_z_mov: average vertical movement in feet

mean_spin_rate: average spin rate in rpms

mean_release_point_height: average release point height in feet

mean_release_point_side: average release point side in feet

xwOBAcon: expected weighted on base average on contact

swings: swings on pitches in that quadrant

whiffs: whiffs on pitches in that quadrant

called_strikes: called strikes on pitches in that quadrant

pct: whiff % on swings in that quadrant

csw: called and swinging strike % on pitches in that quadrant

Quadrants, again for reference
Right Handed 4-Seam Fastballs
Left Handed 4-Seam Fastballs

A few things on fastballs, spin rate is highest when those pitchers throw in quadrant 1 and 2 by left and right hand, respectively. A higher spin allows pitchers to throw more 4-Seams up in the zone.

Whiff rate is around 20 percent in the most frequent thrown quadrants and CSW% is around 27.5 percent. xwOBAcon is highest in quadrant 2 among the four for RHP 4-seams, but the vertical movement and horizontal movement is highest when thrown in this quadrant, on average.

LHP 4-seams have the lowest xwOBAcon and the highest vertical movement, along with the second highest horizontal movement, though 137 total pitches is not necessarily compared to nearly 23,000.

Right-Handed 4-Seam Fastballs with a spin direction between 180 and 270 degrees and Left-Handed 4-Seam Fastballs with a spin direction between 90 and 180 degrees with have more vertical movement that any other quadrant, as well as more horizontal movement. The effect that horizontal movement has based off spin direction is very big, as mentioned earlier.

Onto sliders:

Right-Handed Sliders
Left-Handed Sliders

Quadrant 3 for RHPs and Quadrant 4 for LHPs are the only quadrants that generate drop on the pitch and not “rise” on average. Spin is highest compared to their upper quadrant counterparts. Again, the horizontal movement is greater when zoning in on the lower quadrant of spin direction (0–90 degrees for RHPs, 270–360 degrees for LHPs). Generate those degrees of spin and horizontal movement will increase. Below are shown what they look like, thanks to BallR Lite.

RH slider with a 58 degree spin direction (quadrant 3)
LH slider with a 303 degree spin direction (quadrant 4)
Right-Handed Curveballs
Left-Handed Curveballs

Similar for sliders, a quadrant 3 RH curveball and a quadrant 4 LH curveball generate the highest horizontal movement and the most vertical drop. Release height is about the same 5.91 feet to 5.90 feet. Spin rate is highest in those quadrants as well. The success for breaking pitches is to release it in the lower quadrants.

Right-Handed Changeups
Left-Handed Changeups

Lastly, changeups have more distinct properties by handedness. A quadrant 2 RH changeup may have the highest average arm side run, but the lowest spin rate, the highest xwOBAcon (though .330 is still very good), the 2nd-best whiff rate, and the 2nd-best csw%.

We know that Devin Williams has a devastating changeup, but what is his spin direction on it, and what quadrant does he throw the most frequent?

Devin Williams’ Changeup data

He released twice as many quadrant 4 changeups than quadrant 2, however, his whiff rate on swings was 66.7% from quadrant 2 and his csw% was 54.9%. His quadrant 4 changeup is devestating, but who knew that his quadrant 2 change was even more devastating?

Let’s look at some of the most devastating sliders, like Chaz Roe and Josh Hader.

Josh Hader’s Slider
Chaz Roe’s Slider

Again, releasing those sliders in the lower quadrants are more optimal for movement, both horizontal and vertical, more movement can lead to more whiffs.

With this data, you can go back to previous years and get a determination of quadrant from movement and release points.

Let’s look at Chaz Roe’s Slider in all Statcast years.

We can see that in 2015 and 2016, his sliders did not have as much horizontal movement and had positive vertical movement. He was throwing quadrant 1 sliders. The next year was a test year in dropping the arm slot and attempting to throw more sliders in quadrant 3. The next three years were a boon for Roe and his slider, he readjusted his release point height, moved his release point side to be above 2 feet and wow did the horizontal movement increase and the vertical drop increase, which seems to be adjusting the release point quadrant.

Want to generate more horizontal movement and drop on breaking pitches? Release the ball with a spin direction between 0 and 90 degrees for RHPs and 270 to 360 degrees for LHPs. The breaking pitches will move more.

Full source code on Github, if you would like to try out some of the other pitches/pitchers/teams.