
There is lightning in that bat, but there is more to it
As usual, I get curious about something, and I dig into it to learn for myself. Then I end up writing an article about what I find. And that is what you guys get for your Saturday reading pleasure. Perhaps I should call this corner of the bloggersphere ORSTLs mental wanderings. A bit wordy, I know, but then again, it wouldn’t be me otherwise 🙂
I’ve been waiting on doing a profile of Ivan Herrera deliberately, because I wanted to see him get to 200 PAs this year, so I wasn’t in too small of a sample size. So much for that idea. He is getting in the arena of 500 PAs for his short career. He is building a body of work that can be described with some confidence, but the numbers could still be a bit volatile. I also wanted to get enough data for this season to wash out the distorting impacts his 3-HR game would have earlier in the season. I think I’m good now.
My interest really piqued this off-season when I realized Ivan ended the 2024 season with an .800 OPS. That isn’t chopped liver. A 127 wRC+ would comfortably place him in the top 20th percentile of league hitters, closer to 90th than 80th. With Arenado fading, Goldy moving on and Contreras on the wrong side of 32, it has been clear that the Cardinals need a couple of hitters to emerge. I wondered if one had. Now, I believe we’ve seen enough to begin to conclude we probably have.
So, let’s profile Ivan’s season so far. If qualified (he’s not quite there yet, and may not get there at all this season), here is how this 25-year-old player compares.
By wRC+ he would be 15th in all of baseball at 153. That is with a .901 OPS. His xwOBA moving average is just above league average for his last 100 PAs, so these numbers may come down a bit (see lower right graph on chart below).

Data courtesy of Statcast | MLB.com
First notice (upper right) the nice even distribution of hits. He uses all fields.
His K% of 19.6% is 61st percentile. His walk rate of 9.8% is 64th percentile. Good attributes to have. These numbers are right in line with 2024 and his career average, so no outliers here.
His hard hit and launch angle (sweet spot) are middle of the pack this year (they were better last year). His bat speed is in the top 1⁄4 of players. Have we figured out how bat speed translates to performance yet?
On a more traditional stat, his 3-year BAs are .297, 301., 304. Slight trend up, but steady at a good place. Projections are tough to figure on him. He has pretty much surpassed all projections for the year in this first half, in less playing time than expected. Hmmm.
He even shows up as a positive baserunner (.6 BsR), not bad for a catcher.
Defensively, he shows as average across the board. Middle of the road framing numbers (a solid 0), better than average pop time, lower than average caught stealing, and a little better at blocking that average (+2). The narrative on bat-first catchers is that they tend to improve defensively incrementally through age 30, so average as a baseline at 25 is not so bad, right? Seems like a team could do worse than a good hitting catcher who is average defensively. Of course, we are used to Yadier Molina, so our tastes are more refined.
If we look at little deeper at batted ball profiles, here is what I see:
He pulls 2-3% less than league average. I suspect if he wants to goose his HR numbers, this will change as he evolves. I happen to like his all-fields approach, but modern orthodoxy will defeat my traditionalist view. On a run-value basis, curveballs and changeups give him the most trouble, but only -1 for each. Don’t throw him a slider. His RV/100 is 4.5. He hits fastballs, too. These are constant themes across both 2025 and 2024, so no outliers here either.
For 2025, his barrel, hard hit and average EV are the only numbers that are really middle of the road. Almost like middle of the road is his floor – an average MLB hitter, well above replacement value. One could peek at his BABIP of .343 and suspect some regression is coming. Then again, this number is lower than either his 2024 or 2023 BABIP. A career .359 BABIP over a full season of PAs is pretty damn lucky, huh?
All of his expected numbers, xwOBA, xBA, xSLG, xISO, xOBP are all in the 70th or 80th percentile. Almost like this is his current profile – 75th percentile. Even if this is his ceiling, that is pretty damn good. 75th percentile hitters do not grow on trees. Remembering a different article, a team needs two of these guys to begin to view themselves as a playoff contender. And remember, he is 25 years old (if I wrote this two weeks ago, I’d be describing him as a 24-year-old). Not in his prime yet. He comes with four more years of control after 2025 is done.
Down deeper in the details, I see a tale where he demonstrates remarkable consistency. Really there is no left-right platoon split (or advantage for him). He hits home and away about the same. He hits a bit better when he plays than when he DHs, but he is not an ugly duckling at DH.
What does his future hold? Zips 3-year projections show him as a 2 WAR player at 100 games. That would make him a 3 WAR player if he was a regular (150 games-ish). Although, their max expected OPS in that 3-year span is .722, which seems low. His worst OPS (.760) was in 2023. His career average OPS is .808. Is Zips behind on him, or discounting heavily based on perceived luck? I don’t know.
He is injured now and likely out most or all of July. I am curious how well the offense holds up without him. It’s hard to be optimistic about that.
Given his minor league track record and his 500 PAs at the MLB level, it strikes me that he has pretty well established who he is, at least as a hitter. There could still be some league adjustment to him, but the range of variance in his future performance projections doesn’t seem that wide anymore. Am I reading this reasonably?