Extrapolating 3D Contact Point Using Statcast

Over the past two years we have had many conversations about batters increasing or decreasing launch angle. Obviously, these conversations have been brought about by our brand new launch angle stats, which only recently became publicly available. However, launch angle remains a difficult concept to fully grasp. What properties determine launch angle? How do batters control it? Can the batter control it?  These are all very valid questions which I think everyone has struggled to answer, including coaching staffs, players, analysts, and fans.

Yesterday Eno Sarris put up an article touching on this topic, in which he explains his journey towards wrapping his head around the phrase “go get the ball”. In doing so he posted two images that were generated using HITfx data, and he briefly mentioned that one may use a bit of math to make a few deductions from this data. Well, that is the topic of this article. I aim to take these images, compare them to the Statcast information we have for launch angle, and reverse engineer the contact point for batters.

First, the images. Well, in this case, image, singular. I have combined the two images into one for ease of use. Keep in mind that the blue line represents the home run probability while the green line represents average exit velocity. Note that both of these are calculated using HITfx, so these numbers will vary a bit from Statcast, since they both use different methods for measuring, well, everything. Especially velocity. Also note the vertical tick marks are exit velocity, not home run probability.

I am assuming the Contact Point tick marks are accurate, in which case there are about 124 pixels per foot. Using this information I found that the peak exit velocity is about 21.2 inches in front of the plate and the peak home run rate is 29.4 inches.

The following chart depicts the average exit velocity and home run probability by launch angle, this time using Statcast data. Note that the chart follows the same sort of pattern as the previous one with contact point. Peak exit velocity comes before peak home run rate. The peak exit velocity is around 7 degrees, while peak home run rate is 27 degrees.

So, now we know the peak exit velocity is around 21.2 inches in front of the plate, and this corresponds to roughly 7 degrees of launch angle.

We also know the peak home run rate is about 29.4 inches in front of the plate, which corresponds to a launch angle around 27 degrees.

If we assume launch angle is linear, or at least close to linear, between these two points, then you have a difference of 20 degrees over 8.2 inches. Or, roughly, 2.43 degrees per inch.

I am making a large number of assumptions here, since I am working with very little data, but for the sake of argument let’s assume the conclusion is true. How could this be applied to batters?

Well, in 2016 Josh Donaldson had a 14.7 degree average launch angle and 91.9 mph exit velocity. In 2017, Donaldson has a 13.1 degree launch angle. Can we predict his exit velocity from this information alone?  

Well, the following equation is a rough and ugly approximation for the exit velocity curve. I have absolutely no doubt that someone can find a better approximation of this curve, but this will at least get the ball rolling:

Where ϴ is the number of inches in front of the plate.

So, you can plug the inches into those two equations and get an exit velocity. For example:

Predicting EV
Inches Ahead of the Plate Predicted League Average EV
17 85.3
25 85.5
30 84.6
48 74.8

Okay, so we’re assuming 2.43 degrees is equal to one inch in front of the plate, and 7 degrees is 21.2 inches in front of the plate. Donaldson’s average angle in 2016 was 14.7 degrees, which would be 24.4 inches in front of the plate. Plug that into my formula, and you get 85.54 mph, but he hit the ball 91.9 mph. So let’s say his bat speed is sufficient to increases his exit velocity by 7.4% above league average.

He now has 13.1 degree launch angle, which translates to 23.7 inches, which is 85.58 mph in my equation. Multiply this by that 1.074 factor for his increased bat speed and you get 91.94 mph expected exit velocity.

Next, by my records, average exit velocity is down from 87.6 mph to 86.6 mph in 2017. I am not sure why this is the case, but it appears to be down for pretty much everyone, so I will assume it is some systemic effect. Maybe a different ball, maybe a new way to measure velocity, I don’t know. Either way, I am going to multiply the expected velocity by 0.989 to make up for this difference. In this case, 91.94 x .989 = 90.92.

Okay, fair enough. Let’s check his actual exit velocity this season: 90.8.

