How this calculator works
WAR is not one formula but a family of estimates. This page implements the final step used by component-based versions: add the run values that a player contributes above a replacement-level player, then divide by the number of runs that equals one win in the current run environment. The components themselves, from batting and baserunning to fielding and positional value, come from the data provider. For a pitcher the run contribution is estimated from FIP relative to the league, scaled by innings and by leverage for relievers. Comparing WAR across different providers is unreliable because they use different components and defensive data.
Formula
Position player: WAR = (batting runs + baserunning runs + fielding runs + positional adjustment + league adjustment + replacement runs) / runs per win. Pitcher: runs saved = (league FIP - FIP) x innings / 9 x leverage; WAR = (runs saved + league correction + replacement runs) / runs per win.
Worked example
A position player has 20 batting runs, 3 baserunning runs, 8 fielding runs, a -5 positional adjustment, 2 league adjustment runs and 20 replacement runs, for 48 runs. At 9 runs per win, WAR = 48 / 9 = 5.33. A pitcher with a 4.10 league FIP and a 3.10 FIP over 200 innings at a leverage of 1 saves 1.00 x 200 / 9 = 22.22 runs, giving 22.22 / 9 = 2.47 WAR with no replacement runs added.
Advertisement
Frequently asked questions
Why do different sites show different WAR values?
They use different defensive metrics, different park factors and different replacement levels. Baseball-Reference and FanGraphs often disagree by half a win or more for the same player, and neither is the official figure.
What is replacement level?
It is the performance of a player who would be freely available, roughly a fringe major leaguer or a good minor leaguer. WAR measures the wins added over that baseline, not over a league-average starter.
Does this calculator derive the components?
No. It performs the final combination and division. Batting, fielding and positional runs require play-by-play and defensive data that this engine does not model, so enter the published components.