The Underperforming and Overachieving Offenses of 2025

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:
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 | 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.
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.