clock menu more-arrow no yes mobile

Filed under:

Cardinal Pitchers Have Been Both Lucky and Unlucky

Advanced stats are all over the map early in the season.

St Louis Cardinals v Cincinnati Reds Photo by Azael Rodriguez/Getty Images

If you’ve watched Cardinals baseball in 2019, the pitching staff has probably given you emotional whiplash. The bullpen’s 3.60 ERA is ninth best in baseball, a significant improvement from the 2018 dumpster fire. Jordan Hicks appears on the precipice of elite, and the right-handed trio in front of him- Dominic Leone, John Gant, and John Brebbia- have kept runs off the board. On the other hand, Andrew Miller has looked awful at times, Tyler Webb hasn’t provided much of a lefty alternative, and Alex Reyes struggled so much in four outings that he was relegated to Memphis to figure it out. The starting pitching has been equally mixed, with all five starters alternating between effective and dreadful. In Dakota Hudson’s case, it happens from pitch to pitch.

With such small samples, now is the time to rely on the deeper metrics to decipher what’s actually concerning and what’s not with the pitching staff. Unfortunately, the deeper metrics are just as confusing, and they paint a picture of a staff that has been both lucky and unlucky all at once.


We’ll start with the Cardinals’ fielding independent pitching (FIP, an attempt to look at how a pitcher or staff has performed by focusing on what a pitcher controls most- strikeouts, homeruns, walks, and hit by pitch). Their current FIP is 5.46, second worst in baseball behind only the lowly O’s. With FIP in mind, you might think they’re getting torched but that’s not exactly true. The staff has a 4.47 ERA, tied for 16th in MLB.

That’s a huge gap between FIP and ERA. In fact, they currently sport the biggest gap (0.98) between FIP and ERA in baseball. It’d be very easy to look exclusively at FIP and assume they’ve gotten very lucky, but there’s more to this story.


The Cardinals are giving up a homerun on 20.2% of their flyballs so far. That’s comically bad. For perspective, the worst season-long HR/FB% of the 21st century belongs to the 2017 Reds at 16.8%. The Cardinals aren’t alone in this misery. They’re one of six 2019 teams giving up a higher HR/FB% than the 2017 Reds, which should tell you how rapidly the game is changing. The league average rate right now is 14.2%. This is significant because, per Fangraphs’ definition of HR/FB%:

In the long run, we expect most pitchers to regress toward league average, or perhaps their career average if there is something about them that is unusual.

HR/FB allows us to get a better sense of how legitimate a pitcher’s home run rate might be, but that doesn’t mean there isn’t some underlying ability to suppress HR/FB, it’s a just a relatively small range of possible true talents

The Cardinals have given up 438 batted ball events (batters faced minus strikeouts, walks, intentional walks, hit by pitch), and 37% of those have been flyballs. It’s a raw total of 162 flyballs, 33 of which have gone for homeruns. Let’s pretend the Cardinals had given up the league average rate of homeruns on those flyballs. That’s 23 homeruns instead of 33.

Giving up 23 homeruns instead of 33 would be a huge change to the FIP equation. Enter xFIP. The difference between FIP and xFIP is that the latter normalizes homerun rates to league average. For the Cardinals, their xFIP is 4.65, or 0.18 higher than their actual ERA of 4.47. They’ve still been a little lucky, but it’s much closer to league average.

Of course, the xFIP isn’t great either, and that’s because they’re walking hitters at a high rate (third worst in baseball) and not compensating with enough strikeouts (16th in baseball). All the same, the homerun rate situation is something to keep in mind as you think of the pitching staff moving forward. They aren’t going to keep giving up a homerun for every five flyballs they allow.


Normalizing the homerun rate is a huge step in recalibrating your expectations, but you can’t let them off the hook just yet. Their strand rate (or LOB%, left on base percentage) is 81.7% right now. That’s third highest in the league. I talked about this briefly last year. Most teams will regress toward league average, between 70 and 72%, although there are factors that can help a team strand more runners. Mike Podhorzer’s xLOB formula can help determine how much of the strand rate is real. Using his formula, the Cardinals’ strand rate should be 72.7% right now.

With 201 baserunners (hits + HBP + BB - HR), if they had pitched to their xLOB% instead of their actual LOB%, they would have yielded 18 more runs. That’s a little bit more than what they’ve lost by their artificially inflated HR/FB rate, but the two are very close. The factors basically negate each other. If their strand rate and HR/FB eventually stabilize, they’re most likely to be right where they are right now, but in very different ways.


This will be the last item we review. Podhorzer, who is apparently quite effective and prolific as a baseball researcher, created an expected batting average on balls in play (xBABIP) formula in 2017. Using his formula, the Cardinals xBABIP thus far should be .307. In reality, it’s .273. With 438 balls in play thus far, the rate gap accounts for about 15 balls in play that xBABIP would have expected to be base hits.

Unlike HR/FB and LOB%, this metric is a little trickier. It’s impossible to decipher how many lost hits are a result of luck- a groundball unable to find a hole or a wet duck fart falling gently into an infielder’s glove instead of over their head- and how many were the result of actual defensive prowess. I feel comfortable saying the Cardinals have a good defensive team this year for the most part. It’s almost impossible to determine if it’s worth 15 hits robbed in 18 games. It’s safe to say they haven’t been unlucky on balls in play, but I’m not taking the extra step and assuming the .273 BABIP is totally unearned. Especially when you factor in how many homeruns they’ve given up, some of their harder contact that might have gone for a base hit on a ball in play is instead a ball OUT of play, totally out of the BABIP equation.