Audited ·Last updated 28 Jul 2026·4 citations·Tier 2·0 uses

fWAR Calculator — FanGraphs Wins Above Replacement for Position Players

fWAR calculator using the published FanGraphs aggregation for position players, with all nine positional adjustments and the runs-per-win conversion.

fWAR Calculator (FanGraphs Position Players)

The 'Batting' column on a player's FanGraphs Value tab: park- and league-adjusted runs above average at the plate, built from wOBA. Negative for below-average hitters, which is most of them.
The 'Base Running' column, which FanGraphs defines as UBR + wSB + wGDP — taking extra bases, stealing, and avoiding double plays. Rarely larger than about ±10 runs over a season.
The 'Fielding' column. FanGraphs uses UZR for most positions and a defensive-runs-saved framework for catchers. This is the component with the widest error bar in the whole calculation.
Primary defensive position
The positional adjustment is published per 162 defensive games, so it is prorated by this figure. FanGraphs itself prorates by innings, so a multi-position player will not match exactly — use the custom option for those.
Used only when the dropdown is set to 'use my own positional figure'. Ignored otherwise.
FanGraphs describes this as a small correction that makes each league's runs above average balance to zero — typically 0 to 5 runs a season, with a very tiny impact on player value.
The 'Replacement' column. FanGraphs computes it as (570 × MLB games ÷ 2,430) × (runs per win ÷ league PA) × PA. In the 2025 run environment that is about 0.0305 runs per plate appearance, so a 673-PA season gives 20.5.
FanGraphs computes this as 9 × (MLB runs ÷ MLB innings pitched) × 1.5 + 3, and states it is usually between 9 and 10. Official 2025 MLB totals of 21,614 runs in 43,075 innings give 9.77.
fWAR
7.1392
Runs above replacement divided by runs per win. This is FanGraphs' position-player WAR, not Baseball-Reference's — the two use different fielding inputs and will not agree for the same player.
Runs above replacement (RAR)
69.75 runs
Runs above average (RAA)
49.25 runs
Positional adjustment applied
6.25 runs
Wins above average (WAA)
5.0409
Share of a club's position-player WAR
37.57%
Reading the number
7.14 fWAR is 37.6% of the 19.0 position-player WAR an average club receives in a season. FanGraphs sets replacement level at a .294 team winning percentage and distributes 570 position-player WAR across 30 clubs each season, which is 19.0 per club.

Background.

There is no such thing as "the" WAR formula, and any calculator that pretends otherwise is selling you something. FanGraphs WAR and Baseball-Reference WAR are separate constructions that use different fielding inputs, different replacement-level machinery and completely different pitcher models, and they routinely disagree by a win or more on the same player-season. This page implements one of them — FanGraphs WAR for position players — and says so in the title, because a blended number would be a number nobody publishes.

What WAR is trying to do is simple even though the plumbing is not. Every contribution a position player makes is converted into runs above what an average major leaguer would have produced: runs at the plate, runs on the bases, runs in the field. A positional adjustment is then added, because a shortstop who fields like an average shortstop is a far more valuable defender than a first baseman who fields like an average first baseman, and the raw fielding numbers are measured against each position's own average. A small league adjustment forces each league's runs above average to balance to zero. Finally a replacement credit is added — the runs an easily available minor-league or bench player would have failed to produce over the same playing time — and the whole total is divided by the number of runs it takes to buy a win.

That last division is not a constant. FanGraphs computes runs per win from the season's run environment as 9 × (league runs ÷ league innings) × 1.5 + 3, and states the answer is usually between 9 and 10. Applying that published formula to official 2025 Major League totals — 21,614 runs in 43,075 innings — gives 9.77, which is this page's default. Every other default here is derived the same way rather than guessed.

The honest limitation of this calculator, stated plainly: it aggregates, it does not compute the components. Batting runs come out of wOBA with park and league corrections; base running is UBR plus wSB plus wGDP; fielding is UZR, or a defensive-runs-saved framework for catchers. None of those can be reconstructed from a box score, and all of them are published on a player's own FanGraphs page. So the workflow this page is built for is: open the Value tab, copy the component runs across, and then actually see how the number is assembled — swap the position, change the runs-per-win, strip out the replacement credit and watch what happens. That is a far more useful thing than a black box, and it is the only version of a WAR calculator that can be built honestly from published sources.

The positional adjustment table is worth the visit on its own. Catcher is worth +12.5 runs per 162 defensive games and first base −12.5, a 25-run swing — nearly two and a half wins — before a single ball is hit. Designated hitter is −17.5, the largest penalty on the board, which is why a DH has to hit enormously to be worth anything at all. Shortstop is +7.5; second base, third base and centre field are all +2.5; the corner outfield spots are −7.5.

The verdict text avoids the informal WAR scales that float around the internet. It reads the result against two figures FanGraphs publishes itself: replacement level is a .294 team winning percentage, and 570 of the 1,000 WAR available each season go to position players — which across 30 clubs is 19.0 position-player WAR per club per season. A season expressed as a share of that is a benchmark you can check rather than a label somebody invented.

What is fwar calculator (fangraphs position players)?

Wins Above Replacement is a framework, not a formula: it converts everything a player does into runs above average, adds a credit for the fact that his roster spot would otherwise have gone to a freely available replacement, and divides by the run-to-win exchange rate of the season he played in. FanGraphs' position-player implementation is WAR = (Batting Runs + Base Running Runs + Fielding Runs + Positional Adjustment + League Adjustment + Replacement Runs) ÷ Runs Per Win. Batting runs come from wOBA, adjusted for park and league. Base running runs are ultimate base running plus stolen-base runs plus double-play-avoidance runs. Fielding runs come from ultimate zone rating for most positions. The positional adjustment corrects for the fact that fielding metrics grade each player against his own position's average, and it is published per 162 defensive games: catcher +12.5, shortstop +7.5, second base, third base and centre field +2.5, the corner outfields −7.5, first base −12.5, designated hitter −17.5. The league adjustment is a small balancing correction. Replacement runs come from a published formula that spreads 570 WAR per season across every position-player plate appearance in the league. Runs per win is derived from the season's scoring environment and typically lands between 9 and 10. The result is context-neutral by design: it does not credit clutch performance, and FanGraphs describes the output as the centre of a range of possibilities rather than a precise measure. Baseball-Reference's WAR answers the same question with different components and is a genuinely different number.

How to use this calculator.

  1. Open the player's FanGraphs page and switch to the Value tab. Every input on this page except runs per win is a column there: Batting, Base Running, Fielding, Positional, League and Replacement.
  2. Copy the batting, base running and fielding runs across. All three can be negative and usually at least one of them is. Do not substitute wRC+ or OPS+ for batting runs — those are rate statistics on a different scale entirely.
  3. Choose the position and enter games at that position, or select 'use my own positional figure' and paste the Positional column directly. The direct route is exact; the dropdown prorates by games where FanGraphs prorates by innings, so a player who moved around the diamond will differ slightly.
  4. Enter the replacement runs from the Value tab. If you do not have them, the published formula gives roughly 0.0305 runs per plate appearance in the 2025 environment, so multiply plate appearances by that.
  5. Set runs per win for the season you are looking at. The default of 9.77 is what FanGraphs' published formula returns for 2025 Major League totals. Older, higher-scoring seasons run closer to 10.
  6. Read wins above average alongside WAR. The gap between them is purely the replacement credit, and it is how a durable but ordinary regular can post a positive WAR while being worth nothing at all relative to an average player.

The formula.

fWAR = (Batting + Base Running + Fielding + Positional + League + Replacement) ⁄ Runs Per Win

The aggregation is a sum and a division, but each term is doing distinct work and the order of reasoning matters.

Batting, base running and fielding runs are all measured against average, and all three are on the same scale — runs. That is the design choice that makes WAR possible at all: once a stolen base, a home run and a diving stop are all denominated in runs, they can simply be added.

The positional adjustment fixes a problem the fielding metric creates. Ultimate zone rating grades a shortstop against other shortstops and a first baseman against other first basemen, so a shortstop and a first baseman who both post 0 fielding runs look identical while being nothing of the sort. The adjustment restores the difference, and the published numbers are large: catcher +12.5 runs per 162 defensive games against first base at −12.5 is a 25-run gap, roughly two and a half wins, purely from where a player stands. Designated hitter at −17.5 is the largest penalty on the board, which is the arithmetic reason a full-time DH has to be an outstanding hitter to be worth even an average player's WAR.

The league adjustment is a bookkeeping correction: FanGraphs describes it as making each league's runs above average balance out to zero, typically adding between 0 and 5 runs a season with a very tiny impact.

