An Introduction to xStats
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 xStats.org, 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.
Another major offensive xStat is OUTs. OUTs doesn’t appear to stand for anything but the formula for it is Weakly Hit Balls + Strike outs – Well Hit Balls – Walks – Hit By Pitch. As you can see it subtracts your positive at-bats from your negative at-bats to quantify your relative success at the plate. The lower number a hitter has in this stat, the better. Elite OUTs is -.100 or lower. Good is anything in the negative. Anything above .150 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.
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. bbFIP is the pitching equivalent of OUTs; it is calculated from the same formula that gives us OUTs and then puts in a numerical format similar to FIP/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.
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|
|Line Drives||High Drives||Fly Balls|
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 OUTs and work backward from there. For pitchers, I start with the pitching equivalent, 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.