xBABIP Spreadsheet

Here at Rotographs, it is brought up quite often that a player’s xBABIP and BABIP don’t agree. With the help of slash12, I have created a quick and easy method of calculating a hitter’s xBABIP. I have a downloadable spreadsheet that takes the batted ball data and calculates a xBABIP.

While others have created other xBABIP formulas, I find the one from slash12 (originally published at Beyond the Boxscore) to be the most accurate.

xBABIP = 0.392 + (LD% x 0.287709436) + ((GB% – (GB% * IFH%)) x -0.152 ) + ((FB% – (FB% x HR/FB%) – (FB% x IFFB%)) x -0.188) + ((IFFB% * FB%) x -0.835) + ((IFH% * GB%) x 0.500)

Here is a description of the formula’s creation and usage from slash12 in his own words:

This xBABIP formula was something I developed to provide an easy way to estimate a batters BABIP given his batted ball percentages as they appear on Fangraphs. I did this by doing a linear regression on the batted ball percentages against historic batted ball data. I’ve found that it has a very high correlation with a batters current year BABIP, however, sample sizes need to be considered as with everything else. Given the fickle nature of BABIP in general, it’s recommended you keep in mind a batters historic BABIP as well. A career .300 BABIP hitter isn’t likely to be a true .360 BABIP hitter, even if his batted ball data says that he is over the course of a partial season.

Here are a couple simple examples where this equation is useful:

Player X 2010: .300 xBABIP .290 BABIP
Player X 2011(April->June) .307 xBABIP .220 BABIP

Here, xBABIP helps reassure us, that Player X is most likely the same hitter he’s always been, he’s just been having some bad luck.

Player Y Career: .330 xBABIP .340 BABIP
Player Y 2010: .370 xBABIP .390 BABIP
Player Y 2011(April->June) .372 xBABIP .380 BABIP

Player Y may have indeed changed his approach in 2010, and 2011 in such a way that his hitting for higher BABIP is legit (perhaps he’s gained bat speed, or a previous injury has finally healed).

The following is a procedure for downloading and using the spreadsheet. First download the spreadsheet from Google Docs by going to File, Download As and select the desired format (don’t select .csv). Open the spreadsheet in Excel or OpenOffice (they are the only two formats I verified). Next, go to a hitter’s Batted Ball data (like Dustin Pedroia). Select and copy all the yearly data (some funkiness happens with the career data).

You Aren't a FanGraphs Member
It looks like you aren't yet a FanGraphs Member (or aren't logged in). We aren't mad, just disappointed.
We get it. You want to read this article. But before we let you get back to it, we'd like to point out a few of the good reasons why you should become a Member.
1. Ad Free viewing! We won't bug you with this ad, or any other.
2. Unlimited articles! Non-Members only get to read 10 free articles a month. Members never get cut off.
3. Dark mode and Classic mode!
4. Custom player page dashboards! Choose the player cards you want, in the order you want them.
5. One-click data exports! Export our projections and leaderboards for your personal projects.
6. Remove the photos on the home page! (Honestly, this doesn't sound so great to us, but some people wanted it, and we like to give our Members what they want.)
7. Even more Steamer projections! We have handedness, percentile, and context neutral projections available for Members only.
8. Get FanGraphs Walk-Off, a customized year end review! Find out exactly how you used FanGraphs this year, and how that compares to other Members. Don't be a victim of FOMO.
9. A weekly mailbag column, exclusively for Members.
10. Help support FanGraphs and our entire staff! Our Members provide us with critical resources to improve the site and deliver new features!
We hope you'll consider a Membership today, for yourself or as a gift! And we realize this has been an awfully long sales pitch, so we've also removed all the other ads in this article. We didn't want to overdo it.

Finally, open the downloaded spreadsheet and Paste the copied data into the spreadsheet (select/highlight the Yellow box that designates the first year before pasting).That is it. The xBABIP values will be automatically generated.

A players xBABIP will be calculated without having to hand enter every number. Hopefully you find the information useful and let me know if you have any questions.





Jeff, one of the authors of the fantasy baseball guide,The Process, writes for RotoGraphs, The Hardball Times, Rotowire, Baseball America, and BaseballHQ. He has been nominated for two SABR Analytics Research Award for Contemporary Analysis and won it in 2013 in tandem with Bill Petti. He has won four FSWA Awards including on for his Mining the News series. He's won Tout Wars three times, LABR twice, and got his first NFBC Main Event win in 2021. Follow him on Twitter @jeffwzimmerman.

16 Comments
Oldest
Newest Most Voted
Chippchipp
14 years ago

Thank you so much! I have been looking for something like this for so long!

Brad JohnsonMember
14 years ago

Is there research to suggest that previous season BIP data should affect current season xBABIPs? By including previous seasons, aren’t we actually measuring a BIP distribution that isn’t necessarily consistent with the current season?

SF Draft Talk
14 years ago
Reply to  Brad Johnson

good question, could we get an answer for this I’m curious as well.

Bobby Boden
14 years ago
Reply to  Brad Johnson

To oversimplify, we’re mostly just talking about Line drives, and infield flyballs (the largest factor’s influencing your xBABIP). From year to year, both these can fluctuate quite a lot, just like a batters BABIP does. This is not the be all, end all predictor of BABIP that we wish it could be, unfortunately. It does, however give you a picture of what a hitter is doing, and in conjunction with other statistics (like Career, and previous years BABIP), helps you draw better conclusions about how a guy is hitting. If you’ve got a career .300 BABIP hitter (with thousands of at bats) showing a .390 xBABIP over a year, or a month, or anything, I’d be highly skeptical of them continuing that trend. However xBABIP helps show that at least he’s “earning” his hits, and it’s not just a matter of a lot of bloops, or grounders missing outfielders, he’s hitting the ball soundly.

I’m not sure that really answers your question, but my hunch is, given enough plate appearances, historic BABIP is a better predictor of future BABIP then xBABIP is. This isn’t the next FIP/xFIP, there’s some skill in a hitters batted ball data, but it fluctuates alot more then most other stats.

Cullen
14 years ago

Just want to note that these numbers should be taken with a grain of salt, as they don’t account for ballpark factors. A more accurate xBABIP would involve the same percentages used in the above formula coupled with BIP data from various stadiums (I did this earlier in the year with the Yankees lineup and found that all the players regressed towards the numbers I got).

dodgers own
14 years ago

It didnt work for me… I have a mac with 2011 excel so i dont know if that’s why.

dodgers own
14 years ago
Reply to  dodgers own

the copy paste didnt work, that is. it all goes in the first box only

Rico
14 years ago

I’d like to request xBABIP to be added to each player’s statistics page for easy reference.

Roto Junky
14 years ago
Reply to  Jeff Zimmerman

In my humble opinion, xBABIP is the main stat that FanGraphs lacks for analyzing baseball players for fantasy purposes. BABIP is semi-useful and is one of the main things I look at, but I end up having to look at his batted ball profile to estimate an xBABIP so it is only marginally useful. But BABIP becomes extremely useful when seen next to an xBABIP. Honestly, there really aren’t any other stats that I know of that I would prefer to see more.

Herbstr8t
14 years ago

NICE!

Albert Klyachko
14 years ago

This is amazing! Thanks

am14
11 years ago

If the 3.10 (or something similar depending on the year) constant for FIP is meant to account for a pitcher getting league average defense and league average outcomes on ball in play and we accept that BABIP results cause ERA to deviate from FIP, could this FIP constant be refined for each pitcher as some function of the difference between his opponent’s xBABIP and league average xBABIP?
eg. 3.10 + (constant)*(xBABIP – laBABIP).
This comes with the assumption that a pitcher has the ability to influence FB%, GB%, LD%, etc. which may not be perfect but is seemingly better than the assumption that a pitcher can influence the outcome of these defense dependent events.