Skip to content

Advanced Stats

There are different WARs (FanGraphs fWAR, Baseball-Reference bWAR, Baseball Prospectus WARP).

FanGraphs defines WAR as: (Sabermetrics Library)

WAR = (Batting Runs + BaseRunning Runs + Fielding Runs + Positional Adjustment + League Adjustment + Replacement Runs) / RunsPerWin

Where (all in “runs”):

  • Batting Runs = wRAA (weighted runs above average, from wOBA - see below)
  • BaseRunning Runs = BsR (runs above avg from baserunning model)
  • Fielding Runs = UZR / DRS / OAA-type metric converted to runs
  • Positional Adjustment = per-inning/per-game constant by position (C, SS, 2B, 3B, CF, LF/RF, 1B, DH) (The Hardball Times)
  • League Adjustment = small correction if you mix AL/NL, pitchers hitting, etc.
  • Replacement RunsReplacementRunsPerPA * PA or ReplacementRunsPerIP * IP

Very simplified FIP-WAR idea:

  1. Compute FIP (see below).
  2. Turn FIP into runs above/below replacement:
  3. Adjust for park & league, then divide by RunsPerWin.

Each site uses its own replacement level, park factors, leverage, etc., which is why fWAR and bWAR differ.

General formula:

  • The weights are year-specific linear weights derived from league run values, published in the FanGraphs Guts table. (Sabermetrics Library)

  • lgwOBA and wOBAScale are also year-specific constants (league wOBA and the scale factor chosen so league wOBA ≈ league OBP). (Sabermetrics Library)

A common version:

  • lgR = league runs, lgPA = league plate appearances; so lgR/lgPA is league runs per PA. (Sabermetrics Library)

wRC+ (park- & league-adjusted, scaled to 100)

Section titled “wRC+ (park- & league-adjusted, scaled to 100)”

Conceptually:

wRC+ = 100 × (player’s park-adjusted runs per PA ÷ league runs per PA)

A common algebraic representation (FanGraphs) after park & league adjustment is applied is: (Sabermetrics Library)

Interpretation:

  • OBP (on-base percentage):

  • SLG (slugging):

  • OPS: (Baseball Reference)

  • OPS+ is a normalized OPS that adjusts for league & park.

  • 100 = league average, >100 better, <100 worse, like wRC+.

Standard definition (FanGraphs / BBRef) - you remove HRs and strikeouts from both numerator and denominator. (Baseball Reference)

Where AVG = H/AB. This is effectively extra bases per at-bat. (Baseball Reference)

  • K% (strikeout rate):
  • BB% (walk rate):
  • HR/FB:

You can also use per-PA or per-BF versions depending on hitter vs pitcher.

Measures a pitcher on events he “mostly controls”: HR, BB/HBP, K. (Sabermetrics Library)

  • C is the FIP constant chosen so league FIP = league ERA for that season (FanGraphs publishes these in Guts). (FanGraphs)

Same structure as FIP, but replace HR with expected HR using league HR/FB: (Wikipedia)

  1. Compute:

  2. Plug into FIP formula:

  • ERA:

ERA+ (BBRef / MLB style) normalizes ERA to league average & park:

Conceptually: (MLB.com)

  • 100 = league-average pitcher; 150 = 50% better than league average (lower actual ERA).
  • K/9:
  • BB/9:
  • HR/9: