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)
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
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.
Frequently asked questions.
Is this fWAR or bWAR?
Why does the calculator ask for batting and fielding runs instead of working them out?
What is the positional adjustment and why is it so large?
Where does 'runs per win' come from, and why isn't it a fixed 10?
What are replacement runs, and how do I work them out if I don't have them?
What is the difference between WAR and wins above average?
How precise is a WAR figure?
References& sources.
- [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]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]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]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