An Introduction to xStats

Dave Cherman explains xStats and how they are the next wave of sabermetrics.

You may have seen Nick, myself, or one of the other writers here refer to xStats or you may have seen a stat like “xAVG”, “xBACON”, and “bbFIP” and wondered what it is and why we’re talking about bacon while discussing baseball.

xStats, from, are an incredible tool for evaluating players and the validity of their statistics. I really started using them a lot last year and I want each of our Pitcher List readers to understand them so you can see the game the way I’ve come to.

The first step in understanding xStats is understanding the purpose of the site and answering the question: what are xStats?

“xStats are calculated using Statcast data in an attempt to make more objective observations of the game. Only the vertical and horizontal launch angles, exit velocities, batted ball distances, game time temperature, and ball park are taken into account. All other factors are ignored. The angle and exit velocity information is fed through an algorithm that lumps together similarly hit balls and finds their average success rates. Game time temperature and ball park information are used to adjust the exit velocities.”- Andrew Perpetua, creator of xStats

Basically, xStats tries to measure a player’s performance based on the data we can gather from batted balls. Andrew’s formulas take this data and create statistics that we can use to evaluate players.

Because Andrew creates his own statistics, I’m going to go through them with you to help you understand the site. I also urge each of you to check out the glossary for more information. The letter “x” is used in a lot of his statistics such as “xAVG”, “xOBP”, and “xSLG”. The “x” means “expected”; xAVG represents a player’s expected batting average from their batted ball data. The range of quality for xAVG/xOBP/xSLG is the same as it is for AVG/OBP/SLG.

VH% or “Value Hits per plate appearance” measures how many of a player’s batted balls end up as near automatic extra-base hits, as VHs end in extra-base hits 81% of the time. Basically, what percentage of a player’s plate appearances result in high-quality contact. Above 10% VH% is elite, above 8% is quality, below 5% is poor.

The flip side of that is PH% or “Poor Hits per plate appearance”, which measures the worst contact in baseball. Poor Hits result in an OBP of .018, which is clearly subpar. Players strive for a sub 20% PH%, below 15% is elite, and above 25% is poor, but the totality of the stats should be taken into account.

For pitchers, take the reverse standards; VH under 5% is elite, below 8% is quality, and above 10% is poor. PH over 25% is elite, over 20% is quality, and under 15% is poor.

The last hitting stat I want to discuss is xBACON. I’m sure you’re all familiar with BABIP or batting average on balls in play. One of the major gripes with the stat is it does not include home runs. BACON means batting average on contact and includes home runs. It’s not necessarily a better or worse stat, just different. xBACON can be used like xBABIP or the other xStats to evaluate the legitimacy of a player’s actual performance data. An xBACON of .400 or above is elite, .350 or so is good. It should be somewhere between 40 and 80 points above xBABIP depending on power (more HR leads to a higher gap between BABIP and BACON).

The stats are laid out on the convenient chart below.

xStat Elite Average Poor
Value Hit% (hitters) >10% 7.5% <5%
Poor Hit% (hitters) <15% 20% 25%<
xBACON (relative) .400 .350 .300

On the pitching side of things, xStats is home to two different measurements of FIP. One of the most prominent pitching xStats is called bbFIP. Many of you have likely heard of FIP or Fielding Independent Pitching, which attempts to calculate ERA based on league average results on balls in play; bbFIP takes this stat one step further by calculating ERA based on the player’s individual, actual batted balls, ie batted ball FIP or bbFIP. An elite bbFIP is below 2.50 (much like ERA), good is 3.75 or so and below. Above 4 is poor, much like ERA.

The other stat is scFIP or statcast FIP. The stat assumes league average results on balls in play and the pitcher’s expected HR rate from their batted ball data. It follows the same general range of quality as bbFIP.

bbFIP is arguably a better measurement of FIP because it uses the pitcher’s actual batted ball data, not league average results. You can see any player’s bbFIP in the advanced section of a player’s profile here on Pitcher List.


Elite Average










xStats is also home to statcast data such as exit velocity and launch angle. This creates a number of categories of batted ball, as listed below:

Type of Hit

Dribble Balls

Ground Balls

Line Drives High Drives Fly Balls


Launch Angle


0-10 10-19 19-26 26-39


Now that the terms are out of the way, let’s discuss how we can use each of these. Each xStat can help us answer the question “is this player’s performance legit?”

For hitters, we use the xStats triple slash (xAVG/xOBP/xSLG) in conjunction with xBABIP and xBACON to assess whether a player has been lucky or unlucky in their actual triple slash. xHR is also helpful when assessing whether power is for real. For example, Kurt Suzuki hit 19 home runs last year, but xStats gives him 13.6 HRs in 2017. Therefore, we can expect Suzuki’s HRs to decline in 2018, all else being equal. VH%/PH%/and OUTs can be used relatively to measure a player’s performance. Maybe a player’s stat line looks very good, but he’s got an awful VH%, showing that maybe he’s not making great contact after all. Using this, we can attempt to project regression and breakout candidates.

Pitchers also have an xStats triple slash that can be compared against their actual triple slash to answer the same question. Using that, we can find pitchers who are over or underperforming relative to their actual stats. bbFIP is also emerging as a favorite among the Pitcher List staff to compare vs ERA. A bbFIP below ERA suggests improvement could be on the horizon and a bbFIP over ERA suggests regression could be coming.

Some of these scales are difficult to quantify because they’re all relative. A good xSLG is theoretically only as good as its rank amongst other xSLGs. We’re usually pretty good about providing context for a player’s xStats performance because the context is necessary; I was recently asked what one stat I’ve found to be most helpful in analysis. The truth is that no one stat is the deciding factor in any analysis. Every stat shares a piece of the picture and true analysis requires looking at that full picture. However, to try and answer the question, for hitters, I usually start with VH vs PH% and work backward from there. For pitchers, I start with bbFIP. I hope that you are all a little more informed on how xStats work, how they’re calculated, and their role in baseball analysis.

Dave Cherman

Across the Seams Manager, also a former player and umpire and New York-based lawyer who spends his free time studying advanced statistics and obsessing over fantasy trades. Will debate with you about most anything.

4 responses to “An Introduction to xStats”

  1. Mike says:

    Good job Dave, this is really helpful for us xSTATS newbies. I saw xBACON this winter and I thought autocorrect did something in an article at first!

  2. theKraken says:

    As for OUTs, wouldn’t it be a good idea to apply weights to the positive outcomes? A HBP carries the same value as a well hit ball. It seems like xOPS is staring back at you in that data somewhere, which was a true revolution as it gained momentum.

    The other question I have about xStats is, do you care at all about the hitters macro trends or is every ball evaluated the same? For example, is the same combination of angles and exit velocity resulting in the same outcome for every player? I am getting at the idea of a shift or the real benefits that a non-dead-pull hitter gains along with the real problems with being a dead-pull hitter. A guy can murder balls into an over-shift and it is not going to lead to the same outcomes as a player that sprays the ball around hits the same ball. To that end, is a similarly hit one-hoppere through the 3-4 hole evaluated the same for a right-handed as a left-handed hitter? One is an out and the other is an excellent piece of hitting. This is just stuff that I always wonder about with StatCast type data.

    Beyond my potentially annoying questions, thanks for the explanation. I thought these made sense and aided in my understanding. I liked your last paragraph a great deal. Everyone is always looking for the simple answer, but that only provides simple analysis.

    • Andrew says:

      The hit by pitch isn’t weighted the same as a well hit ball.
      Walk: .98
      HBP: .69
      Well Hit Ball: 1.52
      Well hit ball with high HR chance: 4.04
      Weakly hit ball: .77
      Strike out: .94

  3. Ben Pernick says:

    I’d like to see how the Elite/Average/Poor classifications for VH% and PH% change for 2019. It definitely seems that 10% VH% is no longer elite and that it’s closer to 13-15% (Trout’s was 15.6%). It seems that PH% has also gone up, with players like Arenado at 30% and the worst hitters closer to 35% (Max Kepler, Matt Wieters) or even approaching 40% (Miguel Rojas, Raimel Tapia).

Leave a Reply

Your email address will not be published. Required fields are marked *

Account / Login