Well, we got pretty close, didn’t we?

Let’s try another player. Justin Turner. Last year he hit the ball on a 16.9 degree angle at 90.5 mph.  This year he has an 18.1 degree angle. When I plug these numbers into the formula I get 89.4 mph expected exit velocity for his new launch angle.  His actual exit velocity?  89.2 mph.

Predicted Exit Velocities
Name Predicted EV Actual EV Difference
Carlos Gonzalez 88.9 86.2 -2.7
Neil Walker 87.6 85.0 -2.6
Jake Lamb 90.7 88.6 -2.1
Corey Dickerson 88.1 86.8 -1.3
Mike Trout 89.7 88.8 -0.9
Christian Yelich 91.2 90.7 -0.5
Kyle Seager 88.7 88.3 -0.4
Dee Gordon 79.5 79.2 -0.3
Andrew McCutchen 88.6 88.3 -0.3
Daniel Murphy 89.4 89.2 -0.2
Justin Turner 89.4 89.2 -0.2
J. D. Martinez 89.7 90.0 0.3
Billy Hamilton 78.7 79.1 0.4
Travis Shaw 87.8 88.2 0.4
Carlos Correa 90.1 91.0 0.9
Seth Smith 88.2 90.0 1.8
Khris Davis 90.5 92.6 2.1
League Average 87.29 87.35 0.06

Now, this doesn’t work for every batter, and the curve I selected could be greatly improved. This curve does not drop off fast enough, especially near the inflection point between 21 and 24 inches. Batters who are very close to that 24 inch mark will not have the correct difference in exit velocity between seasons.

This is a hack, I am trying to extrapolate data that we do not have access to. I do not know how well this hack might work, since I cannot compare my results to the actual measured numbers. However, it does seem to predict exit velocity most of the time, and you can find a curve with a better fit that could be even more predictive.

Keep in mind that the contact point is not the only factor that goes into exit velocity. Horizontal and vertical location matter as well. So does pitch selection, health, and a large number of other factors. You shouldn’t expect this contact adjustment to account for all changes in exit velocity, but it shows that we might be able to extrapolate the y value of the contact point via launch angle and exit velocity. We can then incorporate the y value of the contact point with the x and zed values supplied by MLB to have a more complete picture of a batter’s swing.

For example, if we see a change in launch angle without the correct corresponding change in exit velocity it could point towards perhaps luck, or perhaps a hot streak/slump. On the flip side, if we see a change in exit velocity that matches the launch angle we might assume the batter has made an adjustment to their swing. If the adjustment points towards power, then that would be a great turn of events. Or perhaps it could point towards diminishing power.  Either way, using this sort of technique may bring us closer to quantifying a batter’s swing based upon their mechanics, as opposed to relying on results alone.

Contact point is currently one of the most sought after stats in the public sphere.  This hack might get us a little closer, but use it at your own risk. I calculated the contact point and predicted exit velocities for each batter who had at least 200 balls in play in both 2016 and 2017, and you can view it here.


We hoped you liked reading Extrapolating 3D Contact Point Using Statcast by Andrew Perpetua!

Please support FanGraphs by becoming a member. We publish thousands of articles a year, host multiple podcasts, and have an ever growing database of baseball stats.

FanGraphs does not have a paywall. With your membership, we can continue to offer the content you've come to rely on and add to our unique baseball coverage.

Support FanGraphs

Andrew Perpetua is the creator of CitiFieldHR.com and xStats.org, and plays around with Statcast data for fun. Follow him on Twitter @AndrewPerpetua.

newest oldest most voted
David Marshall
David Marshall

Interesting. I think this is a great approach to help us understand the interplay between EV and LA based on swing mechanics. I’m not sure how much this really tells us about the contact point, because you are computing it as a function of LA and then using that value to predict exit velocity. What you’re really doing is predicting EV based on LA using a new (and probably better) function based on what we know about swing mechanics, which is valuable in itself.