Cardinals By The Numbers: 06/16/2025
Cardinals By The Numbers: Downward Trajectory
We’re switching to every other week with the column, and this was not a fun one to put together. After weeks of strong play, the Cardinals is coming back down from being one of the hottest teams in the league. They drop 3 of 4 series over that time and 2 of 3 series at home; amazingly the Dodgers were the series win.
The team went 4-9 against the Royals, Dodgers, Blue Jays, and Brewers with a run differential of -12. They dropped 6 in a row at one point and were swept by the Blue Jays.
| W | L | Pct |
| 37 | 35 | .514 |

The team dropped .045 in win percentage and is only 2 games over .500. Not only that, they took a hit on their home record, where they went 3-6 before dropping 3 of 4 to Milwaukee on the road. They dropped .093 at home and .021 on the road and moved to double digit losses at home.
| Home | Road | ||||
| W | L | Pct | W | L | Pct |
| 22 | 14 | .611 | 15 | 21 | .417 |
They moved closer to .500 on their series as well, dropping .066; that’s 2 weeks in a row of dropping their series winning percentage:
| W | L | T | Pct |
| 12 | 10 | 1 | .545 |
The run differential took a hit, which was already mentioned:
| RA | RA | RD | pW | pL | pPct |
| 328 | 310 | 18 | 38 | 34 | .526 |


That -12 run differential over the 4 series comes after dropping another -10 the previous week. In fact, since May 28 (+45, tied for the season best), the team has a -27 run differential with a 6-11 record.
The run differential has stayed pretty much in line with their record; their Pythagorean Record is 38-34, 1 games better than they really are. They are under-performing by a game, but it’s within the standard deviation and is not a huge deal.
Their average runs over the last 13 games is not pretty. They averaged 4.23 runs scored and allowed 5.15.
| RS/G | RA/G | |
| Previous | 3.40 | 5.40 |
| Last Week | 4.23 | 5.15 |
| Season | 4.56 | 4.31 |

While the last week’s averages were better, they did hurt the season totals; they scored 4.63 per game before the last 13 games and allowed 4.12. While the hitting started to slump, the pitching fell off more. The lone bright spot was these were trending downward before this week’s slight rebound.
| RS | Total | W | L | Pct | RA | Total | W | L | Pct |
| 10+ | 6 | 6 | 0 | 1.000 | 10+ | 5 | 0 | 5 (+2) | .000 |
| 9 | 4 | 2 | 2 (+1) | .500 | 9 | 3 | 0 | 3 | .000 |
| 8 | 2 | 2 (+1) | 0 | 1.000 | 8 | 2 | 0 | 2 | .000 |
| 7 | 5 | 2 | 3 (+1) | .400 | 7 | 6 | 1 | 5 (+2) | .167 |
| 6 | 9 | 8 (+1) | 1 | .889 | 6 | 1 | 0 | 1 (+1) | .000 |
| 5 | 7 | 6 (+1) | 1 (+1) | .857 | 5 | 14 | 6 (+2) | 8 (+2) | .429 |
| 4 | 11 | 4 | 7 (+1) | .364 | 4 | 8 | 5 | 3 | .625 |
| 3 | 4 | 2 | 2 (+1) | .500 | 3 | 11 | 7 | 4 (+2) | .636 |
| 2 | 8 | 4 (+1) | 4 (+3) | .500 | 2 | 8 | 4 | 4 | .500 |
| 1 | 13 | 1 | 12 | .077 | 1 | 6 | 6 (+1) | 0 | 1.000 |
| 0 | 3 | 0 | 3 (+1) | .000 | 0 | 8 | 8 (+1) | 0 | 1.000 |
After a week of allowing 4 runs or less, the pitching got lit up; 9 of the 13 games saw the pitching give up 5 or more runs. 2 of the 4 wins had a run or less score. The hitting was all over the place, scoring between 2 and 9 runs in 12 games (getting shutout in the other game).
| RD | Total |
| 10 or more | 1 |
| 9 | 0 |
| 8 | 1 |
| 7 | 6 |
| 6 | 2 |
| 5 | 4 (+1) |
| 4 | 1 |
| 3 | 4 (+1) |
| 2 | 6 |
| 1 | 12 (+2) |
| 0 | 0 |
| -1 | 12 (+4) |
| -2 | 4 (+1) |
| -3 | 8 (+2) |
| -4 | 4 (+1) |
| -5 | 0 |
| -6 | 3 (+1) |
| -7 | 1 |
| -8 | 1 |
| -9 | 0 |
| -10 or more | 2 |
The Cardinals struggled in the close games, with 7 losses between -1 and -3 runs. That’s why the Pythagorean Record said they were underperforming; they have 8 wins this season where they scored 7 runs more than their opponents while only losing 4 when the other team scores 7 runs or more than they do.

The playoff odds took a big hit, but aren’t the worst of the season; their odds were more than cut in half with the last 13 games. They are where they were in the first week of the season, before both bottoming out and topping off.
| Place | Team | W | L | Pct | GB |
| 1 | Chicago Cubs | 44 | 28 | .611 | — |
| 2 | Milwaukee Brewers | 39 | 34 | .534 | 5.5 |
| 3 | St. Louis Cardinals | 37 | 35 | .514 | 7.0 |
| 4 | Cincinnati Reds | 37 | 35 | .514 | 7.0 |
| 5 | Pittsburgh Pirates | 29 | 44 | .397 | 15.5 |
| Team | W | L | Pct | GB |
| Philadelphia Phillies | 42 | 29 | .592 | +2.5 |
| San Francisco Giants | 41 | 31 | .569 | +1.0 |
| San Diego Padres | 39 | 31 | .557 | — |
| Milwaukee Brewers | 39 | 34 | .534 | 1.5 |
| St. Louis Cardinals | 37 | 35 | .514 | 3.0 |
| Cincinnati Reds | 37 | 35 | .514 | 3.0 |
| Arizona Diamondbacks | 36 | 35 | .507 | 3.5 |
| Atlanta Braves | 31 | 39 | .443 | 8.0 |
| Washington Nationals | 30 | 41 | .423 | 9.5 |
| Miami Marlins | 28 | 41 | .406 | 10.5 |
| Pittsburgh Pirates | 29 | 44 | .397 | 11.5 |
| Colorado Rockies | 14 | 57 | .197 | 25.5 |
The Cardinals have dropped to a tie at 3rd in the NL Central and out of the wild card with this skid. It’s going to be tough to win either. The Cubs have pretty much held onto the Central with the Brewers heating up. The wild card has the 3 really good teams in the spots right now, with the Brewers ahead of them, the Reds tied with them, Arizona right behind them, and an underperforming Atlanta team that you can’t count out. The Central is probably the path to the playoffs with least resistence.
Let’s look at players now, starting with OPS+:
| Rank | Player | OPS+ Last | OPS+ Now | Change |
| 1 | Ivan Herrera | 177 | 158 | -19 |
| 2 | Thomas Saggese | 143 | 143 | 0 |
| 3 | Brendan Donovan | 136 | 131 | -5 |
| 4 | Alec Burleson (NR) | 104 | 114 | +10 |
| 5 | Willson Contreras (NR) | 95 | 110 | +15 |
Masyn Winn (Rank 4 >8, OPS+ 118 > 98) and Yohel Pozo (Rank 5 >7, OPS+ 113 > 100) both dropped out of the top 5. Lars Nootbaar also took a hit over the last 2 weeks, dropping from 112 to 94, or going from 12% above average to 6% below average.
Herrera continues to regress but staying at a good level; I have a feeling he could end the season around the 120 area if he doesn’t hit a major slump. Donovan continues to stay at the same level and I think this is probably where he’ll be for the long haul.
It’s good to see Burleson and Contreras come around, but there was a player that jumped off the bottom 5 to #6.
| Rank | Player | OPS+ Last | OPS+ Now | Change |
| 1 | Jose Barrero (+4) | 64 | 35 | -29 |
| 2 | Michael Siani (-1) | 55 | 58 | +3 |
| 3 | Jordan Walker | 63 | 65 | +2 |
| 4 | Pedro Pages (+1) | 68 | 71 | +3 |
| 5 | Victor Scott II (NR) | 91 | 82 | -9 |
Note: Ryan Vilade would have been #1 at -18; I excluded him because he only had 15 plate appearances before the team designated him for assignment and the Reds claimed him.
Nolan Gorman had a big 2 weeks; he went from 62 to 102 in that time. He had the biggest jump up or down of anyone on the team.
I believe Barrero’s time with the team is running out; he’s just not a good player and 65% worse than the average player. I know the team wants Saggese to get regular at bats, but he’d be a nice weapon off the bench.
Walker is still towards the bottom, but a majority of the last 2 weeks saw him sitting on IL; he was starting to put it together and hopefully the wrist injury doesn’t linger and sap the power he was starting to show.
Scott II is slumping, but they’ll stick with him, as they should; he’s still a plus defender and a better player than Siani.
Now onto the pitchers with ERA+:
| Rank | Player | ERA+ Last | ERA+ Now | Change |
| 1 | Phil Maton (+2) | 170 | 201 | +31 |
| 2 | Kyle Leahy | 178 | 177 | -1 |
| 2 | Steven Matz (-1) | 192 | 177 | -15 |
| 4 | JoJo Romero (NR) | 122 | 138 | +16 |
| 5 | Michael McGreevy (NR) | — | 136 | +136 |
Ryan Helsley (Rank 4 > 11, ERA+ 139 > 104) and Matthew Liberatore (Rank 5 > 12, ERA+ 134 > 98) both dropped off the list. Romero continued to make up for a slow start and McGreevy jumped on the list after his last start (he didn’t qualify with only 1 start prior to the last 2 weeks).
Maton has been unreal this season. He was picked up to be flipped at the deadline, but he’s pitching incredibly; they could get a decent return for him IF they are sellers (it’s still too early to tell). Between him, Leahy, and Matz, the Cardinals have a solid setup core; if only Helsley can figure things out.
| Rank | Player | ERA+ Last | ERA+ Now | Change |
| 1 | Ryan Fernandez | 37 | 37 | 0 |
| 2 | Roddery Munoz | 46 | 45 | -1 |
| 3 | Gordon Graceffo | 56 | 56 | 0 |
| 4 | Chris Roycroft | 59 | 60 | +1 |
| 5 | Andre Pallante | 97 | 84 | -13 |
Riley O’Brien has figured things out and jumped off this list (ERA + 46 > 109); in fact, he was the pitcher with the biggest jump at +63.
Not much else has changed. It’s kind scary to see Pallante fall off so much from last year; he was a key rotation piece the second half. He’s struggled this year and is close to a point of getting bumped out of the rotation for McGreevy, especially if the front office believes this is a playoff team.
And now the top 5 bWAR:
| Rank | Player | WAR Last | WAR Now | Change |
| 1 | Brendan Donovan | 2.1 | 2.3 | +0.2 |
| 2 | Victor Scott II (+1) | 1.5 | 1.7 | +0.2 |
| 2 | Erick Fedde (NR) | 0.8 | 1.3 | +0.5 |
| 4 | Sonny Gray (NR) | 0.9 | 1.2 | +0.3 |
| 5 | Willson Contreras (NR) | 0.3 | 1.1 | +0.8 |
| 5 | Kyle Leahy (NR) | 0.8 | 1.1 | +0.3 |
Nootbaar (1.5 > 1.0), Liberatore (1.2 > 0.5), and Winn (1.0 > 0.9) all fell off this week, allowing 4 new players to enter the list.
With the pitching struggling, it’s interesting to see 3 of the 4 new additions are pitchers; Fedde and Gray went 1-2 over their 4 starts but still were able to add 0.8 of bWAR in that period.
The bottom 5:
| Rank | Player | WAR Last | WAR Now | Change |
| 1 | Ryan Fernandez | -1.1 | -1.0 | -0.1 |
| 2 | Jordan Walker | -0.6 | -0.6 | 0.0 |
| 2 | Gordon Graceffo | -0.6 | -0.6 | 0.0 |
| 2 | Chris Roycroft (+1) | -0.5 | -0.6 | -0.1 |
| 5 | Michael Siani (NR) | -0.2 | -0.2 | 0.0 |
| 5 | Roddery Munoz (NR) | -0.2 | -0.2 | 0.0 |
Gorman made his way off this list too (-0.3 > 0.0); while his OPS+ shot up, his bWAR isn’t moving as fast.
Not much to say on anyone else; most of these guys have been bad all season. Again, curious to see how Walker rebounds from his wrist injury and I’m optimistic that he’ll get better.
I’ll be back in 2 weeks with updated numbers.

