Cardinals By The Numbers: 05/14/2025
Cardinals By The Numbers: 05/14/2025

I’ve been wanting to start a weekly column going over just the numbers: records, runs scored, top players, etc. After this week, this will be a Monday morning thing, but I wanted to kick it off sooner than next week. So here we are.
First off, the Cardinals have been hot; winners of their last 9, including sweeps of Pittsburgh and Washington. While neither of those teams are really great, it’s those series that the team needs to win.
| Wins | Losses | Pct |
| 23 | 19 | .548 |
They’ve turned things around, but there are still concerns; they can’t win on the road.
| Home | Road | ||||
| Wins | Losses | Pct | Wins | Losses | Pct |
| 15 | 6 | .714 | 8 | 13 | .381 |
Washington was the first series they won on the road this year, and it’s 3 of the 8 wins. They are 1-4-1 in series on the road. Overall, they are winning series.
| Wins | Losses | Splits | Pct |
| 7 | 5 | 1 | .583 |
Their run differential supports this success for the most part.
| RS | RA | RD | pW | pL | pPct |
| 197 | 172 | +25 | 24 | 18 | .561 |
Bill James determined that a person could determine how many wins a team should have based off their run differential by using the Pythagorean Theorem; so a +25 run differential after 42 games should equal 24 wins. Here’s a breakdown of the table:
- RS = Runs Scored
- RA = Runs Allowed
- RD = Run Differential (RS-RA)
- pW = Pythagorean Wins
- pL = Pythagorean Losses
- pPct = Pythagorean Win Percentage
The standard deviation is 3 games, so any difference greater than +/- 3 means there is some outlier to the data. Right now, the Cardinals have 1 fewer wins than they should by this; they are slightly underperforming but within the standard deviation.
Let’s breakdown runs scored and allowed a little more.
| RS | Total | W | L | Pct | RA | Total | W | L | Pct |
| 10+ | 3 | 3 | 0 | 1.000 | 10+ | 2 | 0 | 2 | .000 |
| 9 | 3 | 2 | 1 | .667 | 9 | 3 | 0 | 3 | .000 |
| 8 | 1 | 1 | 0 | 1.000 | 8 | 1 | 0 | 1 | .000 |
| 7 | 3 | 1 | 2 | .333 | 7 | 3 | 0 | 3 | .000 |
| 6 | 6 | 5 | 1 | .833 | 6 | 0 | 0 | 0 | .000 |
| 5 | 5 | 5 | 0 | 1.000 | 5 | 6 | 3 | 3 | .500 |
| 4 | 7 | 2 | 5 | .286 | 4 | 5 | 2 | 3 | .400 |
| 3 | 3 | 2 | 1 | .667 | 3 | 6 | 4 | 2 | .667 |
| 2 | 2 | 2 | 0 | 1.000 | 2 | 6 | 4 | 2 | .667 |
| 1 | 7 | 0 | 7 | .000 | 1 | 5 | 5 | 0 | 1.000 |
| 0 | 2 | 0 | 2 | .000 | 0 | 5 | 5 | 0 | 1.000 |
There’s some interesting stuff here. The Cardinals are undefeated when they score 10+, 8, 5, or 2 runs per game; it’s a wide variety. It’s funny to see a 2-1 record when they score 9. The can’t win when they score 0 (kinds of expected) or 1 run; it’s funny to see no 1-0 wins this season, even though statistically they shouldn’t win while only scoring a single run.
Their average runs per game is 4.69; league average is 4.36. The Cardinals rank 11th in baseball.
The team is undefeated when they allow 0 or 1 run per game; like scoring 1 run, the team hasn’t lost a 1-0 game this season. If they allow 6 runs or more, they aren’t winning; we have a small sample size (a quarter of the season), so this should change as the season goes on, especially if the offense stays hot.
Their average runs allowed per game is 4.10; the league average is 4.36. The Cardinals rank 12th in baseball.
The final team numbers are run differential by game.
| RD | Total |
| 10 or more | 1 |
| 9 | 0 |
| 8 | 1 |
| 7 | 3 |
| 6 | 2 |
| 5 | 3 |
| 4 | 1 |
| 3 | 2 |
| 2 | 4 |
| 1 | 6 |
| 0 | 0 |
| -1 | 5 |
| -2 | 3 |
| -3 | 5 |
| -4 | 2 |
| -5 | 0 |
| -6 | 2 |
| -7 | 0 |
| -8 | 1 |
| -9 | 0 |
| -10 or more | 1 |
Most of their games are between +2 and -3 (23 of 42 games). It’s funny to see that they have not played a game that ended with+/-9 run differential; just a random occurance. Only 4 games have been +/-8 or greater; this coupled with the 23 games between +2 and -3 means they are playing a lot of close games.
Now, let’s move to players; here are the top 5 in OPS+
| Rank | Player | OPS+ | % Better Than League Average |
| 1 | Ivan Herrera | 273 | 173% |
| 2 | Thomas Saggese | 144 | 44% |
| 3 | Brendan Donovan | 131 | 31% |
| 4 | Yohel Pozo | 130 | 30% |
| 5 | Lars Nootbaar | 123 | 23% |
It sucks that they sent Saggese down; he’s been one of the best hitters this season. I get the need for everyday at bats, but we’ll get to the really ugly side of his demotion in a minute.
We also see why they moved Herrera to more of a DH with Pozo playing well; Luken Baker (97) and Alec Burleson (87) aren’t quite league average, so the move helps the team quite a bit.
Here’s the bottom 5:
| Rank | Player | OPS+ | % Worse Than League Average |
| 1 | Jordan Walker | 41 | 59% |
| 2 | Michael Siani | 56 | 44% |
| 3 | Nolan Gorman | 61 | 39% |
| 4 | Pedro Pages | 81 | 19% |
| 5 | Jose Barrero | 85 | 15% |
So Saggese was sent down so Gorman could play; that’s a big jump in quality. I get needing Gorman to fix himself, but we have to be coming to a point where enough is enough. Same with Walker; the unfortunate side is there isn’t really a good hitting option at Memphis right now. They could put Donovan in the outfield more to allow Saggese playing time.
As mentioned above, Herrera is a better option at DH over Burleson and Baker, but Burleson’s bat is slightly better than Pages right now; if the team won’t start Pozo at catcher, then the best option is Herrera behind the plate with Burleson as DH.
Let’s look at WAR:
| Rank | Player | WAR |
| 1 | Victor Scott II | 1.7 |
| 2 | Brendan Donovan | 1.6 |
| 3 | Lars Nootbaar | 1.6 |
| 4 | Nolan Arenado | 1.3 |
| 5 | Kyle Leahy | 1.1 |
The top 4 have positive WAR in both offense and defense. Leahy just beat out Masyn Winn, who had a slow start and did miss some time with a back injury; the fact that a reliever is this mediocre bullpen is the top pitcher (followed by Steven Matz) really says something about how he’s pitching.
It worth noting that the #3 pitcher by WAR is Michael McGreevy; his 1 start was worth 0.8 wins. That’s higher than everyone else in the rotation (minus a couple of starts by Matz, but his true value has been out of the bullpen). Every pitcher in the rotation has been at least 0.0 or better this season, but he should probably be given a spot with as well as he’s pitched; maybe a mid-season trade will open a spot for him (but that’s a talk for a different day).
Here’s the bottom 4 (or 6):
| Rank | Player | WAR |
| 1 | Ryan Fernandez | -1.1 |
| 2 | Jordan Walker | -0.5 |
| 3 | Gordon Graceffo | -0.4 |
| 4 | Nolan Gorman JoJo Romero Chris Roycroft | -0.3 |
The bullpen got better once they sent Fernandez down, but he, along with Romero and Roycroft, show how volatile bullpens are; all 3 were useful last year and suddenly they can’t get outs. We’ve seen that Romero works better in limited use, and Oli has adjusted his usage last year and this year.
We get Walker and Gorman back at the bottom for hitters; not much else to be said at this point. Hopefully they turn it around.
I’ll be back on Monday with this all updated and some additional tables..

