Launch Angle Derived Batted Ball Types

Fans instinctively know there are many types of batted balls. We’ve even given them names over the years: bloops, worm killers, Baltimore Chops, fly balls, rockets, frozen ropes, etc. Some of these names have been adapted to standardized stats, fly balls, ground balls, line drives, and pop ups, while the others have been been relegated to flowery language used broadcasters and personalities.

We have stats for fly balls, pop ups, ground balls, and line drives here on fangraphs, and occasionally users break these down a little more into infield fly balls, fliners, and outfield fly balls to narrow in on specific traits that may be interesting at the moment. But, personally, and you may feel the same way, I’ve never been quite happy with this system. It is too narrow, the categories are too broad and generic.

I created my versions of xOBA, xBABIP, and xStats on the premise of eliminating ‘types’ of batted ball from the analysis. Instead, it focuses entirely on balls with similar launch angles and exit velocities. It works pretty well, I think, but sometimes you want to sort and filter batters by specific traits. Batted ball types are one way to do this.

There are two ways to measure batted ball type with Statcast. First, you can go strictly by launch angle. Second, you can combine launch angle and exit velocity. In a sense, I already do the latter, which I call Value Hits and Poor Hits. These balls characterize the most and least valuable batted balls, combining launch angle and exit velocity. So you can sort and filter players this way.

The former option, launch angles alone, is what I will be focusing on here. I have three goals for this exercise:

  • First, each category to have a unique set of features. If they are too similar, you may as well lump them together.
  • Second, each category should have a relatively large number of results. I don’t want one batted ball type to represent, for example, merely 1% of batted balls.
  • Third, the categories should have good year to year correlations, and hopefully quickly stabilize during the course of a season.


I created a number of charts and tables depicting Out%, 1B%, 2B%, 3B%, and HR% with respect to launch angle. I already knew that peak value for batted balls lays somewhere around 20-30 degrees, and value steeply falls off after 36 degrees. Using these charts I identified peak angles for singles, doubles, and home runs. Triples do not have their own peak angle, and share the same space as doubles and home runs, which I feel is instinctive knowledge for any baseball fan.

(click image to see larger version)

The peak angle for doubles is the most obvious to pick out. It overlaps singles quite a bit, but it is a bit off from the home run peak. Once you have a spot for doubles you can work your way down. The lowest launch angles have the highest Out%, but there is a roughly linear relationship between Out% and launch angle for these very low angles. However, between the peak 2B% range and this high Out% range there is another range, which has very few doubles but a very high singles rate.

So, at this point I have three batted ball categories. Low ground balls, high ground balls, and line drives. Now to look at the upper ranges.

I know the highest launch angles have the lowest values of all batted balls, and value drops off very rapidly after 36 degrees. So, it is a matter of figuring out where to draw a line of distinction at this highest end. I turned to angles a bit lower to see if they could help guide me.

In the low 20 degrees launch angles you have high 2B% and HR%, but around 25 degrees the 2B% tanks and the HR% reaches it’s peak. These seem like two fundamentally different groups of batted balls. These are what might be called Fliners by some, or true fly balls by others. There really isn’t much consensus on any of this. But either way, I decided to plop a line at 26 degrees to separate these two groups.

Now we’re left with one group of batted balls that we know are near automatic outs, and another group which we know have lots and lots of home runs. Where to draw the line? Well, the lower launch angles have much higher batting average, slugging, etc. I tried to maximize the number of home runs and batting average in this tier of batted balls. As a result, I placed the final line on 39 degrees.

What I came up with

In the end, I came up with six batted ball types. Two types of ground balls, one of line drives, one of fliners, and two of fly balls. In the chart below you can see the angle breakdowns.

New BIP Types
Type Angle Range
Low Ground Balls < 0°
High Ground Balls 0-10°
Low Line Drives 10-19°
High Line Drives 19-26°
Fly balls 26-39°
Pop Ups > 39°

So, now it came to naming these things. I am ridiculously bad at naming things, so I asked twitter for help. They suggested naming the lower end ground ball a dribbler. While I’m not married to the name, I used it. I didn’t really get much in the way of suggestions for the other types. Since I know these stats will be listed in their two letter form 99% of the time, I decided to name the fliner type ball “HD”. I figured people associate HD with “good”, and that category of balls is exceptionally “good”.

