The Underperforming and Overachieving Offenses of 2025

Gregory Fisher-Imagn Images

If you’re a fan of a large-market team that has recently been struggling to score runs, you may be eligible for compensation. Wait, no – that’s not right. You may be eligible to complain about your team in my weekly chat? Not quite it, either. Let’s try it one more time… If you’re a fan of a large-market team that has recently been struggling to score runs, you are eligible to read this article and see to what extent your team has let you down and to what extent it’s just a narrative.

The Yankees and Mets have been having a tough time of late, which always brings out doubters, both fans and rivals. I don’t quite know what to tell those grumpy souls. You’re upset with the Yankees offense? Well yes, sure, absolutely, carry on, but they do have the highest team wRC+ in baseball. The Mets let you down? Without a doubt, they’re the Mets, so on and so forth – but they’re top 10 in baseball in wRC+, too. Orioles offense bumming you out? Yeah, I mean, they’ve been a bummer, but they’ve also been impacted by injuries, which seems hard to blame them for.

I came up with a quantitative test for how much teams have disappointed relative to preseason expectations. I took the actual playing time that each team has allocated so far. Then, I used preseason projections to come up with the offensive numbers we’d expect from each team given who has played and how good we projected them to be. I compared that to how good the team has actually been. The difference between those two numbers is the aggregate overachievement or underperformance that can’t be attributed to injury.

Let’s walk through an example to get a feel for how this works. Twenty different Mets have batted this year, from Travis Jankowski’s single plate appearance up to Francisco Lindor’s 508. Here’s how they’ve each fared relative to their preseason projections:

Mets Hitters vs. Projections
Player PA Projected wOBA Actual wOBA Difference
Francisco Lindor 508 .342 .327 -0.015
Pete Alonso 493 .344 .368 0.025
Juan Soto 492 .408 .368 -0.040
Brandon Nimmo 460 .336 .330 -0.006
Mark Vientos 307 .334 .283 -0.051
Tyrone Taylor 301 .301 .242 -0.059
Brett Baty 293 .314 .302 -0.012
Jeff McNeil 290 .317 .340 0.023
Luis Torrens 218 .294 .266 -0.029
Starling Marte 214 .314 .326 0.012
Francisco Alvarez 180 .324 .319 -0.006
Luisangel Acuña 175 .284 .262 -0.022
Ronny Mauricio 142 .294 .312 0.018
Jesse Winker 81 .333 .301 -0.032
Hayden Senger 49 .250 .184 -0.066
Jared Young 45 .313 .270 -0.043
Jose Siri 24 .291 .168 -0.123
José Azocar 20 .279 .290 0.012
Cedric Mullins 15 .313 .199 -0.113
Travis Jankowski 1 .285 .000 -0.285
Total 4308 .331 .316 -0.016

Let’s get some methodological details out of the way before continuing. For most players, I took a simple average of ZiPS and Steamer projections. Some players only received projections from one system; I used that unadjusted projection in those cases. Some players – pitchers, basically – didn’t receive projections from either system. I’ve excluded them from the sample. From there, I simply took the weighted average projected wOBA to form an expectation and compared it to the weighted average actual wOBA.

The Mets offense has indeed underperformed preseason expectations. It hasn’t been an across-the-board problem; the old guard led by Pete Alonso and Jeff McNeil have performed admirably. But between Juan Soto fall short of some very high expectations and a slew of lesser hitters failing to reach their rather low expectations (Tyrone Taylor, oof), the squad as a whole has come up pretty short.

How do the Mets compare to the rest of the league? I’m glad you asked – otherwise this article would be extremely short. Here’s the full table of performance relative to preseason projections:

Team Offenses vs. Projections
Team Projected wOBA Actual wOBA Difference
DET .312 .322 0.009
TOR .322 .331 0.008
ATH .318 .326 0.008
BOS .320 .327 0.008
ARI .323 .329 0.007
CHC .323 .329 0.006
NYY .329 .335 0.006
SEA .314 .319 0.005
MIA .310 .310 0.000
HOU .320 .318 -0.002
MIL .320 .318 -0.002
PHI .328 .324 -0.004
TBR .317 .312 -0.006
LAD .341 .333 -0.008
MIN .319 .312 -0.008
WSN .314 .305 -0.009
STL .319 .310 -0.009
SDP .318 .308 -0.010
CIN .324 .312 -0.011
COL .313 .301 -0.012
LAA .322 .309 -0.013
SFG .316 .303 -0.013
CHW .307 .294 -0.013
BAL .325 .310 -0.015
NYM .331 .316 -0.016
CLE .315 .296 -0.019
ATL .333 .310 -0.023
KCR .323 .298 -0.025
TEX .323 .297 -0.026
PIT .314 .288 -0.026

The overall league offensive level has been lower this year than you’d project based on which hitters have batted, by seven points of wOBA. That seven-point underperformance puts a lot of teams in context. Have the Dodgers and Rays offenses underperformed? Not really, after accounting for the fact that offense has been harder to come by than expected. The Brewers offense might be producing at a slightly lower level than its projections, but that’s still a win given that most teams are doing even worse than theirs.

With that out of the way, I’d like to highlight a few standouts that you might not have guessed offhand. The Tigers? You’ve absolutely heard about their surprising offensive potency. The Jays? See them leading the AL East? Yeah, better-than-expected offense helps. The A’s and Red Sox have absolutely bopped this year, and both have young players doing well, which always looks good relative to our inherently conservative projections for inexperienced talent. But how about the Diamondbacks? They’ve actually been meaningfully better on offense than we expected en route to a trade deadline sell-off.

That’s a good reminder of two things. First, this method only looks at offense, obviously. Arizona’s pitching was supposed to be great this year, but it has struggled with both injuries and ineffectiveness. The second thing worth mentioning is that we’re comparing current performance to projections, not past performance. The 2024 Diamondbacks were the highest-scoring team in baseball. Our projection systems forecasted a ton of regression from that level, and quite reasonably so: They significantly outperformed their BaseRuns-projected offense, and many players established new career highs, which our projections naturally discounted. They also changed personnel, which lowered their projections for this year, as have Gabriel Moreno’s injuries.

Likewise, the Pirates might seem like a strange team to finish dead last. We already thought they were bad! They had a .295 team wOBA last year, and they’re barely below that this year. But they were expected to improve from 2024, which already looked like an unlucky season. Five different Pirates regulars racked up 200 or more plate appearances with a wRC+ below 75 last year. Trades, free agency signings, and natural bouncebacks were supposed to meaningfully improve their offense. Instead, it has further stagnated.

Fans of the Dodgers, Astros, and Yankees might be confused by their squad’s placement here. Aren’t all three big disappointments relative to expectations? But two things are true. One, “expectations” aren’t quite the same as projections; the Yankees were projected to have the fourth-highest team wOBA, and instead they have the highest. More importantly in all three cases, though, those teams have had key contributors miss time with injury, and my methodology doesn’t penalize those teams for the missed time. I’m trying to answer which teams have had worse-than-expected performances rather than which teams have been less healthy than expected, so I think that this is a feature and not a bug.

Fandom isn’t always rational. I know that plenty of the most ridiculous things I’ve said in my life have been a result of my fandom overriding logical thought. That’s a big reason why we watch sports, even; they’re low-stakes places where you can turn down the volume of your logical brain and feel big feelings in a socially acceptable way. I don’t want to take that away from you, but I do want to give you something objective to look at afterwards. Have your team’s hitters been a disappointment to you? I can’t say. But have they been a disappointment relative to projections? That I can tell you.





Ben is a writer at FanGraphs. He can be found on Bluesky @benclemens.

31 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
HappyFunBallMember since 2019
7 hours ago

Don’t you argue with my emotions!

Good stuff, per usual. I do think that you should penalize for injury. It may not be the team’s fault, per se, but it absolutely informs both the narrative and the fans’ attitudes.

Also, fan attitudes tend to not allow for negative regression. All of last year’s good works *cough* Mark Vientos *cough* are generally assumed to be True Talent improvements.