Predicting starting pitcher performance has always been a tough task in fantasy, whether projecting for the season or from start to start. Elite arms like Max Scherzer are more predictable – especially in a matchup against a weak offense – but a guy like Scherzer is usually a set-and-forget scenario if you own him. We’re more concerned about the middle of the pack guys and the potential FAAB pickups. And as we’ve all been witness to this year, a good matchup ‘on paper’ doesn’t always translate into a correct lineup decision. Just ask those who own Trevor Bauer or Aaron Nola this season.
One of the metrics I’ve always relied upon for predicting whether a pitcher has been lucky or unlucky is xFIP (expected Fielding Independent Pitching). FIP on its own is not an easy formula, but it’s a solid measure of a pitcher’s actual run prevention, independent of the performance of the defense behind him. xFIP is similar to FIP except that it uses a league average amount of home runs based on fly balls allowed instead of actual homers allowed. xFIP is a better predictor of ERA than FIP is and though many analysts and fantasy players have attempted to discredit the value of FIP and xFIP, they are still metrics that have worked well for my analysis as one part of the whole. It’s not the end-all, be-all metric as there are always examples of pitchers who defy or beat out xFIP year after year. That’s why diving deeper into a pitcher’s performance, reviewing other relevant metrics such as LOB% (left on base, or strand rate), BABIP, hard hit rate, HR/9, velocity, exit velocity and team defense are all valuable as well. And of course, so is actually watching these pitchers pitch.
Putting it in as general of a vacuum as possible, pitchers with a significant (1.00-plus) xFIP higher than their ERA can be, to some degree, considered lucky while those with an ERA at least one point higher than their xFIP can be deemed unlucky. Despite exceptions to the rule, most ERA’s eventually regress towards one’s xFIP.
If you recall, Rockies’ righty Jon Gray was the poster boy for xFIP/ERA discrepancy last season. Through the first half of the season, the fantasy community cried ‘unlucky’ as Gray got crushed to the tune of a 5.44 ERA despite a 2.86 xFIP – one of the largest differences between ERA and xFIP in recent years. The second half wasn’t much better for Gray as he posted a 4.68 ERA, but it was much more in line with his second half xFIP (4.31). At the end of the season, Gray finished with a 5.12 ERA and a 3.47 xFIP. This season thus far, it’s much more in line – a 3.92 ERA and a 3.77 xFIP.
Oftentimes, ERA corrections are delayed. Such was the case with Gio Gonzalez with the Nationals in 2017. He ended the season with a magical 2.96 ERA despite a 4.24 xFIP. Luck caught up with him in 2018 as he posted an ERA (4.21) much more in line with his xFIP (4.44) that season. It’s just one example, but it’s a good reason to be weary of breakout pitchers during draft season. After posting a 2.85 ERA in his breakout 2018 season, Mike Foltynewicz was drafted as a top-25 SP in drafts this season. That 2.85 didn’t quite align with his 3.77 xFIP, but there was still a large discrepancy enough for us to recognize that Folty was fully priced in drafts and that perhaps it behooved us to not pay the premium, rather to look for this year’s Folty later in drafts. Unfortunately, Foltynewicz started the season on IL and never got on track, thus far serving fantasy owners who bought in with a big fat 6.37 ERA (5.16 xFIP) in 59 innings (11 starts).
BABIP and LOB% are helpful metrics used in tandem with FIP and xFIP to help us recognize whether a pitcher has had good or bad luck. Same with HH% and EV where batters who are able to square up and barrel against a pitcher serving up hard contact increases the chances of that ball in play falling in for a hit or getting knocked out over the fence.
Here are the starting pitchers with the biggest discrepancies between their ERA and xFIP. Let’s start with the guys with significantly lower ERA’s who we can describe as ‘lucky’. Delta signifies the contrast between xFIP and ERA.
LUCKY
|
Name |
Team |
ERA |
xFIP |
Delta |
BABIP |
LOB% |
GB% |
HR/FB |
1 |
Jake Odorizzi |
Twins |
2.58 |
4.32 |
1.74 |
0.275 |
80.40% |
31.10% |
6.30% |
2 |
Mike Minor |
Rangers |
2.52 |
4.25 |
1.73 |
0.275 |
87.40% |
42.30% |
10.70% |
3 |
Zach Davies |
Brewers |
3.34 |
5.03 |
1.69 |
0.301 |
77.90% |
40.80% |
11.50% |
4 |
Hyun-Jin Ryu |
Dodgers |
1.27 |
2.91 |
1.64 |
0.260 |
89.00% |
50.90% |
10.30% |
5 |
Mike Soroka |
Braves |
2.07 |
3.66 |
1.59 |
0.243 |
77.40% |
57.30% |
6.80% |
6 |
Sandy Alcantara |
Marlins |
3.51 |
5.06 |
1.55 |
0.292 |
72.10% |
47.00% |
7.20% |
7 |
Jason Vargas |
Mets |
3.75 |
5.30 |
1.55 |
0.266 |
74.40% |
41.90% |
9.70% |
8 |
Zach Eflin |
Phillies |
3.26 |
4.73 |
1.47 |
0.283 |
82.00% |
41.90% |
12.70% |
9 |
Mike Fiers |
Athletics |
4.20 |
5.53 |
1.33 |
0.226 |
73.90% |
38.90% |
12.30% |
10 |
Jose Berrios |
Twins |
2.84 |
4.14 |
1.30 |
0.276 |
79.80% |
40.60% |
10.60% |
11 |
Spencer Turnbull |
Tigers |
3.29 |
4.59 |
1.30 |
0.310 |
74.20% |
49.40% |
8.50% |
12 |
Julio Teheran |
Braves |
3.94 |
5.20 |
1.26 |
0.262 |
74.60% |
40.50% |
10.20% |
13 |
Trevor Richards |
Marlins |
3.94 |
5.15 |
1.21 |
0.267 |
77.20% |
37.10% |
10.40% |
14 |
Luis Castillo |
Reds |
2.56 |
3.76 |
1.20 |
0.243 |
81.40% |
55.30% |
14.30% |
15 |
Cole Hamels |
Cubs |
2.92 |
4.00 |
1.08 |
0.280 |
79.10% |
51.50% |
10.80% |
16 |
Marcus Stroman |
Blue Jays |
3.04 |
4.11 |
1.07 |
0.289 |
73.20% |
57.90% |
11.10% |
17 |
Yonny Chirinos |
Rays |
3.00 |
4.07 |
1.07 |
0.228 |
83.10% |
42.00% |
17.10% |
18 |
Charlie Morton |
Rays |
2.31 |
3.35 |
1.04 |
0.260 |
82.40% |
51.40% |
10.90% |
19 |
Chris Bassitt |
Athletics |
3.86 |
4.84 |
0.98 |
0.244 |
75.50% |
42.70% |
11.60% |
20 |
Anibal Sanchez |
Nationals |
4.02 |
4.97 |
0.95 |
0.274 |
76.20% |
33.30% |
11.80% |
As should always be the case, we have to dig in deeper into each pitcher to truly get a feel for whether someone is truly lucky/unlucky or if something has changed in their profile (arsenal, added velocity/pitches, change of delivery/arm slot, etc). Reviewing the starting pitchers with the highest deltas between their xFIP and ERA may look like a list of sell-highs, but each case needs more inspection.
Jake Odorizzi appears to be in the midst of a career year, but what has changed? The most glaring improvement is an uptick in velocity across the board compared to last season: two ticks up on average (from 91 to 93 mph) on both his two main offerings (fourseam and sinker) as well as an uptick in velocity on his other pitches as well (cutter, slider, splitter and curveball). Even more interesting is that Odorizzi has cut his HR/9 down tremendously. Prior to 2017, he was a career 1.25 HR/9 guy which is about league average. The 2017 season was his worst (1.88) followed by improvement last year (1.10) and a career best HR/9 this year (0.67). The Twins’ defense has improved from last year as well, but have gone from one of the league’s worst to middle of the pack. Odorizzi’s ERA-xFIP discrepancy was even more large prior to these last two starts against the Royals where he allowed eight total runs. With his current ERA sitting at 2.58 and a career rate of 3.84, it’s safe to assume that Odorizzi’s ERA will continue to negatively regress towards his career rate, as will his HR/9 rate. The increase in velocity has had a positive impact on his strikeout rate (22.8% last year, currently 27.2%). The ideal window for selling high on him was two weeks ago prior to the rough starts against the Royals but all in all, he plays for a team with a decent defense, well above-average offense (run support) and within the league’s worst offensive division. Odorizzi has a higher hard-hit rate this year (42%) than the past two years (36.7%) but that’s a marginal difference when you consider hard-hit rates have gone up considerably across the league. And his division, increased velocity and decreased homer rate nullifies the negatives. Will Odorizzi regress? Most likely. Regress enough to the point where he’ll qualify as a ‘bust’ in the second half? Probably not.
You can do this exercise through the rest of the list to figure out who are the guys you should trade or trade for in your league. Hyun Jin Ryu has been arguably baseball’s best pitcher this season and correction from that 1.27 ERA is inevitable. It’s simply a question of, by how much. No pitcher in baseball has better control than Ryu this year (just six walks issued in 99 innings), his xFIP is still well above league average (2.91) as it was last season (1.97 ERA / 3.11 xFIP in 82 innings). And he happens to play in a great pitcher’s park for half his games behind the league’s highest rated defense. If he stays healthy and ends up with a 3.00 ERA over his remaining starts, it’s still good, and a big win for your fantasy teams overall. Every case study for a trade is relative to value. If your squad is overloaded with stud pitchers and you need a hitter, and someone will give you Kris Bryant or J.D. Martinez for Ryu, you take it.
Veteran Jason Vargas is an interesting one to note as popular belief just assumes he’ll regress negatively at some point, yet we’re still waiting. Over the first half of last season, Vargas pitched horribly – an 8.60 ERA despite a major discrepancy with his xFIP (5.10). Of course, 5.10 is still a bad and below average xFIP. The second half was a different story as he pitched to a 3.01 ERA while also reducing his xFIP to 3.94. If you own Vargas, you simply make sure you’re careful with where you stream him. This season, he seems to pitch much better at home (2.79 ERA) than on the road (4.65) so that could be your specific delineation for him.
UNLUCKY
|
Name |
Team |
ERA |
xFIP |
Delta |
BABIP |
LOB% |
GB% |
HR/FB |
1 |
Blake Snell |
Rays |
5.01 |
3.19 |
-1.82 |
0.357 |
66.60% |
42.60% |
17.70% |
2 |
Zack Godley |
Diamondbacks |
6.82 |
5.41 |
-1.41 |
0.313 |
62.10% |
43.90% |
15.30% |
3 |
Ivan Nova |
White Sox |
5.91 |
4.73 |
-1.18 |
0.343 |
68.00% |
45.80% |
19.50% |
4 |
Eduardo Rodriguez |
Red Sox |
4.87 |
3.98 |
-0.89 |
0.329 |
71.30% |
44.30% |
16.70% |
5 |
German Marquez |
Rockies |
4.32 |
3.44 |
-0.88 |
0.307 |
70.50% |
53.20% |
16.70% |
6 |
Zack Wheeler |
Mets |
4.69 |
3.89 |
-0.80 |
0.314 |
66.10% |
44.00% |
13.70% |
7 |
Chris Archer |
Pirates |
5.56 |
4.77 |
-0.79 |
0.272 |
74.90% |
38.90% |
23.70% |
8 |
Jack Flaherty |
Cardinals |
4.75 |
3.98 |
-0.77 |
0.278 |
74.60% |
36.40% |
20.70% |
9 |
Michael Wacha |
Cardinals |
5.59 |
4.87 |
-0.72 |
0.316 |
72.20% |
46.00% |
22.60% |
10 |
Aaron Nola |
Phillies |
4.55 |
3.84 |
-0.71 |
0.332 |
76.10% |
47.80% |
20.60% |
11 |
Gerrit Cole |
Astros |
3.42 |
2.72 |
-0.70 |
0.300 |
74.20% |
40.30% |
18.60% |
12 |
Brandon Woodruff |
Brewers |
4.01 |
3.36 |
-0.65 |
0.323 |
72.00% |
41.80% |
12.30% |
13 |
Shane Bieber |
Indians |
3.83 |
3.19 |
-0.64 |
0.287 |
74.80% |
43.60% |
18.60% |
14 |
Kyle Gibson |
Twins |
4.26 |
3.62 |
-0.64 |
0.307 |
69.70% |
47.60% |
18.20% |
15 |
Aaron Sanchez |
Blue Jays |
5.89 |
5.26 |
-0.63 |
0.322 |
67.50% |
49.80% |
17.10% |
16 |
Chris Sale |
Red Sox |
3.59 |
3.00 |
-0.59 |
0.297 |
69.20% |
42.00% |
14.10% |
17 |
Jakob Junis |
Royals |
5.18 |
4.59 |
-0.59 |
0.313 |
69.90% |
45.00% |
17.40% |
18 |
Stephen Strasburg |
Nationals |
3.79 |
3.21 |
-0.58 |
0.281 |
72.00% |
52.00% |
16.90% |
19 |
Reynaldo Lopez |
White Sox |
6.23 |
5.65 |
-0.58 |
0.317 |
69.60% |
31.80% |
16.30% |
20 |
Tyler Mahle |
Reds |
4.35 |
3.81 |
-0.54 |
0.297 |
75.00% |
44.40% |
19.70% |
What someone likely first notices on the list of unlucky pitchers is the stark discrepancy between Blake Snell’s ERA (5.01) and xFIP (3.19). His BABIP (.357) is extraordinarily high, as his strand rate (LOB%) is low (66.6%). It’s interesting to note that his xFIP this year is right in line with last season’s 3.16 but he’s clearly been getting crushed. Especially lately as he’s served up 16 earned runs failing to get out of the fourth inning in any of those starts. His fastball velocity has remained in the 95-96 mph range though in that last start against the Astros (7 ER allowed), it was down a tick. No reason to assume that he’s hiding an injury. Nothing else in Snell’s profile gives us cause for concern (K%: 31.7 this year, 31.6 last year; BB%: 8.8 this year, 9.1 last year).
Perhaps he’s tipping pitches but it’s clear that he’s getting BABIP’d to death when you see that .357 and compare to last season’s .241 (both clear outliers to each extreme). Like with Foltynewicz, my major takeaway is that we always need to be careful and mindful of not overpaying for pitchers coming off career years. From a guy with upside and a 4.04 ERA in 2017 to a 16th round fantasy pick who surprised with an AL Cy Young trophy and a sub-2.00 ERA, Snell’s top-35 overall ADP was clearly inflated based upon the career year and he became someone who would have to come close to repeating that career year to just earn his draft-day value.
You can continue to do this exercise for the pitchers on this list digging into their LOB%, BABIP, BB%, K%, HH%, HR/9, team defense and compare it to previous seasons. Using xFIP or FIP on its own to decipher whether a pitcher has been lucky / unlucky or is worth buying low or selling high isn’t going to put the answer on a silver platter for you. But it does start the conversation and points us in the right direction of making educated decisions on how to move forward with some of these starting pitchers. When to bench them or start them, and when to buy or sell them.