So, in the end, these ball types are now referred to as Dribble Ball (DB), Ground Ball (GB), Low Drive (LD), High Drive (HD), Fly Ball (FB) and Pop Up (PU). Here are their stats.

New Batted Ball Types
Type BIP H 1B 2B 3B HR SF
DB 138986 26910 24854 1956 100 0 0
GB 49802 23686 21478 2108 100 0 0
LD 66738 46718 31958 12982 1278 500 574
HD 47846 25296 7800 9034 1030 7432 948
FB 66886 20262 4322 3026 768 12146 2190
PU 55186 2386 1164 588 54 580 1030

Dribble Balls are the most common ball type, but the other five are roughly equally common. High Drives, the most valuable batted ball type, is the least common. That kinda makes sense, high value BIP are certainly less common than low value BIP. I mean, we’re paying the pitchers to avoid good contact.

New Batted Ball Types
DB .194 .194 .209 .194 .194 .176
GB .476 .476 .522 .476 .476 .436
LD .707 .701 .964 .698 .700 .710
HD .540 .529 1.252 .442 .529 .730
FB .313 .303 .947 .148 .303 .502
PU .044 .043 .089 .033 .043 .055

These slash line items cut straight to the chase. Dribble Balls are much less valuable than Ground Balls. While Ground Balls may have similar batting average to High Drives, one is made up almost entirely of singles while the other almost entirely of extra base hits, hence dramatically different slugging percentages. Low Drives and High Drives have similar wOBA, but High Drives achieves this by sheer value, but Low Drives does it through higher frequency of success on lesser valued BIP. Pop Ups have very, very little value, while fly balls are actually quite good.

Each of these six categories has a unique set of qualities, and each has a good sampling of batted balls. So the first two conditions have been met.

Do They Have Strong Year to Year Correlations?

I tested year to year correlations between 2015 and 2016. Obviously, I can’t get launch angle data prior to 2015, which is very unfortunate. So, this is a relatively small sample size to draw from. Having said that, I tested year to year correlations for batters with at least 300 balls in play. It came out so well I tested for 200, and then 100, and then 75. You can see the results in the chart below.

Year to Year Correlations
75 .617 .476 .137 .131 .491 .622
100 .690 .537 .113 .204 .623 .686
200 .703 .607 .156 .181 .644 .720
300 .792 .638 .280 .283 .784 .773
400 .777 .606 .264 .152 .726 .795

These stats seem to correlate very well year to year, even in the smaller sample size 75 BIP. For reference, normal fly balls and ground balls (like you would see here on fangraphs) hover around .79 and normal line drives around .37. So, after 300 BIP these batted ball types are roughly on par with the year to year correlations for the standard batted ball types you’re used to using.

For reference, there are about 1.426 plate appearances per ball in play, so 300 BIP is roughly equal to 430 plate appearances. These batted ball types are pretty good after 200 BIP, too, which is roughly equal to 285 plate appearances.

How Quickly Do They Stabilize In a Season?

Great question! I tested for this, and the resulting number was so small that it makes me feel like I made a mistake. I don’t want to quote that number. I’ll go through the whole process again and get back to you.

How Do I Use This In Fantasy Baseball?

Another great question! Well, there two ways I can think of.

In the year to year correlation chart above there are three types that are very consistent year to year: DB, FB, and PU. Then you have GB, which, while consistent, isn’t quite up to par with the other three. Finally, LD and HD are not very consistent.

Even when I combined LD and HD into one category, the correlation after 300 BIP only rises to .48 (.34 after 200 BIP). As it turns out, these particular batted balls may be the largest difference maker in the quality and overall value of a player’s season.

In other words, if LD and HD rates are above average, the player is probably exceeding their projection and vice versa.

For example, let’s look at Paul Goldschmidt. In 2015 he had the greatest season of his career, and in 2016 he had a down year. Not his worst season, but nowhere even remotely close to his 2015 greatness.

Paul Goldschmidt
Year BIP DB% GB% LD% HD% FB% PU%
2015 423 21.3% 22.7% 17.5% 9.5% 15.6% 13.5%
2016 438 21.2% 29.7% 15.8% 5.5% 15.1% 12.6%

We’ve already established DB, FB, and PU are the most stable year to year. In this case, DB and FB are practically identical in both seasons. In 2016 Goldy hit significantly fewer pop ups (7% fewer).

The next three categories each saw pretty large changes season to season. His GB rate went up 30%, LD down 10%, and his HD rate was almost cut in half. There’s your problem.

High Drives are, without question, the most valuable type of batted ball. In 2015, Goldy hit nearly twice as many of them as he did in 2016. He also had nearly twice as much value (WAR). Coincidence? Yes. But the point stands, HD rate, while it may fluctuate a lot from year to year, is attached to overall value in a very meaningful way. It is something you may want to look towards to adjust your projections for players throughout a season.

Furthermore, I don’t only list HD%, I also have average exit velocity. This goes for each of these six batted ball types, but HD% seems to be the most interesting in terms of raw value. For example, in 2016 Miguel Cabrera had the highest HD% at 14.9%, and he also had the 15th highest EV on HD, at 96.9 mph.

So, not only did Miggy hit the most balls in this category and the most balls in this category per plate appearance, but he also had one of the highest EV. Of course, high exit velocity doesn’t necessarily mean success, but according to my Home Run Probability Calculator his average HD had an 8.6% chance to clear the fence for a homer. That’s pretty good for an average batted ball, consider that 50% of them were even better than that.

Leaders and Trailers In 2016

I’ve already mentioned Miggy taking the cake in the 2016 HD%, but the other nine top names are pretty great as well. You’ll see another great Tigers hitter, Nick Castellanos with great HD% and great EV. A third Tiger, Ian Kinsler. DJ LeMahieu, my sleeper pick for MVP this season (assuming he hits homers like I think he will). Brandon Belt is a surprise second place finisher, although with much lower (and below league average) exit velocity.

2016 HD% Leaders
Name HD% avg EV
Miguel Cabrera 14.9% 96.9
Brandon Belt 14.8% 89.5
Nick Castellanos 13.8% 94.3
Matt Carpenter 13.4% 94.4
Khris Davis 12.8% 99.8
Ian Kinsler 12.4% 89.2
Matt Kemp 12.2% 94.2
Adam Duvall 12.2% 94.1
Neil Walker 12.1% 90.2
DJ LeMahieu 12.0% 91.2

All of these are great hitters, but, and this is a key point, HD% isn’t very stable year to year, so in that sense these may all be sell high candidates. Except Miggy, who is ridiculously good at hitting.

2016 HD% Trailers
Name HD% avg EV
Denard Span 5.3% 90.6
Nori Aoki 5.3% 91.0
Paul Goldschmidt 5.5% 93.5
Yunel Escobar 5.7% 90.1
Chris Owings 6.2% 92.2
Cesar Hernandez 6.5% 88.4
Andrelton Simmons 6.7% 87.8
Jonathan Schoop 6.8% 90.1
Ryan Braun 6.8% 94.2

On the other end of the spectrum, these guys are trailed the rest of the pack in terms of HD% last season. I already talked about Paul Goldschmidt, but all of these guys may be buy low candidates.

Schoop in particular I find interesting, and I bought some stock in him as a result of these numbers. He has some serious pop in his bat, and he hit 25 homers last year, but with reduced batting average. Did the 9th lowest HD% contribute to that lower batting average? These balls do have a .540 average. Between 2015 and 2016, Schoop traded HD for DB and PU. Obviously, this is worst case scenario for a batter, given the differences in batted ball values in these three categories.

Wrap Up

These six batted ball types tell us more about a player than the traditional four batted ball types we are used to looking at over the past few years/decades/basically forever. The success and value rates of each category are more pronounced and differentiated, and when combined with Exit Velocity, which is provided side by side, can help you build a picture of player value.

The point of statistical reliability for these stats has not been adequately determined, so I cannot tell you at which point in a season these stats become reliable. That is the next step, and perhaps the single most important hurdle for fantasy value. I’m sorry I couldn’t have that done and ready for this post. I tried to, and I have results, but they are too good to be true so I am forced to assume I made a mistake and I don’t want to accidentally spread misinformation.

These stats will be updated daily on for both batters and pitchers. I hope you find them useful.


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

Newest Most Voted
Inline Feedbacks
View all comments
5 years ago

Really cool article, and good analysis, but I think your graph with the probabilities and launch angles is missing the 2B%:

Anyway you could edit or include it here in the comments?