StitchLine

FIP and xFIP for Picking MLB Winners: A Bettor's Quick Manual

Updated July 2026
Licensed
Available in US
Fast payouts
18+ Only

FIP is the stat that turned my pitcher analysis from guesswork into something resembling a discipline. The first FIP I ever calculated by hand was on a 2017 Indians starter whose ERA looked alarming at 4.80 – a number that had the market printing his next moneyline opponent at a heavy favourite. The FIP came back at 3.20. The market was wrong, the punter who backed the supposed favourite lost, and I learned in one afternoon that the headline run-prevention number is sometimes a lagging indicator. Nine seasons on, I still treat FIP as the second most important pitcher stat I have on a screen, and xFIP as the third. The 2025 average MLB game length is two hours and thirty-eight minutes – pace-of-play has compressed, but the underlying physics of pitching and the maths of FIP have not. Jason Van’t Hof, the former integrity-monitoring executive at IC360, captured the regulatory backdrop of the modern game when he framed it as a watershed moment in betting markets, and the analytical baseline behind FIP has matured at the same rate as the regulatory perimeter around it. This piece is what I wish someone had handed me about FIP and xFIP nine years ago.

The FIP Formula and What It Actually Captures

The first time I saw the FIP formula, I thought it was contrived. Strikeouts, walks, hit-by-pitches, home runs allowed, divided through and adjusted by a season-specific constant to land on the same scale as ERA. Why not just use ERA?

The reason is structural. Earned run average measures runs that score, which depends on hits allowed in sequence, defensive plays made or missed, and bullpen performance after the starter has left. FIP measures only the four outcomes the pitcher controls without help – strikeouts (he gets them himself), walks (he issues them himself), hit-by-pitches (he issues them himself), home runs allowed (the contact has left the field of play, the defence cannot intervene). Everything else is excluded. The output is a number scaled to look like ERA – a 3.20 FIP corresponds roughly to a pitcher whose underlying performance, defended by an average defence on average sequencing, would produce a 3.20 ERA over a long enough sample.

FIP is more stable than ERA for the same reason a process metric is always more stable than its outcome. Defensive support varies. Sequencing luck varies. The pitcher’s strikeout rate, walk rate and home run allowance are the inputs the pitcher actually contributes, and they vary more slowly across a season.

xFIP and Fly-Ball Luck

xFIP – expected FIP – strips out one further variable. Where FIP uses the pitcher’s actual home runs allowed, xFIP replaces the home run total with what the pitcher would have allowed at the league-average home-run-per-fly-ball rate. The adjustment matters because home runs are subject to luck of their own – a marginal fly ball at Wrigley with the wind blowing out becomes a home run; the same contact at Petco Park is a flyout.

The 2025 season produced seven players who reached thirty home runs and thirty stolen bases each, a record for one MLB campaign and a marker of an offensive environment where home runs are travelling further than the long-term baseline. xFIP normalises away that league-wide home-run noise and lets you read a pitcher’s underlying skill regardless of the specific venues he has been working in. A pitcher with an FIP of 3.80 and an xFIP of 3.20 is being punished by an above-average HR/FB rate that is statistically likely to regress; a pitcher with an FIP of 3.20 and an xFIP of 3.80 is being flattered by a below-average HR/FB rate that will normalise upwards.

The FIP-vs-ERA Spread as a Live Signal

The single most useful pitcher diagnostic on a betslip is the gap between season ERA and season FIP. The gap is a measure of how much of a pitcher’s run prevention is being delivered by his own work and how much is being delivered by everything around him.

A small gap – under a third of a point – signals a pitcher whose ERA and underlying skill are aligned. The market price on his next start is roughly fairly priced based on his recent performance. A large gap in either direction is the signal worth acting on.

An ERA materially lower than FIP – say, an ERA of 2.40 against an FIP of 3.40 – flags an over-performing pitcher whose ERA is statistically likely to drift upwards. The moneyline price on his next favourite is probably too short. An ERA materially higher than FIP – an ERA of 4.10 against an FIP of 3.10 – flags an under-performing pitcher whose ERA is likely to drift downwards. The moneyline price on his opponent is probably too short.

The gap closes over time. The amount of time required is not fixed – sometimes a single hot or cold week swings the underlying performance, sometimes the gap holds for two months – but the direction of drift is reliable across enough samples to be a meaningful filter.

Using FIP on Run-Line Bets

Run-line betting depends on score distribution, and FIP is one of the cleanest predictors of how a pitcher’s score distribution actually behaves. A low-FIP starter with strong strikeout numbers and limited walks tends to keep games tight, which means his side as a -1.5 favourite is exposed to the win-by-exactly-one outcome. A high-FIP starter – particularly one with high walks – tends to allow more multi-run innings, which expands the run distribution and makes both run-line sides more sensitive to bullpen state.

The framework I use is a two-step read. First, look at the pitcher’s FIP relative to his price-implied skill – is the market treating him as better than his FIP suggests, or worse? Second, layer the FIP read onto the run-line decision – does the pitcher’s profile support the favourite -1.5 cover or work against it? The disciplined version of the runline framework with FIP overlay sits inside the dedicated run-line piece, but the principle is straightforward: FIP changes how confident you should be in any given run-line price.

The Limits of FIP and Where the Stat Stops Helping

FIP is not a complete answer. It misses three things that matter for a betting model.

The first is sequencing skill. Some pitchers consistently allow hits with the bases empty rather than with runners on, and that pattern compresses their ERA below their FIP for years on end. The model treats this as luck; the underlying data is more nuanced. A pitcher with a five-year ERA-FIP gap of half a point in his favour is probably not lucky. He is doing something the model cannot see directly.

The second is opponent quality across the season. FIP is a season-aggregate, and a pitcher who has faced a soft schedule will post a different FIP than the same pitcher would post against a tougher schedule. Strength-of-schedule adjustment is necessary for cross-pitcher comparison but is not built into the headline FIP number.

The third is batted-ball quality on contact. FIP treats home runs as the only contact outcome that matters; xFIP normalises the home-run rate. Neither stat captures whether a pitcher is suppressing hard contact in general. Modern statcast data on exit velocity and barrel rate against gives a richer picture than FIP alone, and the disciplined approach is to use FIP as the headline signal and statcast contact-quality data as the second-pass filter on a pitcher’s underlying skill.

When should I trust FIP over a public ERA narrative?
When the gap between the two is large enough to matter and the underlying inputs to FIP are themselves stable. A pitcher whose strikeout rate, walk rate and home run rate are all consistent across the season but whose ERA shows a sharp drift in either direction is being moved by something outside his control – usually defence or sequencing – and the FIP is the more reliable read of his actual skill. A pitcher whose FIP itself is volatile, by contrast, has not stabilised, and you should treat both numbers cautiously. The general rule is to trust FIP over ERA once a starter has cleared roughly twelve to fifteen starts and his underlying inputs have settled into a consistent pattern.
How does xFIP normalise a high HR/FB rate?
xFIP replaces the pitcher's actual home runs allowed with the number he would have allowed at the league-average home-run-per-fly-ball rate. If a pitcher has surrendered fifteen home runs but his fly-ball total combined with the league-average HR/FB rate would project ten home runs, xFIP recalculates as if he had allowed ten. The correction strips out venue effects, weather effects and small-sample HR/FB volatility, leaving a number that captures only the pitcher's strikeout rate, walk rate, hit-by-pitch rate and fly-ball-allowing tendency. The output is more stable than FIP across short samples and is particularly useful for comparing pitchers in different ballparks during the same season.

Material created by the team StitchLine