​
​
Sign In
  • Support FanGraphs
    FanGraphs Membership
    FanGraphs Shirts
    FanGraphs Mugs
    Gift a Membership
    Donate to FanGraphs
  • Fantasy
    Fantasy Tools
    Fantasy Player Rater
    Auction Calculator
    Ottoneu Fantasy Baseball
    Signup, FAQ, Blog Posts
  • Blogs
    Blog Roll

    FanGraphs
      Podcasts: Effectively Wild

      FanGraphs Prospects

      RotoGraphs
        Podcasts: The Sleeper and The Bust | Field of Streams | Beat the Shift

        Community Research

          Archived Blogs: The Hardball Times | NotGraphs | TechGraphs | FanGraphs+
          Archived THT: THT Live | Dispatch | Fantasy | ShysterBall
          Archived Podcasts: FanGraphs Audio | Chin Music | UMP: The Untitled McDongenhagen Project | Stealing Home | Doing It For Bartolo | OttoGraphs |
        • Projections
          2025 Pre-Season Projections
          ZiPS, ZiPS DC
          Steamer
          Depth Charts
          ATC
          THE BAT, THE BAT X
          OOPSY
          2025 600 PA / 200 IP Projections
          Steamer600, Steamer600 (Update)
          2025 Updated In-Season Projections
          ZiPS (RoS), ZiPS (Update), ZiPS DC (RoS)
          Steamer (RoS), Steamer (Update)
          Depth Charts (RoS)
          ATC DC (RoS)
          THE BAT (RoS), THE BAT X (RoS)
          OOPSY DC (RoS)
          3-Year Projections
          ZiPS 2026, ZiPS 2027
          On-Pace Leaders
          Every Game Played, Games Played %
          Cy Young Award Projections

          Auction Calculator
        • Scores
          Today
          Live Scoreboard, Probable Pitchers
          Live Daily Leaderboards
          Win Probability & Box Scores
          2025, 2024, 2023, 2022, 2021, 2020, 2019
          AL Games
          NL Games
        • Standings
          2025 Projected Standings
          2025 Playoff Odds, Playoff Odds Graphs
          2024 ZiPS Postseason Game-By-Game Odds
          AL East
          AL Central
          AL West
          NL East
          NL Central
          NL West
        • Leaders
          Major League Leaders
          Batting: 2025, 2024, 2023, 2022, 2021, Career
          Pitching: 2025, 2024, 2023, 2022, 2021, Career
          Fielding: 2025, 2024, 2023, 2022, 2021, Career
          Major League Leaders - Rank
          Batting: Ranking Grid, Compare Players, Compare Stats
          Pitching: Ranking Grid, Compare Players, Compare Stats
          Splits Leaderboards
          Season Stat Grid

          Postseason Leaders
          Batting: 2024, (WS), (LCS), (LDS), (WCS), Career
          Pitching: 2024, (WS), (LCS), (LDS), (WCS), Career

          Spring Training Leaders
          Batting: 2025, 2024, 2023
          Pitching: 2025, 2024, 2023

          KBO Leaders
          Batting, Pitching
          NPB Leaders
          Batting, Pitching

          Minor League Leaders
          AAA: International League, Pacific Coast League
          AA: Eastern League, Southern League, Texas League
          A+: Midwest League, South Atlantic League, Northwest League
          A: California League, Carolina League, Florida State League
          CPX: Arizona, Florida
          R: Dominican Summer League
          College Leaders
          Batting, Pitching

          WAR Tools
          Combined WAR Leaderboards
          WAR Graphs
          WPA Tools
          WPA Inquirer
          Rookie Leaders
          Batters 2025, Pitchers 2025
          Splits Leaders
          Batters: vs L, vs R, Home, Away
          Pitchers: vs L, vs R, Home, Away
        • Teams
          Team Batting Stats
          2025, 2024, 2023, 2022, 2021, 2020
          Team Pitching Stats
          2025, 2024, 2023, 2022, 2021, 2020
          Team WAR Totals (RoS)
          AL East
          Blue Jays  |  DC
          Orioles  |  DC
          Rays  |  DC
          Red Sox  |  DC
          Yankees  |  DC
          AL Central
          Guardians  |  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
          Current Depth Charts
          AL East
          Blue Jays
          Orioles
          Rays
          Red Sox
          Yankees
          AL Central
          Guardians
          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
          In-Season Tools
          2025 Closer Depth Chart
          2025 Injury Report
          2025 Payroll Pages
          2025 Transaction Tracker
          2025 Schedule Grid
          2025 Probables Grid
          2025 Lineup Tracker
          2025 Minor League Power Rankings
          Offseason Tools
          2025 Free Agent Tracker
          2025 Offseason Tracker
          2025 Opening Day Tracker
        • Prospects
          Prospects Home
          The Board
          The Board: Scouting + Stats!
          How To Use The Board: A Tutorial
          Farm System Rankings

          Top Prospects List
          20252024
          AL
          BALCHWATH
          BOSCLEHOU
          NYYDETLAA
          TBRKCRSEA
          TORMINTEX
          NL
          ATLCHCARI
          MIACINCOL
          NYMMILLAD
          PHIPITSDP
          WSNSTLSFG
          2025 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
        • 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)
          • PitchingBot Pitch Modeling Primer
          • Stuff+, Location+, and Pitching+ Primer
          • 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

        Search Results

        ERA- / FIP- / xFIP-

        by Piper Slowinski
        April 8, 2011

        Minus Stats 7-19-15

        ERA Minus, FIP Minus, and xFIP Minus are the pitching version of OPS+ and wRC+ and are a simple way to tell how well a player performed in relation to league average. All of these statistics have a similar scale, where 100 is league average and each point above or below 100 represents a percent above or below league average. However, as lower is better for (almost) all pitching stats, a lower ERA- or FIP- is better.

        To learn about ERA, FIP, or xFIP specifically, please visit their respective Library pages. ERA-, FIP-, and xFIP- are the park and league adjusted versions of each of those statistics. In other words, a pitcher with an 80 ERA- had a park adjusted ERA that was 20 percentage points better than their league’s (AL or NL) ERA for that season.

        Calculation:

        Calculating ERA-, FIP-, or xFIP- is very easy as long as you have three pieces of information: your player’s ERA, FIP, or xFIP, their team’s park factor, and the league average (AL or NL) ERA, FIP, or xFIP for that time period. Once you have those, the formula looks like this, shown with ERA. The calculations are identical for FIP and xFIP.

        ERA Minus = 100*((ERA + (ERA – ERA*(PF/100)) )/ AL or NL ERA)

        In 2014, Clayton Kershaw had a 1.77 ERA, a home park factor of 96, and the NL ERA was 3.66. So we do the following calculation:

        50 = 100*(1.77 + (1.77 – 1.77*(96/100)))/ 3.66

        Please note that our listed park factors are rounded so there may be a few occasions in which your calculation is off by one point as a result. Otherwise, you simply take the player’s ERA, adjust it for their home park, divide by league average, and multiply by 100 (just for presentation) to return the ERA-.

        Why ERA-/FIP-/xFIP-:

        Using a park and league adjusted version of your favorite pitching statistic is very useful for two reasons. First, park adjustments are important because the 30 MLB parks are different enough that you would expect run scoring to vary based only on the dimensions, altitude, and weather even if the players made the same pitches and same swings. The results aren’t dramatic outside of Coors Field, but shifting the baseline by 5 or 10 percent is meaningful when comparing players. Simply put, it’s more difficult to prevent runs in Yankee Stadium than it is at Tropicana Field so we should adjust a player’s numbers accordingly. A 3.00 ERA at Yankee Stadium is more impressive than one at the Trop and ERA- allows us to quantify that difference.

        Second, adjusting for league average is important for two reasons. You certainly want to make some sort of correction for the fact run scoring is higher in the AL than the NL, but you also want to scale ERA to league average so that you can compare players during different eras. By dividing by the league specific ERA, you are able to do both. As a result, a 95 ERA- in 2014 and a 95 ERA- in 2000 both communicate that the pitcher was 5 percent better than league average during that season, even though league average ERA was very different between those two seasons.

        For example, a 4.00 ERA in 2000 was pretty good but a 4.00 ERA in 2014 would be below average. ERA- allows you to compare those two seasons because without it, you might be left to assume they were roughly equivalent when they were not.

        How to Use ERA-/FIP-/xFIP-:

        Using ERA-/FIP-/xFIP- is a snap. Since you already know how to use each one of those statistics on their own, the only thing you need to know about using the “minus” stats is that league average for that year and league is always set to 100 and that every point below 100 means the pitcher is that many percentage points better than league average in that particular stat, after accounting for the player’s home park.

        For example, an 87 ERA- is 13 percentage points better than the league average ERA for that year and league once you account for the park. A 110 ERA- is 10 percentage points worse than the league average ERA for that year and league once you account for the park.

        Essentially, the only reason to use regular ERA instead of ERA- is for ease of communication or if you actually want to observe the differences created by the run environments. Many people understand what a 3.50 ERA means, but telling someone a player has a 96 ERA- may be a bit more confusing. If you have a good internal sense of league average for that season and how the parks affect run scoring, using ERA in conversation will do the trick. But if you want to make detailed comparisons across players (i.e. Player X is better than Player Y because his ERA is better), you want to make sure you’re using the park and league adjustments.

        Context:

        League average for ERA-, FIP-, and xFIP- is always set to 100 for each league, but the specific distribution will bounce around from season to season. The following, however, is a good rule of thumb based on starting pitchers. Relievers will have lower values on average just like when dealing with ERA or FIP.

        Rating ERA-/FIP-/xFIP-
        Excellent 70
        Great 80
        Above Average 90
        Average 100
        Below Average 110
        Poor 115
        Awful 125

        Things to Remember:

        ● ERA-, FIP-, and xFIP- are park and league adjusted. They control for home park and your specific league’s average ERA, FIP, or xFIP.

        ● League average is always set to 100.

        ● Every point above or below 100 is a one percentage point deviation from average during that year.

        ● Park Factors are estimates, which means that they will not always influence every pitcher the same way. Also, particular pitchers might be more or less influenced by their home park than average, so there is some inherent uncertainty in ERA- because the park factors are imperfect. For example, a 3.00 ERA in the NL in 2014 is an 86 ERA- with a 95 park factor, an 84 ERA- with a 98 park factor, and an 80 ERA- with a 102 park factor. If a park factor is dramatically wrong, the influence is still only within five or so percent.

        Links for Further Reading:

        The Minus Stats – FanGraphs

        ERA-, FIP-, xFIP- – FanGraphs

        Esoteric Ramblings about + – Walk Like A Sabermetrician


        xFIP

        by Piper Slowinski
        February 15, 2010

        xFIP Flash Card 12-29-15

        Expected Fielding Independent Pitching (xFIP) is a regressed version of Fielding Independent Pitching (FIP), developed by Dave Studeman from The Hardball Times. It’s calculated in the same way as FIP, except it replaces a pitcher’s home run total with an estimate of how many home runs they should have allowed given the number of fly balls they surrendered while assuming a league average home run to fly ball percentage (between 9 and 10% depending on the year).

        Home run rates are generally unstable over time and fluctuate around league-average, so by estimating a pitcher’s home run total, xFIP attempts to isolate a player’s ability level. A pitcher may allow home runs on 12% of their flyballs one year, then turn around and only allow 7% the next year. HR/FB ratios can be very difficult to predict because they contain a lot of noise, so xFIP attempts to correct for that and provide you with a sense of the pitcher’s underlying performance.

        To learn more about why we’re interesting in Defense Independent Pitching Statistics (DIPS), check out our primer on FIP. This entry will walk you through the benefits of xFIP, assuming you have a basic understanding of DIPS and FIP.

        Calculation:

        Here is the full formula for xFIP. Notice how it is almost exactly the same as the formula for FIP, with the lone difference being how each accounts for home runs. In traditional FIP, you would use the pitcher’s home run total, but in xFIP, you derive an expected number of home runs by taking the pitcher’s fly balls allowed multiplied by the league average home run per fly ball rate. League average HR/FB% is available here and only dates back to 2002.

        xFIP = ((13*(Fly balls * lgHR/FB%))+(3*(BB+HBP))-(2*K))/IP + constant

        The constant is solely to bring FIP and xFIP onto an ERA scale and is generally around 3.10. You can find historical FIP constants (which is the same as the xFIP constant) values here, or you can derive the constant yourself. Because FIP is designed so that league average ERA and league average FIP are the same, to find the constant for any year, all you need to do is the following:

        FIP Constant = lgERA – (((13*lgHR)+(3*(lgBB+lgHBP))-(2*lgK))/lgIP)

        Knowing how to calculate the constant can be especially useful if you’re interested in doing some of your own calculations for data spanning multiple seasons. The individual weights for home runs, walks/HBP, and strikeouts are based on the relative values of those actions with respect to run prevention.

        Why xFIP:

        While the value of moving from ERA to FIP is that it attempts to strip out defense, luck, and sequencing, moving from FIP to xFIP is useful because it tries to remove some of the randomness in the pitcher’s actual performance. Everything we do to calculate FIP is based on the idea that the pitcher is responsible for strikeouts, walks, hit batters, and home runs while the defense is not. This makes FIP a better indicator of pitcher performance than ERA.

        However, we also know that the number of fly balls that go for home runs is very sensitive to sample size meaning that over the course of a season, the number of home runs a pitcher allows may be higher or lower than their true talent indicates. This is not to say pitcher’s aren’t responsible for the home runs they did allow, but rather to say that if you want to judge about how well they pitched, xFIP will remove some of those fluctuations in HR/FB% and will give you a better idea. For this reason, our pitcher Wins Above Replacement (WAR) is based on FIP rather than xFIP. They gave up the home runs so they count against them, but xFIP suggests they probably won’t continue to do so in the future.

        To give you an idea, let’s imagine a pitcher who threw 200 innings, struck out 200, walked and hit 60, gave up 24 home runs, and 240 fly balls. This pitcher would have a FIP of 3.56 (if we assume a 3.10 FIP constant). This pitcher has a league average HR/FB%, so we can also say their xFIP is 3.56.

        Now imagine if during the course of this season, this pitcher allowed five more home runs to carry the fence. That’s not even one extra home run per month.That turns into a 3.89 FIP, but the pitcher’s xFIP remains 3.56. In the first scenario, the pitcher has a 10% HR/FB% and in the second scenario it’s 12%. That may not seem like a big gap, but it is. And we also know that these rates are not typically very stable over time, which means that there is an awful lot of random noise involved. When discussing a pitcher’s past value, those home runs should count against them, but if you want to evaluate their underlying performance, knowing their fly ball rate is more useful.

        As a result, xFIP strips out some of this fluctuation to give you a better view of how well we think a pitcher pitched over a given period of time, while controlling for defense, batted ball luck, and sequencing, and also HR/FB%. In other words, we use xFIP to see how a pitcher might be expected to perform given an average HR/FB% because we do not expect pitchers to have much control over that number. They can control how many fly balls they allow, but only a limited set of pitchers can truly influence their HR/FB%. This makes xFIP a very useful statistic if used properly.

        How to Use xFIP:

        Using xFIP is both extremely easy and moderately complex. From a simple perspective, xFIP is on an ERA scale, so you can apply what you know about ERA and FIP to xFIP and have a good sense of what a given value means. A player with a 3.00 xFIP is just as good as you think a player with a 3.00 ERA is. The scale is intentionally identical, so reading xFIP is a snap.

        Using it appropriately when analyzing players requires a bit more caution. First, it’s not as simple as saying Pitcher A has a 3.40 ERA and FIP and a 3.70 xFIP, so he is due for regression. While xFIP is usually more predictive of future performance, there are reasons why a pitcher might not be expected to pitch to that particular xFIP.

        First, some pitchers can control their HR/FB% to some degree. Generally speaking, we expect most pitchers to approach a league average rate (About 10% most years), but some pitchers can consistently posts values around 8% and some can go as high as 12%. This is different than saying HR/FB% bounces around based on random variation. Some pitchers do the the ability to limit their HR/FB%, so being aware of your particular pitcher’s skill set is important. If a pitcher has routinely posted 9% HR/FB%, there’s a decent chance xFIP is underrating him a bit.

        Additionally, xFIP is a predictive model based on just one year of data or however many years you incorporate and every event is weighted equally. In this way, it is not better than a legitimate effort to forecast or project a pitcher’s ERA or FIP. You can think of it as a very basic forecast, but a proper forecast will include multiple years of data and will weight recent events differently than older events.

        Despite it’s limitations in those two regards, xFIP is a terrific way to get a sense of how well a pitcher’s been throwing the ball. xFIP tells us about a pitcher’s strikeout and walk rates, which are very important, and also inherently provides us with information about their batted ball profiles because fly ball rate is built into the model.

        In a very simple sense, FIP tells you how a pitcher has performed (value) independent of their defense while xFIP tells you about how well he has pitched (ability, talent) independent of their defense. Do not rush to assume a pitcher’s xFIP is a better reflection of their talent, but using it to get a sense of their abilities in conjunction with other statistics will make you much better off.

        Context:

        Please note that the following chart is meant as an estimate, and that league-average xFIP varies on a year-by-year basis so that it is always the same as league-average ERA. To see the league-average xFIP for every year from 1901 to the present, check the FanGraphs leaderboards.

        Rating FIP
        Excellent 2.90
        Great 3.20
        Above Average 3.50
        Average 3.80
        Below Average 4.10
        Poor 4.40
        Awful 4.70


        Things to Remember:

        ● xFIP is not park or league adjusted. We carry a park and league adjusted version called xFIP-, found in the “Advanced” tab of the leaderboards and player pages.

        ● xFIP only dates back to 2002, the first year we have reliable HR/FB% data. Sorry, you can’t find Sandy Koufax’s xFIP.

        ● While HR/FB ratios are generally unstable over time, some pitchers are still more prone to allowing home runs than others. If a pitcher has a long history of over- or under-performing the league average with their HR/FB rate, then you can reasonably expect them to perform closer to their career average than the league-average. In cases like this, xFIP may overestimate or underestimate a player’s true talent level by assuming a league average HR/FB ratio. For more, see SIERA.

        ● Ground ball pitchers typically have higher HR/FB ratios than fly ball pitchers.

        ● xFIP has one of the highest correlations with future ERA of all the pitching metrics.

        ● While xFIP is more predictive than FIP, we use FIP to build WAR because those home runs were the responsibility of the pitcher and not the defense, which WAR hopes to strip out.

        Links for Further Reading:

        Batty for Baseball Stats – Hardball Times

        Better with Less: ERA Estimators – Baseball Prospectus

        Bannister Touts xFIP – Kansas City Star

        xFIP Calculator – New English D


        Stuff+, Location+, and Pitching+ Primer

        by Owen McGrattan
        March 10, 2023

        Introduction

        Pitching+ is one of three models that, along with Stuff+ and Location+, attempts to look at the process underlying a pitcher’s performance in order to remove some of the noise that can be present when looking at on-field results. Eno Sarris and Max Bay created Pitching+, with inspiration from work by Ethan Moore, Harry Pavlidis, and Jeremy Greenhouse, among others. Sarris and Owen McGrattan currently maintain and work to improve the model, with engineering support from Matt Dennewitz.

        Stuff+

        Stuff+ looks only at the physical characteristics of a pitch. Important features include, but are not limited to, release point, velocity, vertical and horizontal movement, and spin rate. A pitcher’s secondary pitches are defined based on their primary fastball — with “primary” defined by usage in an outing — and so are judged by velocity and movement differentials along with raw velocity and movement numbers. The model also includes “axis differential,” a statistic that attempts to describe the difference between the movement expected by spin alone and the observed movement affected by the phenomenon described as seam-shifted wake.

        Stuff+ was trained against run values, so even if the research community is divided about how much a pitcher can control weak contact, the model includes an inherent nod to the possibility that they do possess some of that ability. The importance of release point in the model also suggests that Stuff+ includes some deception — you’ll find some pitchers with unique release point and movement combinations score very well despite lower velocities, at least. Vertical attack angle is not explicitly in the model, but it is captured by the interaction between release points and movement.

        Generally, the model aims to capture the “nastiest” pitches in baseball, using a decision tree-based model to capture the nonlinear relationships that exist across release points, velocities, pitch movement, and more.

        Here’s a look at how velocity and vertical movement combine to make a slider good, with Jacob deGrom’s slider shown in black, the league average slider shown in green, and the league’s performance in each bucket shown by the colors (red = good for the pitcher):

        Location+

        Location+ is a count- and pitch type-adjusted judge of a pitcher’s ability to put pitches in the right place. No velocity, movement, or any other physical characteristics are included in the statistic. A breaking ball should go to different parts of the strike zone in 2-0 and 1-2 counts, and Location+ captures that phenomenon. Stringer-based command statistics that attempt to judge what a pitcher was intending to do with each pitch do not add predictive value to those models, so Location+ only looks at actual locations and implicitly assumes the intent is generally the same across the league in certain counts with certain pitches.

        Here’s a look at how Location+ values change around the zone, specifically for a right-handed pitcher throwing a sinker to a right-handed batter in a 3-2 and 3-1 count, as seen from the batter’s side:



        Pitching+

        The overall model, Pitching+, is not just a weighted average of Stuff+ and Location+ across a pitcher’s arsenal. Rather, it is a third model that uses the physical characteristics, location, and count of each pitch to try to judge the overall quality of the pitcher’s process. Batter handedness is also included in Pitching+, capturing platoon splits on pitch movements and locations.

        The model is designed so that 10 points of Stuff+, Location+ and Pitching+ is a standard deviation on the pitch level. Once those numbers are summed up, the spread changes.

        Standard Deviation for SP/RP
        Model SP RP
        Stuff+ 12.16 17.02
        Location+ 3.34 5.87
        Pitching+ 4.94 6.61

        Fittingly, a reliever going to a starting role should see his Stuff+ drop around 5.5 points, which makes sense because relief pitchers usually don’t throw as hard once they move into starting.

        Stuff+ Averages/Standard Deviations
        Pitch Type Average Standard Deviation
        Four-Seam Fastball 99.2 18.3
        Changeup 87.2 16.4
        Curveball 105.5 16.8
        Cutter 102.1 14
        Knuckle Curve 110.3 16.4
        Sinker 92.5 13.6
        Slider 110.8 15.6
        Split-Finger 109.6 30.2

        Pitching+ Averages/Standard Deviations
        Pitch Type Average Standard Deviation
        Four-Seam Fastball 98.1 8.2
        Changeup 98.7 8.4
        Curveball 103.9 7.2
        Cutter 98.6 6.2
        Knuckle Curve 104.5 7.2
        Sinker 95.4 6.7
        Slider 106 6.9
        Split-Finger 107.6 10.3

        On the individual pitch level, it may be unsurprising that breaking and offspeed pitches are received more favorably by Stuff+ than fastballs, but the distributions tighten a bit when you look at Pitching+, which takes location into account. Changeups see some of the widest spread in Pitching+ largely due to the fact that they’re heavily reliant on velocity and movement differences compared to the primary fastball. Splitters see the largest spread because of the pitch’s sensitivity to differences in fastball characteristics, as well as how difficult the pitch is to locate in general. (There’s no table for Location+ values since they are centered at 100 for each pitch type.)

        The reason to use a model like this is simple: it’s predictively powerful. Before the season begins, Pitching+ out-predicts any current projection system for relievers when judged by the size of the Root Mean Square Error, as seen below by the bottom blue line. Once the season gets going (curved line), it takes about 250 pitches before in-season Pitching+ beats preseason projections for relievers. Here the horizontal lines represent pre-season ERA projections for the different projection systems as well as the previous year’s actual ERA, FIP, and xFIP. A linear transformation was performed to bring the previous year’s Pitching+ to an ERA scale. For the line plot, the RMSE is measured between the in-season Pitching+ up to that pitch number and the end-of-year ERA. So for all pitchers who threw at least 50 pitches, the RMSE in the first point is between the transformed Pitching+ at the 50th pitch and the end-of-year ERA.

        Starters are a little more complicated, as they have more robust on-field result samples and deeper arsenals, but the story is similar. Before the season, starting pitcher Pitching+ has a lower RMSE when compared to on-field results (ERA) than most projection systems. In season, Pitching+ begins to beat pre-season projections by around the 400th pitch, or four or five starts in.

        The power of this model really shines during any given season. Strikeout minus walk rate is powerful as a rest-of-season predictor, and Pitching+ becomes strongly reliable (it predicts itself rest-of-season) faster than K-BB% as judged by Cronbach’s Alpha. Similar to the graphs above, here we’re measuring Cronbach’s Alpha between the metric at the given PA number and the measure at the end of the year:

        Pitching+ also predicts rest-of-season results better than K-BB% in smaller samples:

        If Pitching+ is so powerful, why split the model into Stuff+ and Location+? That has to do with how quickly each becomes reliable — Stuff+ becomes reliable 80 pitches into the season and is extremely powerful relative to any other single stat in the tiniest of samples, while Location+ takes something more like 400 pitches to reach a similar level of stability (a high barrier, Chronbach’s Alpha ~0.9) — but also with how sticky each component is year to year. Below, you can see how sticky Stuff+, Location+, and Pitching+ are year to year, and how Stuff+ drives most of the season-to-season stickiness of the overall model:





        On any given pitch, the location is hugely important, more than the stuff. But stuff is stickier season to season and start to start, so it’s a safer bet; as noted here, the free agent market has also been paying more for stuff than location recently.

        The longer a pitcher is in the big leagues, the more their actual results matter when weighed against their Pitching+ numbers. But being able to judge a pitchers’ ability to throw good shapes and velocities to the right locations should also have separate value to those trying to evaluate hurlers because of how quickly those shapes, velocities, and locations become meaningful.


        PitchingBot Pitch Modeling Primer

        by Cameron Grove
        March 10, 2023

        Introduction

        The wealth of Statcast data that has become available to the public has led to a plethora of new ways to analyze players. We can now create statistics that are more indicative of a player’s approach and process rather than purely relying on outcomes.

        Expected statistics such as xBA and xwOBA have entered mainstream discourse, with fans understanding that these can sometimes be more useful than the results on the field. A hitter may barrel the ball for a deep fly out, but that barrel indicates that better results are likely to come in the future. Similarly, a pitcher can throw a great pitch that gets hit for a home run, but that great pitch may be indicative of future success.

        xBA takes a batted ball’s exit velocity and launch angle and uses a model to produce the probability of a hit. These pitch quality grades take this a step further back, using characteristics of individual pitches to produce an assessment of pitcher quality, with no reference to any outcomes after the ball is thrown.

        A number of independently derived pitch quality metrics have recently cropped up in public analysis. I developed this model over the past couple of years under the name PitchingBot, and used to host these grades on my website.

        Why Model Pitch Quality?

        Before going into too much detail, I should explain why these are useful statistics to make. By removing all references to outcomes, these grades are much more stable than other pitching statistics. This means that it is possible to make quicker judgments on player quality over smaller sample sizes. There is a wide range of features that an analyst must pay attention to when assessing pitcher quality, including velocity, movement, spin rate, release height and extension, spin/movement axis deviation, and location, among others. It can be tough to combine all of this information inside your head, but these models can weigh everything appropriately and distill it into a single number representing overall quality.

        There’s a reason that most, if not all, major league organizations have their own pitch quality models. These models’ outputs are driving pitch usage changes, and analytically-driven teams are some of the best at improving the pitch quality of players that they acquire. There are also applications beyond measuring the quality of major league pitchers. Pitch quality models can help to develop minor league players and measure their ability without needing to face big league hitters. They can also inform decisions on where pitches should be thrown in different scenarios to produce desired outcomes.

        These models use a completely different data source than most statistics that measure pitcher ability. There’s no point in mixing SIERA and xFIP together to produce a new statistic because they use very similar information. Mixing pitch quality grades with existing ERA estimators may provide a projection that is better than either statistic could produce independently because the grades provide new information.

        How is Pitch Quality Measured?

        This section is a detailed overview of how the pitcher grades are produced — feel free to skip ahead if you don’t want to see how the sausage is made.

        The core of the pitcher grading model is many smaller sub-models predicting individual event likelihoods. The flowchart below shows how these different sub-models can be joined together to get a full set of predicted outcomes. The reason for using so many sub-models is that by limiting the scope of each one, they can make much better predictions than a more general model that needs to divert its attention between many tasks.

        Pitches are categorized into fastballs, breaking balls, and offspeed pitches, each type with its own set of prediction models.

        A benefit of splitting the models up in this way is that it makes the grades less of a “black box.” By digging into the predictions, it is possible to see why a player gets good grades; the models may think they will get lots of swings and misses, or generate weak contact and groundballs.

        The input variables used by the models are:

        • Contextual variables
          • Pitcher handedness
          • Batter handedness & strike zone height
          • Count (balls & strikes)
        • Stuff variables
          • Velocity
          • Spin rate
          • Horizontal and vertical movement
          • Release point and extension
          • Spin efficiency (estimated) and spin/movement axis deviation
          • Difference in velocity and movement to the pitcher’s primary fastball
        • Location variables
          • Pitch height and horizontal position at the plate

        The models are produced using XGBoost, a machine learning technique that builds a collection of decision trees. This isn’t the place to go into a fully detailed overview of exactly how this works and specific parameter choices. Overfitting can be an issue with this method, but it may be avoided with careful training processes. These models should be robust enough to not produce bizarre outcomes like the probabilities seen on last season’s Apple TV+ broadcasts.

        A Walkthrough of One Pitch

        To understand how these predictions work to produce pitch values, here’s an example of a single pitch. On September 24, 2022, Jacob deGrom struck out Sean Murphy with a well-placed 2-2 slider. The models see the pitch location, speed, spin, movement, release point, etc. along with the context (a right-on-right 2-2 breaking ball), and produce the following predictions:

        Pitch Prediction: deGrom vs Murphy 9/24/2022
        Event Outcome
        xSwing% 82%
        xWhiff% (assuming a swing) 46%
        xFoul% (assuming contact) 44%
        xCalled Strike% (assuming no swing) 34%

        This gives the following likelihoods for different events:

        Pitch Prediction: deGrom vs Murphy 9/24/2022
        Event Outcome
        Swinging Strike% 38%
        Called Strike% 6%
        Ball% 12%
        Foul Ball% 19%
        Ball in Play% 25%

        For the ball in play outcomes, the model produces the following likelihoods of different types of ball in play:

        Pitch Prediction: deGrom vs Murphy 9/24/2022
        Batted Ball Type EV<90mph 90mph <= EV <= 95mph 95mph <= EV <= 100mph 100mph <= EV <= 105mph 105mph <= EV
        Groundball 47% 6% 5% 3% 2%
        Line Drive 14% 3% 3% 2% 1%
        Flyball 12% 2% 1% <1% <1%

        This ball is unlikely to be hard hit, with only a 17% probability, and it is most likely to be a groundball if put into play.

        Now that we know the range of possible outcomes, we can weigh each outcome by its run value to get an Expected Run Value (xRV) for the pitch. Strikes are better than balls and weak groundballs are better than hard-hit fly balls. xRV is normalized such that the average from any count is always zero. The table below shows how the different outcome probabilities contribute to the overall xRV:

        Pitch Prediction: deGrom vs Murphy 9/24/2022
        Event Context-neutral run value of event Contribution to xRV (run value x probability)
        Swinging Strike -0.235 -0.088
        Called Strike -0.235 -0.015
        Ball 0.127 0.015
        Foul Ball 0 0
        Ball in Play (sum of all different types) ~0 ~0
        Total xRV -0.088

        So this pitch was predicted to save the Mets 0.088 runs above the average pitch in that situation. These models are applied to every pitch thrown in major league games.

        Grading on the 20-80 Scale

        The previous section showed how to get the xRV for a single pitch, but how does that get turned into a statistic to measure pitcher quality? One option is to average all the xRVs and produce a metric on the runs scale. However, this could be tough to interpret, especially since “per pitch” is not a commonly used rate in baseball statistics.

        The 20-80 scouting scale is one that many baseball fans are familiar with. If you aren’t, you can read a primer about it here.

        Pitcher xRV values are converted to grades on the 20-80 scale. In addition, grades for individual pitch types are shown on this scale too.

        The average major league player is a 50 on the scale, with each step of 10 up or down representing one standard deviation in ability. Sixty is above average, 70 is excellent, and 80 represents one of the top players in the majors at that skill. The graph below shows that the distribution of pitcher grades follows a bell curve:

        In addition to the pitcher grades, I have also provided PitchingBot ERA. This puts the expected run value onto the ERA scale, which is more familiar to most fans.

        Stuff & Location

        The pitcher grades discussed so far use models that include both stuff and location features of pitches. I have also produced grades that only use stuff or location variables independently.

        The stuff models include everything except where the ball actually goes: pitch velocity, spin, movement, release point, etc. For the location-only models, no stuff variables are included, only the generic pitch type (fastball, breaking, offspeed), the context (balls, strikes, handedness), and the location of the pitch.

        For the stuff grades, only models that predict swing events are used (whiffs, foul balls, balls in play). Otherwise, the models would be trying to predict zone rate without any location cues.

        Stuff quality is much more stable than location quality within and between seasons, so stuff can be useful for analyzing small samples when other statistics aren’t appropriate. The graph below shows how these grades stabilize more quickly than other pitching statistics, especially the stuff grade. See this article for more details on how the stability of a statistic can be measured.

        Example of Usage

        To see why these grades may be useful in the analysis of a pitcher, let’s look at Logan Webb. Webb started his major league career by using a four-seam fastball as his primary pitch. In 2021, he switched to using a sinker instead, with much better results. Here are the stuff grades for those two pitches from 2019-22, along with Webb’s PitchingBot ERA.

        Logan Webb Four-Seamer vs. Sinker
        Season Four-seamer Sinker  PitchingBot ERA ERA
        Stuff Grade Usage Stuff Grade Usage
        2019 41 44% 54 13% 5.28 5.22
        2020 38 34% 65 15% 5.14 5.47
        2021 42 10% 55 38% 3.69 3.03
        2022 34 3% 51 33% 3.28 2.9

        The pitch grading model already knew that Webb’s sinker was much better than his four-seam fastball. When he changed his pitch mix, it produced a marked change in pitch quality and early evidence that he would break out in 2021.

        Limitations

        There are some caveats that come with the analysis of these grades because the models cannot account for everything that a pitcher does. Notable blind spots include the effects of command, deception, sequencing, and some arsenal effects.

        Command is unaccounted for because the model doesn’t know where a pitcher was aiming to throw the ball. Pitchers with good command have improved catcher framing numbers and can exploit hitters’ weaknesses more effectively. Command artist Kyle Hendricks was a notable model over-performer from 2015-2020.

        Similarly, some pitchers have deceptive deliveries or effective methods of using different pitches to keep hitters off balance. Ace starters such as Clayton Kershaw, Max Scherzer, and Corbin Burnes have reliably outperformed their expected pitch quality over a large sample.

        All ball-in-play predictions are treated independently of spray angle. If a pitcher such as Framber Valdez is able to pitch to the benefit of the defensive positioning behind him, the models do not account for it.

        And despite these grades being more stable than regular statistics, they can still be vulnerable to small sample size effects. This should be kept in mind when assessing a pitcher after only a few appearances.

        Summary

        Statcast data is ushering in a new era of model-based sabermetrics. FanGraphs will now present pitch quality grades that are a stable and results-independent measure of pitcher ability along with its traditional pitch values.

        FanGraphs will also have access to all of the predictions underlying these grades, allowing writers to explore new analysis opportunities, which I’m excited to read in the future.

        Cameron Grove worked as an independent baseball analyst before joining the Cleveland Guardians front office. His blog can be found here.


        Calculating Pitcher WAR, A Complete Example

        by Neil Weinberg
        April 17, 2017

        One of the hallmark statistics available at FanGraphs is Wins Above Replacement (WAR) and we’ve just rolled out an updated Library entry that spells out the precise calculations for pitchers in more detail than ever before. There’s always been a clear sense of the the kinds of things that go into our WAR calculation, but until this point finding the specific formula for pitcher WAR has been a little complicated.

        As of today, we’ve resolved that and I encourage you to go check out our basic primer on WAR and our detailed breakdown of how we calculate it for pitchers. If you’re a hands-on learner, grab a pen and paper or spreadsheet and follow along. I’m going to walk you through a complete example of how to calculate WAR for pitchers. Let’s use the 2016 version of Marcus Stroman as our exemplar. Please note that I will being rounding off certain numbers in the example to keep the page as neat as possible, so if you wind up being off by 0.1 WAR or so, don’t sweat it.

        See also: Position Player Formula | Position Player Example

        Read the rest of this entry »


        Player Splits Tool

        by Neil Weinberg
        December 15, 2016

        We have an interactive splits tool that allows you to create your own custom reports by combining splits of various metrics. All the splits that FanGraphs hosts on our main player pages are featured here, along with some new ones — including times through the order, outs, and day/night.

        The controls have five different sections: stats, splits, time frame, group by, and filter.

        screenshot-2016-12-15-at-1-06-39-pm

        Stats

        The “Stats” bar allows you to toggle between the three different groups of stats we currently host on a player’s split page. This isn’t too different from the standard, advanced and batted-ball tabs we feature elsewhere on the site.

        Splits

        The “Splits” bar is the most important control within the splits tool; this is where you can select which splits are applied. When no splits are applied, you’ll get the full season stats. When a split is applied like “vs. LHP,” you’ll get only the plate appearances against a left-handed pitcher. If you add another split like “Groundballs,” you’ll get all ground balls against left-handed pitchers. As you add splits from different categories, you’ll narrow the number of plate appearances.

        The splits which are applied appear as blue blocks above the table. If you wish to remove a split, either click the “X” on the split or unselect it within its menu.

        Mutually exclusive splits will be additive. Instead of narrowing the number of plate appearances, you will widen it. For example, selecting the splits “Line Drives” and “Flyballs” produces splits which include either a fly ball or line drive. If should also be noted that if you select every option within a mutually exclusive group (ie. “No Outs,” “1 Out” and “2 Outs”), you effectively haven’t applied any split, since all the plate appearances will be included.

        There is no limit to how many splits you can apply, but you might not have a meaningful result getting either a small sample or full-season stats.

        Group By

        The “Group By” bar allows you to select how the stats are organized. You can see the career totals, or have them broken out by season, month, weeks, or even games.

        Filter

        The tool also includes filtering options. These filtering options allow you to remove the lines of stats which don’t meet a specific criteria.

        splits-tool

        For example, if you wanted to view only those seasons in which Dexter Fowler recorded more than 200 plate appearances at home, you can add a filter for that. You could also add a filter to see the seasons where Fowler had over a 20% strikeout rate on those splits. This filter also works if you group by months, weeks and games, so, for example, you could return all the games in which a player had three or more hits. Filters act like the splits in that they can be combined and customized.

        Each filter has three different attributes: 1. What stat the filter uses, 2. What comparison operation is used and 3.) The value(s) to compare. A filter won’t change any values for the stat. It only affects which rows of stats are shown, not what data goes into calculating them – which is what the splits do.

        You can theoretically have an unlimited number of filters, except you can only use one playing-time filter (IP, TBF, G, PA, and AB) at a time. Once you start adding too many filters, you might not have any rows left, because the filters are too restrictive.

        Time Frame

        You can also select a specific date range. To do this, we added the “Time Frame” control bar, which now contains all date-related splits and controls. This gives you the option to view plate appearances occurring in a month or season half, and the day or night time-of-day split. These are different from a custom date range. Choosing the “May” split in the filter menu will display plate appearances from every May. This would be used for getting career stats in May.

        To look at splits from a specific date, there’s a drop-down calendar with which you can select the start date and end date. This will limit the splits to those specific days. This can be useful if you want to look at splits after a player returns from an injury, a trade or an adjustment. We’ve also included preset ranges like the last 30 days or the past calendar year. The calendar allows you to select both the beginning and end date on the same calendar and visualize the range. The Splits Reset button will reset just the splits, and the Reset button either on the “Time Frame” bar or in the calendar will reset just the date range.

        Technical Notes and Documentation

        General

        The splits tool is built upon play-by-play data going back to 2002. This means this tool will only provide splits on the play-level and not the pitch level.

        Creating specific splits can lead to small sample sizes, which can cause problems for stats that were created with full season, neutral context in mind. Some stats will behave oddly when splitting or creating a small sample. Fielding independent pitching (FIP) is a well-known of example of this. FIP is an ERA estimator based solely on innings pitched (IP), strikeouts (K), home runs (HR), hit by pitches (HBP) and walks (BB), if you create a split (say through an 0-2 count) where the Ks significantly outweigh HR, HBP, and BB, the FIP will be negative, which is not a valid value for ERA.

        Times Through the Order

        We include the first nine charged plate appearances. We encountered a few unique situations, where a player would not complete a plate appearance because of an out of the base paths. The first partial plate appearance does not count, but the second full plate appearance will.

        You are able to specify “as SP” or “as RP” through the “Position” split.

        Notes

        • It’s possible to get no data for splits if there are no applicable plate appearances.
        • There might be slight discrepancies in FIP, xFIP, wOBA and wRC+ between the splits tool and the legacy splits page, we used different methods to determine constants and adjustments to allow for flexibility.
        • “As LHH” or “As RHH” will return only plate appearances. Stats from the base paths will be ignored.
        • “First Half” and “Second Half” are determined by All-Star Games.
        • The batting average stat for the split “Balls in Play” is NOT BABIP since it includes home runs. BABIP removes home runs.
        • The “Count” splits represent when a plate appearance had that count at one point, not the count on which the plate appearance ended.
        • The “Export Data” function will provide numbers as decimal and not percentages. It also won’t round to familiar formats. This provides more compatibility with Excel and other data-analysis software.
        • Weeks begin on Monday and end on Sunday.
        • Months are used in two areas: the “Time Frame” split menu and the “Group By” button bar. The split menu will filter plate appearances, while the “Group By” bar will determine if the stats should be combined together or delineated by month. For example, you could see how a player performed in March, April and May. By grouping by season, you will see one stat line for each season; if you grouped by month, it would show you one stat line for Apr/Mar and another for May.
        • This has been tested on current versions of Chrome, Firefox and Safari. It may not be supported or fully supported on older browsers including Internet Explorer.

        Complete List (Pitching)

        by Neil Weinberg
        December 18, 2014

        Here in the FanGraphs Library, we have many pages devoted to extremely detailed breakdowns of some of our most prominent statistics. You can find hundreds of words about Weighted On-Base Average (wOBA) or Batting Average on Balls in Play (BABIP) for instance, but sometimes you aren’t looking for hundreds of words. Sometimes you just want some very basic information.

        With that in mind, we present this post which will serve as a complete directory for every single pitching statistic available at FanGraphs. This post is organized in accordance with our leaderboards, so if you see something in the “Advanced” tab of the leaderboard that you don’t recognize, come to this page and find the matching acronym in the “Advanced” section. You can also use “CTRL + F” in most browsers and type in the stat you’re looking to identify.

        There are a few stray statistics located around the site that don’t show up on the leaderboards, so please let us know if you find something that needs to be added. In any of the cases in which we have a full post about the stat, you’ll find links to that page.

        *****

        Dashboard

        W (Wins): Number of wins.

        L (Losses): Number of losses.

        SV (Saves): Number of saves.

        G (Games): Number of games in which the pitcher appeared.

        GS (Games Started): Number of games the pitcher started.

        IP (Innings Pitched): Number of total innings pitched (.1 represents 1/3 of an inning, .2 represents 2/3 of an inning).

        K/9 (Strikeouts per 9 innings): Average number of strikeouts per 9 innings.

        BB/9 (Walks per 9 innings): Average number of walks per 9 innings.

        HR/9 (Home Runs per 9 innings): Average number of home runs allowed per 9 innings.

        BABIP (Batting Average on Balls in Play): The rate at which the pitcher allows a hit when the ball is put in play, calculated as (H-HR)/(AB-K-HR+SF).

        LOB% (Left On-Base Percentage): Percentage of pitcher’s own base runners that they strand over the course of a season. Not equal to the LOB column in the box score.

        GB% (Ground Ball Percentage): The percentage of a pitcher’s balls in play that are ground balls, calculated as GB/BIP.

        HR/FB (Home Run to Fly Ball Rate): Percentage of a pitcher’s fly balls that go for home runs, calculated as HB/FB (even though some HR are line drives).

        ERA (Earned Run Average): The average number of earned runs a pitcher allows per 9 innings. ((ER*9)/IP)

        FIP (Fielding Independent Pitching): An estimate of a pitcher’s ERA based on strikeouts, walks/HBP, and home runs allowed, assuming league average results on balls in play.

        xFIP (Expected Fielding Independent Pitching): An estimate of a pitcher’s ERA based on strikeouts, walks/HBP, and fly balls allowed, assuming league average results on balls in play and home run to fly ball ratio.

        WAR (Wins Above Replacement): A comprehensive statistic that estimates the number of wins a player has been worth to his team compared to a freely available player such as a minor league free agent based on FIP.

        Standard:

        W (Wins): Number of wins.

        L (Losses): Number of losses.

        ERA (Earned Run Average): The average number of earned runs a pitcher allows per 9 innings. ((ER*9)/IP)

        G (Games): Number of games in which the pitcher appeared.

        GS (Games Started): Number of games the pitcher started.

        CG (Complete Games): Number of starts in which the pitcher recorded every out of an official game.

        ShO (Shutouts): Number of complete games in which the pitcher allowed no runs.

        SV (Saves): Number of saves.

        HLD (Holds): Number of holds.

        BS (Blown Saves): Number of times the pitcher entered in a save situation as lost the lead.

        IP (Innings Pitched): Number of total innings pitched (.1 represents 1/3 of an inning, .2 represents 2/3 of an inning).

        TBF (Total Batters Faced): The number of batters a pitcher has faced, akin to plate appearances.

        H (Hits Allowed): Number of hits allowed by the pitcher.

        R (Runs Allowed): Number of runs allowed by the pitcher.

        ER (Earned Runs Allowed): Number of earned runs allowed by the pitcher, determined by the official scorer.

        BB (Walks): Number of walks allowed by the pitcher.

        IBB (Intentional Walks): Number of intentional walks issue by the pitcher.

        HBP (Hit By Pitches): Number of hit batters.

        WP (Wild Pitches): Number of wild pitches.

        BK (Balks): Number of balks.

        SO (Strikeouts): Number of strikeouts.

        Advanced:

        K/9 (Strikeouts per 9 innings): Average number of strikeouts per 9 innings.

        BB/9 (Walks per 9 innings): Average number of walks per 9 innings.

        K/BB (Strikeout to Walk Ratio): Strikeouts divided by walks.

        HR/9 (Home Runs per 9 innings): Average number of home runs allowed per 9 innings.

        K% (Strikeout Percentage): Frequency with which the pitcher has struck out a batter, calculated as strikeouts divided by total batters faced.

        BB% (Walk Percentage): Frequency with which the pitcher has issued a walk, calculated as walks divided by total batters faced.

        K%-BB% (Strikeout Percentage minus Walk Percentage): The percentage differential between K% and BB%, often a better indicator of performance than K/BB, which can be skewed by very low walk rates.

        AVG (Batting Average Against): Rate of hits allowed per at bat, calculated as H/AB.

        WHIP (Walks Plus Hits per Inning Pitched): The average number of base runners allowed via hit or walk per inning.

        BABIP (Batting Average on Balls in Play): The rate at which the pitcher allows a hit when the ball is put in play, calculated as (H-HR)/(AB-K-HR+SF).

        LOB% (Left On-Base Percentage): Percentage of pitcher’s own base runners that they strand over the course of a season. Not equal to the LOB column in the box score.

        ERA- (Earned Run Average minus): ERA adjusted for park effects and league average (set to 100 for each year).

        FIP- (Fielding Independent Pitching minus): FIP adjusted for park effects and league average (set to 100 for each year).

        xFIP (Expected Fielding Independent Pitching minus): xFIP adjusted for park effects and league average (set to 100 for each year).

        ERA (Earned Run Average): The average number of earned runs a pitcher allows per 9 innings. ((ER*9)/IP)

        FIP (Fielding Independent Pitching): An estimate of a pitcher’s ERA based on strikeouts, walks/HBP, and home runs allowed, assuming league average results on balls in play.

        E-F (ERA-FIP Differential): The difference between the pitcher’s ERA and FIP.

        xFIP (Expected Fielding Independent Pitching): An estimate of a pitcher’s ERA based on strikeouts, walks/HBP, and fly balls allowed, assuming league average results on balls in play and home run to fly ball ratio.

        SIERA (Skill Interactive ERA): An ERA estimator that attempts to more accurately capture a pitcher’s performance based on strikeouts, walks/HBP, home runs, and batted ball data.

        Batted Ball

        BABIP (Batting Average on Balls in Play): The rate at which the pitcher allows a hit when the ball in put play, calculated as (H-HR)/(AB-K-HR+SF).

        GB/FB (Ground Ball to Fly Ball Ratio): The ratio of ground balls a pitcher allows to fly balls, calculated as GB/FB.

        LD% (Line Drive Percentage): The percentage of a pitchers’s balls in play that are line drives, calculated as LD/BIP.

        GB% (Ground Ball Percentage): The percentage of a pitchers’s balls in play that are ground balls, calculated as GB/BIP.

        FB% (Fly Ball Percentage): The percentage of a pitcherss balls in play that are fly balls, calculated as FB/BIP.

        IFFB% (Infield Fly Ball Percentage): Percentage of a pitchers’s fly balls that were infield fly balls, calculated as IFFB/FB.

        HR/FB (Home Run to Fly Ball Rate): Percentage of a pitcher’s fly balls that go for home runs, calculated as HB/FB (even though some HR are line drives).

        RS (Run Support): Number of runs the pitcher’s team has scored during their appearances.

        RS/9 (Run Support per 9 innings): Number of runs the pitcher’s team has scored during their appearances per 9 innings.

        Balls (Balls): Number of total balls thrown.

        Strikes (Strikes): Number of total strikes thrown.

        Pitches (Pitches): Number of total pitches thrown.

        Pull% (Pull Percentage): Percentage of batted balls hit to the pull field.

        Cent% (Center Percentage): Percentage of batted balls hit to the middle of the field.

        Oppo% (Opposite Field Percentage): Percentage of batted balls hit to the opposite field.

        Soft% (Soft Contact Percentage): Percentage of soft-hit batted balls.

        Med% (Medium Contact Percentage): Percentage of medium-hit batted balls.

        Hard% (Hard Contact Percentage): Percentage of hard-hit batted balls.

         

        Win Probability

        WPA (Win Probability Added): The total impact a pitcher’s batters faced (or SB/CS) have on his team’s win expectancy relative to league average.

        -WPA (Negative Win Probability Added): The sum of a pitcher’s negative WPA events.

        +WPA (Positive Win Probability Added): The sum of a pitcher’s positive WPA events.

        RE24 (Run Expectancy 24 Base Out State): The total impact a pitcher’s batters faced (or SB/CS) have on his team’s run expectancy relative to league average.

        REW (Run Expectancy Wins): RE24 converted from runs to wins.

        pLI (Average Leverage Index): The average leverage index of each pitcher’s batters faced.

        inLI (Inning Leverage Index): The average leverage index at the beginning of the inning for the pitcher.

        gmLI (Game Leverage Index): The average leverage index at the beginning of the game for the pitcher.

        exLI (Exit Leverage Index): The average leverage index at the end of the appearance for the pitcher.

        Pulls (Pulls): Number of times the pitcher has been removed from a game.

        WPA/LI (Situational Wins): A player’s WPA controlling for leverage index, calculated as the sum of each event’s WPA/LI, not total WPA/LI.

        Clutch (Clutch Score): The difference between a player’s totalWPA/pLI and their WPA/LI defined above.

        SD (Shutdowns): Number of relief appearances worth 0.06 WPA or more.

        MD (Meltdowns): Number of relief appearances worth -0.06 or less.

        Pitch Type

        This section refers to data from Baseball Info Solutions. Raw PITCHf/x data is found in the PITCHf/x section. The % numbers refer to percentage and the “v” numbers refer to average velocity.

        FB% (Fastball Percentage)

        FBv (Average Fastball Velocity)

        SL% (Slider Percentage)

        SLv (Average Slider Velocity)

        CT% (Cutter Percentage)

        CTv (Average Cutter Velocity)

        CB% (Curveball Percentage)

        CBv (Average Curveball Velocity)

        CH% (Changeup Percentage)

        CHv (Average Changeup Velocity)

        SF% (Split-Finger Percentage)

        SFv (Average Split-Finger Velocity)

        KN% (Knuckleball Percentage)

        KNv (Average Knuckleball Velocity)

        XX% (Unidentified Pitch Percentage)

        Pitch Value

        This section refers to pitch data from Baseball Info Solutions and denotes the number of runs above average a batter was against a specific pitch type (or that type per 100 pitches). Learn more about them here.

        wFB (Weighted Fastball Runs)

        wSL (Weighted Slider Runs)

        wCT (Weighted Cutter Runs)

        wCH (Weighted Changeup Runs)

        wSF (Weighted Split Finger Runs)

        wKN (Weighted Knuckleball Runs)

        wFB/C (Weighted Fastball Runs per 100 pitches)

        wSL/C (Weighted Slider Runs per 100 pitches)

        wCT/C (Weighted Cutter Runs per 100 pitches)

        wCH/C (Weighted Changeup Runs per 100 pitches)

        wSF/C (Weighted Split Finger per 100 pitches)

        wKN/C (Weighted Knuckleball Runs per 100 pitches)

        Plate Discipline

        These statistics are based on data from Baseball Info Solutions. Learn more about them here.

        O-Swing% (Outside the Zone Swing Percentage): Swings at pitches outside the zone divided by pitches outside the zone.

        Z-Swing% (Inside the Zone Swing Percentage): Swings at pitches inside the zone divided by pitches inside the zone.

        Swing% (Swing Percentage): Swings divided by total pitches.

        O-Contact% (Outside the Zone Contact Percentage): Contact made outside the zone divided by swings outside the zone.

        Z-Contact% (Inside the Zone Contact Percentage): Contact made inside the zone divided by swings inside the zone.

        Contact% (Contact Percentage): Contact made divided by swings.

        Zone% (Zone Percentage): Pitches inside the zone divided by total pitches.

        F-Strike% (First Pitch Strike Percentage): Percentage of PA that begin with a strike.

        SwStr% (Swinging Strike Percentage): Swinging strikes divided by total pitches.

        Value

        Note: The pitcher WAR section of the Library is still in need of revision!

        RA9-WAR (Runs Allowed based WAR):  A comprehensive statistic that estimates the number of wins a player has been worth to his team compared to a freely available player such as a minor league free agent based on his runs allowed per 9.

        BIP-Wins (BABIP Wins): An estimate of how many wins a pitcher has added by having a BABIP above or below league average. It adjusts for park and league.

        LOB-Wins (Left On-Base Wins): An estimate of how many wins a pitcher has added as a result of stranding runners on base.

        FDP-Wins (Fielding Dependent Wins): The sum of BIP-Wins and LOB-Wins. It is also the difference between RA9-Wins and FanGraphs’ standard FIP-based pitching WAR.

        RAR (Runs Above Replacement): The number of runs a player has been worth to his team compared to a freely available player based on FIP.

        WAR (Wins Above Replacement): A comprehensive statistic that estimates the number of wins a player has been worth to his team compared to a freely available player such as a minor league free agent based on his FIP.

        Dollars (Dollar Value of Performance): The amount of money a player’s production would be worth on the free agent market in millions of dollars. This column uses $5.5MM/WAR, but that is a calculation from several years ago. The current number is between $6 million and $7 million.

        PITCHf/x Pitch Type

        The following represent pitch type percentages according to PITCHf/x data. The name of the pitch is next to each. 

        FA% (Four Seam and Unclassified Fastballs)

        FT% (Two Seam Fastballs)

        FC% (Cutters)

        FS% (Split Fingers)

        FO% (Forkballs)

        SI% (Sinkers)

        SL% (Sliders)

        CU% (Cuvreballs)

        KC% (Knuckle-Curves)

        EP% (Ephesuses)

        CH% (Changeups)

        SC% (Screwballs)

        KN% (Knuckleballs)

        UN% (Unknowns)

        PITCHf/x Velocity

        The following are the average velocities according to PITCHf/x data. The name of the pitch is next to each.

        vFA (Four Seam and Unclassified Fastballs)

        vFT (Two Seam Fastballs)

        vFC (Cutters)

        vFS (Split Fingers)

        vFO (Forkballs)

        vSI (Sinkers)

        vSL (Sliders)

        vCU (Cuvreballs)

        vKC (Knuckle-Curves)

        vEP (Ephesuses)

        vCH (Changeups)

        vSC (Screwballs)

        vKN (Knuckleballs)

        vUN (Unknowns)

        PITCHf/x H-Movement

        The following are the average horizontal movements of the pitches according to PITCHf/x. The name of the pitch is next to each. (Negative values move toward RHH, positive values move toward LHH)

        FA-X (Four Seam and Unclassified Fastballs)

        FT-X (Two Seam Fastballs)

        FC-X (Cutters)

        FS-X (Split Fingers)

        FO-X (Forkballs)

        SI-X (Sinkers)

        SL-X (Sliders)

        CU-X (Cuvreballs)

        KC-X (Knuckle-Curves)

        EP-X (Ephesuses)

        CH-X (Changeups)

        SC-X (Screwballs)

        KN-X (Knuckleballs)

        UN-X (Unknowns)

        PITCHf/x V-Movement

        The following are the average vertical movements of the pitches according to PITCHf/x. The name of the pitch is next to each. (Numbers are relative to a pitch with no spin, meaning gravity’s effect is removed)

        FA-Z (Four Seam and Unclassified Fastballs)

        FT-Z (Two Seam Fastballs)

        FC-Z (Cutters)

        FS-Z (Split Fingers)

        FO-Z (Forkballs)

        SI-Z (Sinkers)

        SL-Z (Sliders)

        CU-Z (Cuvreballs)

        KC-Z (Knuckle-Curves)

        EP-Z (Ephesuses)

        CH-Z (Changeups)

        SC-Z (Screwballs)

        KN-Z (Knuckleballs)

        UN-Z (Unknowns)

        PITCHf/x Pitch Type Value

        The following are runs above average against each pitch using PITCHf/x data. The name of the pitch is next to each. Learn about pitch values here.

        wFA (Four Seam and Unclassified Fastballs)

        wFT (Two Seam Fastballs)

        wFC (Cutters)

        wFS (Split Fingers)

        wFO (Forkballs)

        wSI (Sinkers)

        wSL (Sliders)

        wCU (Cuvreballs)

        wKC (Knuckle-Curves)

        wEP (Ephesuses)

        wCH (Changeups)

        wSC (Screwballs)

        wKN (Knuckleballs)

        wUN (Unknowns)

        PITCHf/x Pitch Value/100

        The following are runs above average against each pitch per 100 pitches using PITCHf/x data. The name of the pitch is next to each. Learn about pitch values here.

        wFA/C (Four Seam and Unclassified Fastballs)

        wFT/C (Two Seam Fastballs)

        wFC/C (Cutters)

        wFS/C (Split Fingers)

        wFO/C (Forkballs)

        wSI/C (Sinkers)

        wSL/C (Sliders)

        wCU/C (Cuvreballs)

        wKC/C (Knuckle-Curves)

        wEP/C (Ephesuses)

        wCH/C (Changeups)

        wSC/C (Screwballs)

        wKN/C (Knuckleballs)

        wUN/C (Unknowns)

        PITCHf/x Plate Discipline

        The following are plate discipline numbers using PITCHf/x data. Learn about plate discipline numbers here.

        IP (Innings Pitched): Number of total innings pitched (.1 represents 1/3 of an inning, .2 represents 2/3 of an inning).

        O-Swing% (Outside the Zone Swing Percentage): Swings at pitches outside the zone divided by pitches outside the zone.

        Z-Swing% (Inside the Zone Swing Percentage): Swings at pitches inside the zone divided by pitches inside the zone.

        Swing% (Swing Percentage): Swings divided by total pitches.

        O-Contact% (Outside the Zone Contact Percentage): Contact made outside the zone divided by swings outside the zone.

        Z-Contact% (Inside the Zone Contact Percentage): Contact made inside the zone divided by swings inside the zone.

        Contact% (Contact Percentage): Contact made divided by swings.

        Zone% (Zone Percentage): Pitches inside the zone divided by total pitches.

        Pace (Average Time Between Pitches): Average time between pitches seen by a batter, based on PITCHf/x timestamps.

        Other

        GSv2 (Game Score Version 2.0): FanGraphs’ version of Game Score, which rates starts based on outs, strikeouts, walks, hits, and home runs.


        Which is Better? A Ground Ball Pitcher or a Fly Ball Pitcher

        by Neil Weinberg
        December 12, 2014

        It’s very likely that if you’ve spent any time at all reading sabermetric analysis that you’ve heard some mention of a pitcher’s batted ball profile. You might have seen a reference to a guy being a “ground ball machine” or an “extreme fly ball pitcher” and perhaps you wondered to yourself, “which is better?” Would a pitcher be better off as one or the other?

        In reality, there’s no ideal batted ball distribution for a pitcher, just like there’s no perfect distribution for a hitter. Pitchers would love to never allow line drives and get tons of infield fly balls, but within the realm of possible outcomes, you can be successful as a ground ball pitcher or as a fly ball pitcher. One isn’t better than other, they’re just different.

        Read the rest of this entry »


        Shutdowns, Not Saves: The Logic and the Leaders from 2014

        by Neil Weinberg
        November 7, 2014

        Who led the league in saves in 2014? Hopefully, you don’t know the answer off the top of your head. Saves aren’t a good measure of anything relating to player performance or talent and with so many things you could remember about the 2014 season, you probably don’t want to waste vital brain capacity on a random piece of trivia like who had the most saves.

        The reason saves aren’t very useful is because the rule itself is not designed to provide much information. You can earn a save if you strikeout Miguel Cabrera, Victor Martinez, and J.D. Martinez in a one run game or you can earn a save if you allow five base runners against the bottom of the Padres’ order. You don’t earn a save if you preserve a tie, or if you preserve a lead in the 7th inning. Nearly everything about the rule is arbitrary, which leads you to find arbitrary results.

        But the idea of something like a save is compelling for many people. There is a desire for a statistic that measures the number of a times a reliever comes in and pitches very well in an important spot. We can look at rate stats like ERA, FIP, or xFIP or cumulative numbers like RE24 or WAR, but it’s perfectly fine to want some sort of counting stat that tracks how many times a reliever slammed the door (or didn’t).

        Read the rest of this entry »


        FanGraphs Library Stat Glossary

        by Piper Slowinski
        December 18, 2012

        To find a particular statistic, use Ctr-F and type in the abbreviation or stat name that you are looking for.

        Offense:

        OBP – On-Base Percentage
        OPS – On-base Plus Slugging
        OPS+ – On-base Plus Slugging Plus
        wOBA – Weighted On-Base Average
        wRAA – Weighted Runs Above Average
        UBR – Ultimate Base Running
        wRC – Weighted Runs Created
        wRC+ – Weighted Runs Created Plus
        BABIP – Batting Average on Ball In Play
        ISO – Isolated Power
        HR/FB – Home Runs per Fly Ball rate
        Spd – Speed Score
        GB% – Ground ball percentage
        FB% – Fly ball percentage
        LD% – Line drive percentate
        K% – Stikeout rate
        BB% – Walk rate
        O-Swing% – Outside-the-zone swing rate
        Z-Swing% – Inside-the-zone swing rate
        Swing% – Swing rate
        O-Contact% – Outside-the-zone contact percentage
        Z-Contact% – Inside-the-zone contact percentage
        Contact% – Contact percentage
        Zone% – Percentage of pitches within the zone
        F-Strike% – First-pitch strike percentage
        SwStr% – Swinging Stike percentage
        wFB – Fastball runs above average
        wSL – Slider runs above average
        wCT – Cutter runs above average
        wCB – Curveball runs above average
        wCH – Change-up runs above average
        wSF – Split-finger fastball runs above average
        wKN – Knuckleball runs above average
        wFB/C – Fastball runs above average per 100 pitches
        wSL/C– Slider runs above average per 100 pitches
        wCT/C – Cutter runs above average per 100 pitches
        wCB/C – Curveball runs above average per 100 pitches
        wCH/C – Change-up runs above average per 100 pitches
        wSF/C – Slit-fingered fastball runs above average per 100 pitches
        wKN/C – Knuckleball runs above average per 100 pitches

        Defense:

        rSB – Stolen Base Runs Saved runs above average
        rGDP – Double Play Runs Saved runs above average
        rARM – Outfield Arms Runs Saved runs above average
        rGFP – Good Fielding Plays Runs Saved runs above average
        rPM – Plus/Minus Runs Saved runs above average
        DRS – Defensive Runs Saved runs above average
        BIZ – Balls In Zone
        OOZ – Balls Out Of Zone
        RZR – Revised Zone Rating
        CPP – Expected Catcher Passed Pitches
        RPP – Catcher Blocked Pitches in runs above average
        TZ – Total Zone
        TZL – Total Zone with Location data
        FSR – Fan Scouting Report
        ARM – Outfield Arm runs above average
        DPR – Double Play runs above average
        RngR – Range runs above average
        ErrR – Error runs above average
        UZR – Ultimate Zone Rating
        UZR/150 – Ultimate Zone Rating per 150 defensive games

        Pitching:

        ERA – Earned Run Average
        WHIP – Walks and Hits per Innings Pitched
        FIP – Fielding Independent Pitching
        xFIP – Expected Fielding Independent Pitching
        SIERA – Skill-Interactive ERA
        tERA – True Runs Allowed
        K/9 – Strikeout rate
        BB/9 – Walk rate
        K% – Strikeout percentage
        BB% – Walk percentage
        K/BB – Strikeout-to-Walk ratio
        LD% – Line drive rate
        GB% – Ground ball rate
        FB% – Fly ball rate
        HR/FB – Home runs per fly ball rate
        BABIP – Batting Average on Balls In Play
        LOB% – Left On Base percentage
        ERA- – ERA Minus
        FIP- FIP Minus
        xFIP- – xFIP Minus
        SD – Shutdowns
        MD – Meltdowns
        O-Swing% – Outside-the-zone swing rate
        Z-Swing% – Inside-the-zone swing rate
        Swing% – Swing rate
        O-Contact% – Outside-the-zone contact percentage
        Z-Contact% – Inside-the-zone contact percentage
        Contact% – Contact percentage
        Zone% – Percentage of pitches within the zone
        F-Strike% – First-pitch strike percentage
        SwStr% – Swinging Stike percentage
        wFB – Fastball runs above average
        wSL – Slider runs above average
        wCT – Cutter runs above average
        wCB – Curveball runs above average
        wCH – Change-up runs above average
        wSF – Split-finger fastball runs above average
        wKN – Knuckleball runs above average
        wFB/C – Fastball runs above average per 100 pitches
        wSL/C– Slider runs above average per 100 pitches
        wCT/C – Cutter runs above average per 100 pitches
        wCB/C – Curveball runs above average per 100 pitches
        wCH/C – Change-up runs above average per 100 pitches
        wSF/C – Slit-fingered fastball runs above average per 100 pitches
        wKN/C – Knuckleball runs above average per 100 pitches

        Win Probability:

        WPA – Win Probability Added
        -WPA – Loss Advancement
        +WPA – Win Advancement
        RE24 – Run Above Average based on the 24 Base/Out States
        REW – Wins Above Average based on the 24 Base/Out States
        pLI – A player’s average LI for all game events
        phLI – A batter’s average LI in only pinch hit events
        PH – Pinch Hit Opportunities
        gmLI – A pitcher’s average LI when he enters the game
        inLI – A pitcher’s average LI at the start of each inning
        exLI – A pitcher’s average LI when exiting the game
        WPA/LI – Situational Wins
        Clutch – How much better or worse a player does in high leverage situations than he would have done in a context neutral environment

        WAR

        Offensive

        Batting – Park Adjusted Runs Above Average based on wOBA
        Base Running –  Base running runs above average, includes SB or CS
        Fielding – Fielding Runs Above Average based on UZR (TZ before 2002)
        Replacement – Replacement Runs set at 20 runs per 600 plate apperances
        Positional – Positional Adjustment set at +12.5 for C, +7.5 for SS, +2.5 for 2B/3B/CF, -7.5 for RF/LF, -12.5 for 1B, -17.5 for DH
        Fld + Pos
        RAR – Runs Above Replacement (Batting + Fielding + Base Running + Replacement + Positional)
        WAR – Wins Above Replacement

        Pitching

        RA9-Wins – Wins Above Replacement calculated using Runs Allowed
        BIP-Wins – BABIP wins above average
        LOB-Wins – Sequencing in wins above average (calculated as the difference between RA9-Wins and WAR minus BIP-Wins)
        FDP-Wins – BABIP and Sequencing wins above average, also the difference between RA9-Wins and WAR
        RAR – Runs Above Replacement
        WAR – Wins Above Replacement


        « Previous entries
        Next Page »

        Updated: Friday, May 16, 2025 3:15 PM ETUpdated: 5/16/2025 3:15 PM ET
        @fangraphs - 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.