Sign In
  • Support FanGraphs
    FanGraphs Membership
    Gift a Membership
    Donate to FanGraphs
    FanGraphs Store
  • Games
    Ottoneu Fantasy Baseball
    Signup, FAQ, Blog Posts
  • Blogs
    Blog Roll

    FanGraphs
    Podcasts: FanGraphs Audio | Effectively Wild

    FanGraphs Prospects
    Podcasts: UMP: The Untitled McDongenhagen Project

    RotoGraphs
    Podcasts: The Sleeper and The Bust | Field of Streams

    The Hardball Times
    Podcasts: THT Audio

    Community Research

    Archived Blogs: NotGraphs | TechGraphs | FanGraphs+
    Archived THT: THT Live | Dispatch | Fantasy | ShysterBall
    Archived Podcasts: Stealing Home | Doing It For Bartolo | OttoGraphs
  • Projections
    2021 Pre-Season Projections
    ZiPS, Steamer, Depth Charts
    ATC, THE BAT, THE BAT X
    2021 600 PA / 200 IP Projections
    Steamer600
    2021 Updated In-Season Projections
    ZiPS (RoS), ZiPS (Update)
    Steamer (RoS), Steamer (Update)
    Depth Charts (RoS)
    THE BAT (RoS), THE BAT X (RoS)
    3 Year Projections
    ZiPS 2021, ZiPS 2022
    DFS Projections
    SaberSim
    Auction Calculator
  • Scores
    Today
    Live Scoreboard, Probable Pitchers
    Live Daily Leaderboards
    Win Probability & Box Scores
    2020, 2019, 2018, 2017...
  • Standings
    2021 Projected Standings
    2021 Playoff Odds, Playoff Odds Graphs
    ZiPS Postseason Game-By-Game Odds
    AL East
    AL Central
    AL West
    NL East
    NL Central
    NL West
  • Leaders
    Major League Leaders
    Batting: 2020, 2019, 2018, 2017, Career
    Pitching: 2020, 2019, 2018, 2017, Career
    Splits Leaderboards
    Season Stat Grid
    60-Game Span Leaderboards (Special)

    KBO Leaders
    Batting, Pitching

    Minor League Leaders
    AAA: International, Pacific Coast, Mexican
    AA: Eastern, Southern, Texas
    A+: California, Carolina, Florida State
    A: Midwest, South Atlantic
    A-: New York-Penn, Northwest
    R: Appalachian, Gulf Coast, Pioneer, Arizona
    R: Dominican
    Legacy Minor League Leaderboards

    WAR Tools
    Combined WAR Leaderboards
    WAR Graphs
    WPA Tools
    WPA Inquirer
    Rookie Leaders
    Batters 2020, Pitchers 2020
    Splits Leaders
    Batters: vs L, vs R, Home, Away
    Pitchers: vs L , vs R, Home, Away
  • Teams
    Team Batting Stats
    2020, 2019, 2018, 2017...
    Team Pitching Stats
    2020, 2019, 2018, 2017...
    Team WAR Totals (RoS)
    AL East
    Blue Jays  |  DC
    Orioles  |  DC
    Rays  |  DC
    Red Sox  |  DC
    Yankees  |  DC
    AL Central
    Cleveland  |  DC
    Royals  |  DC
    Tigers  |  DC
    Twins  |  DC
    White Sox  |  DC
    AL West
    Angels  |  DC
    Astros  |  DC
    Athletics  |  DC
    Mariners  |  DC
    Rangers  |  DC
    NL East
    Braves  |  DC
    Marlins  |  DC
    Mets  |  DC
    Nationals  |  DC
    Phillies  |  DC
    NL Central
    Brewers  |  DC
    Cardinals  |  DC
    Cubs  |  DC
    Pirates  |  DC
    Reds  |  DC
    NL West
    D-backs  |  DC
    Dodgers  |  DC
    Giants  |  DC
    Padres  |  DC
    Rockies  |  DC
    Positional Depth Charts
    Batters: C, 1B, 2B, SS, 3B, LF, CF, RF, DH
    Pitchers: SP, RP
  • RosterResource
    Offseason Tools
    2021 Opening Day Tracker
    2021 Offseason Tracker
    2021 Free Agent Tracker
    2021 Injury Report
    Current Depth Charts
    AL East
    Blue Jays
    Orioles
    Rays
    Red Sox
    Yankees
    AL Central
    Cleveland
    Royals
    Tigers
    Twins
    White Sox
    AL West
    Angels
    Astros
    Athletics
    Mariners
    Rangers
    NL East
    Braves
    Marlins
    Mets
    Nationals
    Phillies
    NL Central
    Brewers
    Cardinals
    Cubs
    Pirates
    Reds
    NL West
    D-backs
    Dodgers
    Giants
    Padres
    Rockies
  • Prospects
    Prospects Home
    THE BOARD!
    THE BOARD: Scouting + Stats!
    How To Use THE BOARD: A Tutorial
    Top Prospects List
    Top Prospects
    20212020
    AL
    BALCHWHOU
    BOSCLELAA
    NYYDETOAK
    TBRKCRSEA
    TORMINTEX
    NL
    ATLCHCARI
    MIACINCOL
    NYMMILLAD
    PHIPITSDP
    WSNSTLSFG
    AL
    BALCHWHOU
    BOSCLELAA
    NYYDETOAK
    TBRKCRSEA
    TORMINTEX
    NL
    ATLCHCARI
    MIACINCOL
    NYMMILLAD
    PHIPITSDP
    WSNSTLSFG

    • 2020 Preseason Top 100

  • Glossary
    Library
    Batting Stats
    wOBA, wRC+, ISO, K% & BB%, more...
    Pitching Stats
    FIP, xFIP, BABIP, K/9 & BB/9, more...
    Defensive Stats
    UZR Primer, DRS, FSR, TZ & TZL, more...
    More
    WAR, UBR Primer, WPA, LI, Clutch
    Guts!
    Seasonal Constants
    Park Factors
    Park Factors by Handedness
  • Sign In
Help Support FanGraphs


Become a Member No Thanks
Already a member? Log In
  • Intro
  • Features
  • Offense
    • Complete List (Offense)
    • OBP
    • OPS and OPS+
    • wOBA
    • wRC and wRC+
    • wRAA
    • Off
    • BsR
    • UBR
    • wSB
    • wGDP
    • BABIP
    • ISO
    • HR/FB
    • Spd
    • Pull%/Cent%/Oppo%
    • Soft%/Med%/Hard%
    • GB%, LD%, FB%
    • K% and BB%
    • Plate Discipline (O-Swing%, Z-Swing%, etc.)
    • Pitch Type Linear Weights
    • Pace
  • Defense
    • Overview
    • Def
    • UZR
    • DRS
    • Defensive Runs Saved – 2020 Update
    • Inside Edge Fielding
    • Catcher Defense
    • FSR
    • RZR
    • TZ / TZL
  • Pitching
    • Complete List (Pitching)
    • ERA
    • WHIP
    • FIP
    • xFIP
    • SIERA
    • Strikeout and Walk Rates
    • Pull%/Cent%/Oppo%
    • Soft%/Med%/Hard%
    • GB%, LD%, FB%
    • BABIP
    • HR/FB
    • LOB%
    • Pitch Type Linear Weights
    • SD / MD
    • ERA- / FIP- / xFIP-
    • Plate Discipline (O-Swing%, Z-Swing%, etc.)
    • Pace
    • PITCHF/x
      • What is PITCHF/x?
      • Pitch Type Abbreviations & Classifications
      • Heat Maps
      • Common Mistakes
      • PITCHf/x Resources
  • WE/RE/LI
    • RE24
    • Win Expectancy
    • WPA
    • LI
    • WPA/LI
    • Clutch
  • Principles
    • DIPS
    • Regression toward the Mean
    • Replacement Level
    • Sample Size
    • Splits
    • Projection Systems
    • Linear Weights
    • Counting vs. Rate Statistics
    • Park Factors
    • Park Factors – 5 Year Regressed
    • Positional Adjustment
    • Aging Curve
    • League Equivalencies
    • Pythagorean Win-Loss
    • Luck
  • WAR
    • What is WAR?
    • WAR for Position Players
    • WAR for Pitchers
    • FDP
    • fWAR, rWAR, and WARP
    • WAR Misconceptions
  • Business

WAR for Position Players

by Steve Slowinski
April 2, 2012

Wins Above Replacement (WAR), FanGraphs’ hallmark statistic, attempts to estimate a player’s total value relative to a free available player, such as a minor league free agent. Below is a breakdown of exactly how we calculate WAR for position players. If you would like to learn about WAR for pitchers, you can find the necessary details over at this Library page and if you want to know about WAR in general and how to use it, check out this page. Below is the method for calculating WAR for position players.

*****

Overview:

Compared to WAR for pitchers, calculating position player WAR is a walk in the park. It’s simpler, both conceptually and mathematically, and it’s relatively straightforward to calculate. WAR combines a number of inputs, but all of which are available on the site. The overall equation for WAR is:

WAR = (Batting Runs + Base Running Runs + Fielding Runs + Positional Adjustment + League Adjustment +Replacement Runs) / (Runs Per Win)

We will consider each aspect of the equation in turn, but the basic structure is that we take Batting, Base Running, and Fielding runs above average, add in a positional adjustment, a league adjustment, and then add in runs so that we are comparing to replacement level instead of average. That provides use with Runs Above Replacement (RAR), which we convert to WAR by dividing it by Runs Per Win. RAR and WAR communicate the same thing on different scales.

Below you will find a section on each of these components as well as links to entries that relate to those parts of the calculation. It would be unwieldy to included everything about how we calculate the precise value of taking an extra base in this post, for example, but the links will fill in the gaps. Also, on the site we have a statistic called Off which is Batting + Base Running and Def which is Fielding + Positional Adjustment.

Batting Runs

To calculate Batting Runs Above Average you only need to know three things about a player and several things about the league in general. You need the player’s wOBA, PA, and home park factor and you need League Average wOBA (lgwOBA), the wOBA Scale, MLB R/PA (lgR/PA), and the specific league (AL or NL) wRC and PA for non-pitchers. League wOBA, wOBA Scale, and R/PA can be found here. Park Factors can be found here and wRC and PA for the leagues can be found using the leaderboards.

The first step is to find Weighted Runs Above Average (wRAA) from the player’s wOBA, or you may simply find their wRAA on FanGraphs. To calculate their wRAA, do the following:

wRAA = ((wOBA – lgwOBA)/wOBA Scale) * PA

wRAA is simply a non-adjusted Batting Runs. To adjust wRAA for park and league, you do the following with the park factor expressed as a decimal (i.e. 0.95 for 95):

Batting Runs = wRAA + (lgR/PA – (PF*lgR/PA))*PA + (lgR/PA – (AL or NL non-pitcher wRC/PA))*PA

Essentially, you are talking wRAA and adding or subtracting in runs based on their home park and their league.

Base Running Runs

Base Running Runs (BsR) at FanGraphs is the combination of Ultimate Base Running (UBR) for non-stolen base type base running, Weighted Stolen Base Runs (wSB) for stolen base and cost stealing value, and Weighted Grounded into Double Play Runs (wGDP) for runs added or subtract due to a hitters knack for avoiding or hitting into double plays. UBR and wGDP are statistics developed by Mitchell Lichtman and provided to FanGraphs. You won’t be able to calculate UBR yourself because it requires video tracking data from Baseball Info Solutions, but wGDP is essentially a comparison between a player’s expected number of double plays and their true number of double plays measured in runs. Check it out here.

Base Running = UBR + wSB + wGDP

You can calculate wSB yourself, however. The calculation is as follows:

wSB = SB * runSB + CS * runCS – lgwSB * (1B + BB + HBP – IBB)

League stolen base runs (lgwSB) is:

lgwSB = (lgSB * runSB + lgCS * runCS) / (lg1B + lgBB + lgHBP – lgIBB)

As with all linear weights-based metrics, the runs values are estimates. In this case, the run value of a stolen base is set at .2 runs for all seasons. The run value of a caught stealing changes from year to year to reflect the changing value of runs and outs over the season.

runCS = 2 x RunsPerOut + 0.075

Runs Per Out is simply runs scored in the season divided by outs in the season. The seasonal constants for wSB can be found alongside the wOBA constants here.

Taking the value of a player’s stolen base runs and their runs on the bases in other situations provides us with the player’s base running runs above average.

Fielding Runs

For fielding runs above average, we use Ultimate Zone Rating (UZR) for all non-catchers. UZR is calculated using video tracking data from Baseball Info Solutions as developed by Mitchell Lichtman. You can read about UZR here and about defensive statistics more generally here.

For catchers we use the Stolen Base Runs (rSB) aspect of Defensive Runs Saved and Runs Saved on Passed Pitches (RPP) because there is no UZR for catchers. We currently do not include framing runs in WAR for catchers, and catcher defense is admittedly the most difficult to measure in general.

Fielding runs above average are relative to positional average, so a +10 first baseman is 10 runs better than the average first baseman and a +5 shortstop is five runs better than the average shortstop. For players who play multiple positions simply add their fielding runs from all positions.

Positional Adjustment

The positional adjustment is necessary for putting all defensive positions on the same scale. Fielding runs are relative to position average, but we need to include the fact that it is harder to play average shortstop than it is to play average first base. As a result, we add an adjustment for this.

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

A defensive game for these purposes is simply nine innings played at that position. So to calculate the positional adjustment:

Positional Adjustment = ((Innings Played/9) / 162) * position specific run value listed above

If a player has played multiple positions, you simply calculate the adjustment separately and add them together. The run value of the positional adjustments are based on empirically derived comparisons from a number of years ago. It is entirely possible that the positional adjustments could change over time, so it is important to understand that these are estimates.

League Adjustment

The league adjustment is a small correction to make it so that each league’s runs above average balances out to zero. Each league’s Batting Runs + Base Running Runs + Fielding Runs + Positional Adjustment often total to something slightly different from zero. The league adjustment fixes this and has a very tiny impact on player value.

To find the league adjustment find the league specific values (AL or NL) and do the following:

League Adjustment = ((-1)*(lgBatting Runs + lgBase Running Runs + lgFielding Runs + lgPositional Adjustment) / lgPA)*PA

This will tell you how many extra runs you need to add to the entire league per PA and then you multiply that by the specific player’s PA. This will add between 0 and 5 runs to a player’s value per season based on their league and PA.

Replacement Level Runs

So far, all of the components have been relative to league average. However, using average is not an ideal baseline because being an average player has value and because using Wins Above Average would not allow you to distinguish between a player who had one PA and a player who had 600 average PA. To this end, we compare players to replacement level, which you can think of as a freely available player such as a minor league free agent or very poor MLB bench player.

FanGraphs and Baseball-Reference have the same replacement level (1,000 WAR per 2,430 games played) and we allocate 57% of the WAR to position players and 43% to pitchers.

To that end, calculating replacement level runs proceeds like this.

Replacement Level Runs = (570 * (MLB Games/2,430)) * (Runs Per Win/lgPA) * PA 

That 570 represents the 57% of 1,000 available WAR, which you multiply by the percentage of total games played to that point in the season. Then you multiple that by the runs per win value divided by PA to put it on a scale of runs per PA, and then you multiply that by the number of PA the player had that year.

Essentially, you are calculating the difference between a replacement level player and an average player in that season given the number of PA.

Runs Per Win

Runs per win (RPW) is the value that allows us to convert runs to wins. It is based on the run environment and is usually between 9 and 10. You’ve probably heard the rule of thumb that 10 runs equals one win, but the actual ratio depends on run scoring in the league that year. The process reflects the average number of runs a team needs to score in order to add one win to their total. For example, if an 81-81 team has a run differential of zero, what would you expect the run differential to be for a team that is 82-80? That’s runs per win.

There are a variety of ways to arrive at RPW. The most famous is likely Patriot’s Pythagpat, which is is win estimator we use elsewhere on the site. However, for our RPW number we use a simplified version developed by Tom Tango that winds up matching Pythagpat give or take about .02 runs per win in any given year. Our formula looks like this:

RPW = 9*(MLB Runs Scored / MLB Innings Pitched)*1.5 + 3

In other words, this is the league’s runs scored per nine innings times 1.5, plus three. You will wind up with essentially an identical number as if you use the Pythagpat formula and matches the real life runs per win relationship just as well. You can find the values for each year here.

Important Notes

● WAR is park and league adjusted.

● WAR is context neutral, meaning players do not get additional credit for hitting with men on base or in high leverage situations.

● WAR is an estimate of value and should be treated as the center of a range of possibilities rather than a precise measure.

● If you apply this method, you may not return the exact same result that is shown on the site. This is because of rounding. Our park factors carry on for more digits than just the two or three that are shown, as does the R/PA, etc. You’ll never miss by more than a run or so if you do the calculation properly, but if you get a 6.1 WAR and we list 6.0 WAR, it is almost certainly just a function of rounding.

Below you can also find links to the original WAR series. Some of the specifics have changed since then, but they are still quite useful if you have additional inquiries. WAR for Position Players introduction series:

  • Part 1 – Batting
  • Part 2 – Fielding
  • Part 3 – Positional
  • Part 4 – Replacement
  • Part 5 – Converting Runs to Wins
  • Part 6 – Dollars
  • Part 7 – Additional Info.
  • Part 8 – Team Context




WAR for Pitchers
 
PITCHf/x Resources

Steve is the editor-in-chief of DRaysBay and the keeper of the FanGraphs Library. You can follow him on Twitter at @steveslow.

4
Leave a Reply

Please Login to comment
2 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
jferritto13FascistconradPaulS1954 Recent comment authors
newest oldest most voted
PaulS1954
Guest
PaulS1954
You can flag a comment by clicking its flag icon. Website admin will know that you reported it. Admins may or may not choose to remove the comment or block the author. And please don't worry, your report will be anonymous.

AS far as catcher defense rating, how can you NOT have a pitcher’s hold ability as a factor. If a pitcher doesn’t hold a runner on, doesn’t the catcher’s rSB go down?

Case in point, Lincecum and Bumgarner both have poor deliver time to HP with runners on base. This affects Posey’s rSB because a few tenths of a second will let the runner be safe instead of out.

Vote Up1Vote Down 
8 years ago
conrad
Guest
conrad
You can flag a comment by clicking its flag icon. Website admin will know that you reported it. Admins may or may not choose to remove the comment or block the author. And please don't worry, your report will be anonymous.

If UZR is not reliable for a year to year performance, how can WAR be reliable from year to year when 1/3 is based on UZR? For example, Torii Hunter’s WAR in 2002 was 3.2 and he had a .858 OPS with 23 stolen bases. The next year his OPS was .753 with 6 stolen bases and 7 CS. Despite this his WAR was higher at 3.5.

Vote Up0Vote Down 
8 years ago
Fascist
Member
Fascist
You can flag a comment by clicking its flag icon. Website admin will know that you reported it. Admins may or may not choose to remove the comment or block the author. And please don't worry, your report will be anonymous.

Shut the fuck up.

Vote Up-7Vote Down 
1 year ago
jferritto13
Member
jferritto13
You can flag a comment by clicking its flag icon. Website admin will know that you reported it. Admins may or may not choose to remove the comment or block the author. And please don't worry, your report will be anonymous.

Where does it state that UZR is NOT reliable from year to year? from their definition page “The other thing to remember is that UZR isn’t going to work well in small sample sizes, especially a couple of months or less. Once you get to one and three-year samples, it’s a relatively solid metric but defensive itself is quite variable so you need a good amount of data for the metrics to become particularly useful.” You compared it to a sample size of two season and used one player as an example versus multiple seasons and dozens of players. “UZR… Read more »

Vote Up0Vote Down 
10 months ago
You are going to send email to

Move Comment

Updated: Wednesday, March 3, 2021 3:22 AM ETUpdated: 3/3/2021 3:22 AM ET
Player Linker - Contact Us - Advertise - Terms of Service - Privacy Policy
sis_logo
All major league baseball data including pitch type, velocity, batted ball location, and play-by-play data provided by Sports Info Solutions.
mlb logo
Major League and Minor League Baseball data provided by Major League Baseball.
Mitchel Lichtman
All UZR (ultimate zone rating) calculations are provided courtesy of Mitchel Lichtman.
TangoTiger.com
All Win Expectancy, Leverage Index, Run Expectancy, and Fans Scouting Report data licenced from TangoTiger.com
Retrosheet.org
Play-by-play data prior to 2002 was obtained free of charge from and is copyrighted by Retrosheet.