Replacement runs are what turn a value-above-average statistic into a value-above-replacement one. The published formula, (570 × MLB games ÷ 2,430) × (runs per win ÷ league PA) × PA, distributes a fixed pool of 570 position-player wins across every plate appearance in the league, so it is proportional to playing time and nothing else. Two players with identical rate performance and different playing time therefore get different replacement credits, which is correct — the more durable one denied more plate appearances to a replacement.

Runs per win converts the total. FanGraphs computes it from the season's scoring environment as 9 × (league runs ÷ league innings pitched) × 1.5 + 3, and states the result is usually between 9 and 10. Higher-scoring environments need more runs to buy a win, because in a high-scoring game a given run swings the outcome less. Applying that formula to official 2025 Major League totals of 21,614 runs in 43,075 innings gives 9.7739756239, rounded to the 9.77 default here.

One caveat about how this page prorates. The positional adjustment is published per 162 defensive games and this calculator scales it by games at that position. FanGraphs itself prorates by innings at each position, so a player who split a season between shortstop and second base will not reproduce exactly through the dropdown. That is the reason the dropdown carries a 'use my own positional figure' option: paste the Positional column from the Value tab and the arithmetic is exact.

And the largest caveat of all, which FanGraphs states itself: WAR represents the centre of a range of possibilities rather than a precise measure. The fielding component in particular carries a wide error bar. A 0.3-win difference between two players is not a difference.

A worked example.

Example

This worked example uses a constructed full-season shortstop rather than a named player, because FanGraphs blocks automated retrieval of its player pages and no real Value-tab line could be verified for it. The arithmetic and every constant in it are the published ones; only the three component run totals are illustrative. Take a shortstop worth +30 batting runs, +4 on the bases and +8 in the field, who played 135 games at shortstop, with a +1 league adjustment, 20.5 replacement runs and a runs-per-win of 9.77. Positional adjustment first: shortstop is +7.5 runs per 162 defensive games, and 7.5 × 135 ÷ 162 = 6.25 runs exactly. Runs above average: 30 + 4 + 8 + 6.25 + 1 = 49.25. Add the replacement credit and runs above replacement is 69.75. Divide by 9.77 and fWAR is 7.1392016377 — call it 7.1 wins. Wins above average is 49.25 ÷ 9.77 = 5.0409416581, and the two-win gap between those figures is exactly the 20.5 replacement runs converted at 9.77 runs per win. As a share of the 19.0 position-player WAR an average club receives in a season, this one player is 37.5747454614% of a full club's position-player value. Two things are worth noticing about how the number was built. The 6.25 positional runs are more than a fifth of what the +30 bat contributed, entirely because of where he stood; move the same player to first base and the adjustment becomes −10.42, a 16.67-run swing that costs 1.7 wins without changing a single thing he did. And the fielding component — worth 8 runs here, about 0.8 wins — is the one with the widest error bar in the whole calculation, so the honest way to read 7.14 is as the centre of a range rather than as a measurement.

custom Positional Adjustment0
defensive Games135
runs Per Win9.77
replacement Runs20.5
fielding Runs8
batting Runs30
positionss
league Adjustment1
base Running Runs4

Frequently asked questions.

Is this fWAR or bWAR?
fWAR — FanGraphs' implementation, for position players only. It matters because the two systems are not variants of one another. FanGraphs builds its fielding component on ultimate zone rating while Baseball-Reference uses defensive runs saved, the two sites construct replacement level differently, and their pitcher models share almost nothing at all. Differences of a full win on the same player-season are routine and differences of two wins happen. There is no correct way to average them, which is why this page implements one published system and names it in the title rather than producing a blended figure nobody publishes.
Why does the calculator ask for batting and fielding runs instead of working them out?
Because they cannot be worked out from a box score. Batting runs come from wOBA, which weights each offensive event by its empirically measured run value and is then corrected for park and league. Fielding runs come from ultimate zone rating, which is built from batted-ball location data with hit-type, park and baserunner adjustments. Base running runs combine three separate models. All of them require play-by-play or tracking data, and all of them are published on the player's own FanGraphs page. Any calculator that claims to derive WAR from a box-score line has invented its own statistic and called it WAR.
What is the positional adjustment and why is it so large?
It corrects for the fact that fielding metrics grade every player against his own position. A shortstop at exactly average shortstop defence and a first baseman at exactly average first-base defence both score zero fielding runs, but the shortstop is doing something much harder. FanGraphs' published adjustments, per 162 defensive games, are catcher +12.5, shortstop +7.5, second base +2.5, third base +2.5, centre field +2.5, left field −7.5, right field −7.5, first base −12.5 and designated hitter −17.5. The 25-run gap between catcher and first base is about two and a half wins, before anybody swings a bat.
Where does 'runs per win' come from, and why isn't it a fixed 10?
It comes from the season's scoring environment. FanGraphs computes it as 9 × (league runs ÷ league innings pitched) × 1.5 + 3 and states the answer is usually between 9 and 10. It is not fixed because a run is worth less in a high-scoring league: if games routinely finish 9-7, one extra run changes fewer outcomes than it does in a league of 3-2 games. Applying the published formula to official Major League 2025 totals of 21,614 runs in 43,075 innings gives 9.77, which is this page's default. Using 10 flat is a reasonable approximation and will move a 7-win season by about a tenth of a win.
What are replacement runs, and how do I work them out if I don't have them?
They are the runs a freely available replacement-level player would have failed to produce over the same playing time, and they are what turns value-above-average into value-above-replacement. FanGraphs sets replacement level at a .294 team winning percentage and puts 1,000 WAR per season into the league, of which 570 go to position players. Its published formula is (570 × MLB games ÷ 2,430) × (runs per win ÷ league plate appearances) × PA. For a full 2,430-game season the first bracket is 1, so with 2025's 182,926 league plate appearances and 9.77 runs per win the rate works out at about 0.0305 replacement runs per plate appearance. Multiply the player's plate appearances by that: 673 PA gives 20.5, the default on this page.
What is the difference between WAR and wins above average?
Exactly the replacement credit, converted to wins. WAR measures a player against a freely available replacement; WAA measures him against an average major leaguer. The gap is the replacement runs divided by runs per win, which for a full-time player is roughly two wins. That is why a durable, thoroughly ordinary regular can post 2 WAR while sitting at 0 WAA: he is worth two wins more than the player his team would have had to call up, and nothing at all relative to an average starter. Both readings are legitimate; they answer different questions, and playoff-quality teams are usually built by looking at the second one.
How precise is a WAR figure?
Less precise than the two decimal places suggest, and FanGraphs says so on its own page: WAR represents the centre of a range of possibilities rather than a precise measure. The batting component is the tightest, because wOBA is built from events that are recorded unambiguously. The fielding component is by far the loosest — defensive metrics disagree with each other substantially over a single season and need roughly three years of data before they settle. In practice a gap of a few tenths of a win between two players should be read as a tie, and the sensible use of WAR is sorting players into broad tiers rather than ranking them one by one.

References& sources.

  1. [1]FanGraphs Library, 'WAR for Position Players'. Source of the aggregation implemented here, quoted verbatim: 'WAR = (Batting Runs + Base Running Runs + Fielding Runs + Positional Adjustment + League Adjustment + Replacement Runs) / (Runs Per Win)'. Also the source of all nine positional adjustments per 162 defensive games, of the replacement-runs formula '(570 * (MLB Games/2,430)) * (Runs Per Win/lgPA) * PA', of the runs-per-win formula '9*(MLB Runs Scored / MLB Innings Pitched)*1.5 + 3' with the statement that it is 'usually between 9 and 10', and of the description of the league adjustment as a small correction worth between 0 and 5 runs a season.
  2. [2]FanGraphs Library, 'WAR'. Source of the replacement-level definition used by this page's verdict text: 'There are currently 1,000 WAR per season based on a replacement level of a .294 winning percentage' and 'Of those 1,000, 570 WAR are allocated to position players and 430 WAR are allocated to pitchers'. The 19.0 position-player WAR per club figure is 570 divided by 30 clubs.
  3. [3]MLB Advanced Media, Stats API — 2025 team hitting totals for all 30 clubs. Summed, these give 21,614 runs, 182,926 plate appearances and 4,860 team-games (2,430 games, which is exactly the divisor in the published replacement formula). Used to derive this page's replacement-runs default of roughly 0.0305 runs per plate appearance.
  4. [4]MLB Advanced Media, Stats API — 2025 team pitching totals for all 30 clubs, summing to 43,075 innings pitched. Combined with the 21,614 runs above and FanGraphs' published runs-per-win formula, this gives 9 × (21,614 ÷ 43,075) × 1.5 + 3 = 9.7739756239, which is the 9.77 default on this page. Nothing here is estimated: the formula is FanGraphs' and the inputs are the league's own published totals.

In this category

Embed

Quanta Pro

Paid features are coming later.

  • All 590 calculators remain free
  • No billing is enabled
Coming soon