We believe in transparency here at FanGraphs, which is why we’ve gone to some extreme lengths here in the Library to provide our readers with the tools necessary to personally calculate almost every single statistic available at FanGraphs. And that transparency also applies to the site’s hallmark statistic: Wins Above Replacement (WAR).
If you would like to calculate WAR values for pitchers, you can find the necessary details over at this Library page. If you’re interested interested in the steps behind calculating WAR values for position players, read on:
Compared to WAR for pitchers, position player WAR is a walk in the park. It’s simpler, both conceptually and mathematically, and it’s relatively straightforward to calculate.
Inputs. When measuring a player’s overall value, it’s important to take all aspects of the game into consideration. For position players, this means accounting for three variables: offense, defense, and base running. Thankfully, there are already statistics out there that can provide us with run values for each of these categories: Weighted Runs Above Average (wRAA, offense), Ultimate Zone Rating (UZR, defense)*, and Ultimate Base Running (UBR). Each of these statistics measures a player’s context-neutral value added above average, and all of them are calculated using linear weights.
These are the basic statistics that are inputs for WAR, but in order to get a player’s final WAR total, there are some other adjustments that need to be made.
*For catcher defense, rSB and RPP are used instead of UZR.
Park Factors. If you look closely, though, you’ll noticed that a player’s wRAA is not what is reported in the “Batting” section of their WAR value. That’s because players have their performances impacted by their home ballpark, so their wRAA totals must be adjusted based on their home park factors.
FanGraphs uses a five-year regressed park factor in its calculations, as single-season park factors can be flaky and variable. For more on park factors, see the Library page about them.
Positional Adjustment. Since the offensive and defensive inputs into WAR don’t account for position played in any way, adding together wRAA and UZR without any sort of adjustment will severely underrate players at difficult defensive positions (think short stop, center field, catcher). It’s not that difficult to be a +5 defender at a position like first base, but it takes considerable talent to be a +5 defensive center fielder.
Here are the full FanGraphs positional adjustments used in WAR:
Catcher: +12.5 runs (all are per 162 defensive games)
First Base: -12.5 runs
Second Base: +2.5 runs
Third Base: +2.5 runs
Shortstop: +7.5 runs
Left Field: -7.5 runs
Center Field: +2.5 runs
Right Field: -7.5 runs
Designated Hitter: -17.5 runs
As noted above, these values are calculated on a per 162 defensive game basis, and players receive weighted credit for each position that they play.
Replacement Level. Once you add together all the aspects above — UZR, UBR, positional adjustments, and park-adjusted wRAA — you’ll have a player’s value added above league average. But “average” is not a good baseline for a value statistic; it changes on a yearly basis, and teams pay a lot of money to average players. There are tons of major league ballplayers that are below average yet still retain jobs in the majors, so instead of looking at value above average, it’s important to look at value above replacement.
If a team’s starting center field gets injured and they have to replace that player with a Triple-A player, how much value would that team lose? That’s the conceptual basis of replacement level; it’s the level of talent that’s freely available on the free agent market at any time.
FanGraphs calculates replacement level as being 20 runs below average per 600 PAs. So if a player gets exactly 600 plate appearances, their positional adjustment would be +20. If they have more than 600 PAs, their adjustment would be higher; if they have fewer than 600 PAs, the adjustment would be lower. The exact formula is (20/600)*PA.
With all of this information, you should be able to reverse-calculate WAR for position players. You can also export stats to Excel and manipulate the WAR values yourself, if you would like to see how WAR looks, say, with DRS instead of UZR.
Any other questions? Be sure to read through the entire WAR for Position Players introduction series: