Copyright forbes

Cincinnati Reds' Elly De La Cruz, right, talks with Gavin Lux as they warm up during baseball practice Monday, Sept. 29, 2025, in Los Angeles ahead of the Wild Card Series between the Los Angeles Dodgers and the Reds. (AP Photo/Mark J. Terrill) Copyright 2025 The Associated Press. All rights reserved. It’s time for my annual batted ball-based year-end team true-talent rankings —here’s a quick refresher on the methodology. In a nutshell, league averages for each exit speed/launch angle "bucket" are applied to each team's population of batted balls, both for and against, to derive the production they "should have" achieved and allowed. Add back the Ks and BBs, and voila, each team receives an offensive and pitching rating, relative to league average of 100. For hitters, the higher number the better, for pitchers, the lower. Team defense is also measured, in a somewhat unique manner. Clubs' performance is compared head-to-head versus their opponent; the ratio of actual production versus projected performance for both clubs is compared to each other, resulting in a overall defensive multiplier that can also be spread among the individual batted ball types. In 2020, I added a new wrinkle. I introduced a team extreme ground ball-pulling penalty, similar to a concept I use for individual batters. It does not impact the overall team rating, but it more appropriately punishes a team’s offense rather than its defense for shortcomings in this area. To qualify for such a penalty, a team had to both A) pull more than 5 times as many grounders as it hit to the opposite field, and B) post actual grounder production lower than the level it “should have” posted based on its exit speed. The penalty is equal to the amount of that difference. Six clubs were subjected to this penalty, twice as many as in 2022-24, and more in line with 2021 (six) and 2020 (seven). Think of this as an ordered listing of a team’s raw materials - and some teams do more with those than others, thanks to a team’s connective tissue, not to mention good old-fashioned luck. Here we go: MORE FOR YOU 30. Colorado Rockies (Actual Record = 43-119, Projected Record = 49-113) Offensive Rating = 84.7 (30th), Pitching Rating = 123.0 (30th), Defensive Rating = 103.4 (24th); 2025 All-Star Break = 30th I could go on and on about how bad this team was. Worse than the 2024 White Sox according to this method. They walked 159 fewer rimes than their opponents and struck out 438 more. They put an incredible 711 fewer balls in play than their opponents, the largest differential I’ve seen. They were -228 in singles, -76 in doubles and -91 in homers. Bear in mind that this method adjusts for ballpark - the Rockies’ opponents had to play in the exact same conditions. They finished dead last in both hitting and pitching - not even the 2024 Chisox could say that. 29. Los Angeles Angels (Actual Record = 72-90, Projected Record = 64-98) Offensive Rating = 94.9 (24th), Pitching Rating = 109.1 (27th), Defensive Rating = 106.9 (29th); 2025 All-Star Break = 26th This one might surprise you a little bit. Their eight game difference between actual and projected record is tied for third largest. They’ve got some nutty batted ball numbers, too. They put only 3795 balls into play, fewest in MLB, 138 less than the Rockies. They walked 137 fewer and struck out 347 more times than their opponents. They did have some power, actually out-homering their opponents by three (226-223). They actually homered more than they doubled, which is pretty rare. The Angels are the first of six clubs to be assessed an extreme grounder-pulling penalty. Their team defense was brutal, particularly in the outfield (102.1 fly ball and 110.4 line drive multipliers), with Jo Adell the primary offender. 28. Washington Nationals (Actual Record = 66-96, Projected Record = 66-96) Offensive Rating = 97.4 (17th), Pitching Rating = 112.3 (29th), Defensive Rating = 104.0 (26th); 2025 All-Star Break = 24th Things were bad at the All Star break and got worse, particularly on offense, in the second half, as phenom James Wood fell apart. Like most bad teams, they had a poor team K/BB profile, walking 123 fewer and whiffing 103 more times than their opponents. They allowed 252 more batted balls than they hit, and were -178 in the most important category, fly balls. As a result, they were -53 in homers and -3.2 degrees in average launch angle. Their 9.6 degree average offensive launch angle was MLB’s lowest. 27. Chicago White Sox (Actual Record = 60-102, Projected Record = 68-94) Offensive Rating = 95.2 (23rd), Pitching Rating = 111.6 (28th), Defensive Rating = 100.0 (17th); 2025 All-Star Break = 29th Well, at least this qualifies as progress. Like the other clubs in this area code, they’re bad - but not as bad - in some key categories. They walked 97 fewer times than their opponents, and struck out 78 times more. Their opponents put 94 more balls in play, and hit 85 more line drives and 24 more homers than the White Sox. But the Sox were almost even in average exit speed (88.7 vs. 89.1 mph) and launch angle (15.2 vs. 15.0 degrees). There’s nothing resembling a true strength here, but they’re off of the canvas. 26. Baltimore Orioles (Actual Record = 75-87, Projected Record = 70-92) Offensive Rating = 96.9 (19th), Pitching Rating = 107.0 (26th), Defensive Rating = 103.9 (25th); 2025 All-Star Break = 27th I would argue that this was the most disappointing team in baseball this season. It was obvious that pitching was going to be an issue from day one, but the lack of development and even regression of their young position player group was downright alarming. They struck out 106 more times than their opponents, and allowed 237 more batted balls to be put into play - they were -63 in fly balls, -85 in liners and -26 in homers. Defense was a real issue, especially in the infield, where they posted an AL-worst 111.6 grounder multiplier. 1Bs Coby Mayo and Ryan Mountcastle really struggled. 25. Cleveland Guardians (Actual Record = 88-74, Projected Record = 70-92) Offensive Rating = 86.4 (29th), Pitching Rating = 97.0 (11th), Defensive Rating = 101.6 (21st); 2025 All-Star Break = 28th Well look at that 18-game difference between actual and projected records - that’s the largest I’ve seen. There is absolutely nothing positive to say about their offense. They’re even striking out more these days, with a fairly neutral team K/BB profile. Only the Brewers (!) had a lower team average exit speed than Cleveland’s 88.7 mph, and that was by the smallest of margins. Their -1.2 mph overall average exit speed difference was also second worst, fractionally better than the Rockies. And get this - they’re our second club to receive an extreme grounder-pulling penalty. Pulling the ball weakly is no way to go through life. Club brass should be applauded for once again maximizing team performance, especially on the mound, where their overall ranking jumped nine spots since the All Star break. 24. St. Louis Cardinals (Actual Record = 78-84, Projected Record = 72-90) Offensive Rating = 95.5 (22nd), Pitching Rating = 104.5 (23rd), Defensive Rating = 101.7 (22nd); 2025 All-Star Break = 20th Bo-ring. The once-proud Cardinals have fallen on hard times. They don’t do anything particularly well. Even their team defense has fallen off. They struck out 112 more times than their opponents and put 271 fewer balls in play. They had fewer hits of all types than their opponents but most eye-catching was their amazing -27 triples differential. They had nine three-base hits, their opponents had 36. Found a positive - their +4.3 average launch angle differential was MLB’s largest, and their 9.9 degree average launch angle allowed was MLB’s lowest. 23. Miami Marlins (Actual Record = 79-83, Projected Record = 76-86) Offensive Rating = 99.8 (15th), Pitching Rating = 106.4 (25th), Defensive Rating = 99.2 (15th); 2025 All-Star Break = 22nd About here we jump a tier from they truly bad to the merely mediocre. The Marlin offense is the best we’ve encountered to this point on the list. While it was lacking in power - an MLB-worst -1.9 mph fly ball authority and a -45 homer differential stand out to the downside - they finished just four line drives out of the top spot in the NL. They put 50 more balls in play than their opponents (despite hitting 73 fewer pop ups) and had 59 more singles. Once some of their promising young arms mature, they might have something. 22. San Francisco Giants (Actual Record = 81-81, Projected Record = 77-85) Offensive Rating = 93.3 (26th), Pitching Rating = 94.2 (8th), Defensive Rating = 104.2 (27th); 2025 All-Star Break = 21st The Giants’ pitching staff is the best unit on either side of the ball we’ve encountered up to this point on the list. Most of their strengths can be traced back to ground-balling staff ace Logan Webb in some way. Despite putting 92 fewer balls in play than their opponents, the Giants were +133 in fly balls. They had a huge +4.0 degree average launch angle advantage - second to only the Cardinals - and were +30 in homers, pretty unusual for a non-contender. Team defense was a problem, especially in the outfield (NL-worst 115.0 fly ball multiplier), with LF Heliot Ramos the weakest link. 21. Minnesota Twins (Actual Record = 70-92, Projected Record = 77-85) Offensive Rating = 101.2 (13th), Pitching Rating = 98.5 (16th), Defensive Rating = 108.2 (30th); 2025 All-Star Break = 12th Well, I guess their trading deadline purge had the desired impact - no team dropped as many spots on this list since the All Star break than the Twins. Their pitching staff ranked 3rd on the midseason list. While their staff fell one pop up short of the MLB lead, their -112 batted ball differential was concentrated in the key fly ball (-85) and line drive (-39) categories. Their 15.1 degree average launch angle allowed was 2nd highest in either league. Their team defense was dead last - particularly in the outfield, where their 115.5 fly ball multiplier also brought up the rear. It was a team effort, as everyone but Byron Buxton was below average. 20. Pittsburgh Pirates (Actual Record = 71-91, Projected Record = 77-85) Offensive Rating = 93.0 (27th), Pitching Rating = 98.1 (12th), Defensive Rating = 98.7 (14th); 2025 All-Star Break = 23rd Like the Guardians and Giants, the Pirates are a well below average offensive club with solid pitching. Paul Skenes is a big part of that. For this offense to rank 27th on a batted ball-based list with baseball-destroyer Oneil Cruz in the lineup everyday really says something. This bunch hit all of 117 home runs, but their solid staff limited their homer differential to -36. They were also -122 in batted balls and -2.5 degrees in average launch angle. They’re not truly bad anymore, but they’re Skenes away from being that or worse. 19. Athletics (Actual Record = 76-86, Projected Record = 78-84) Offensive Rating = 98.9 (16th), Pitching Rating = 104.0 (22nd), Defensive Rating = 98.1 (12th); 2025 All-Star Break = 25th One of this season’s best kept secrets was the emergence of the A’s as a solid club in the second half. Their offense jumped from 22nd at the All Star break - again, remember that this method adjusts for their launching pad home park - with impact rookie 1B Nick Kurtz leading the way. Despite being -68 in walks, +83 in whiffs, -182 in fly balls and -35 in liners, the A’s were only -3 in homers (219 vs. 222) as they exactly matched their opponents’ average exit speed. They did manage to out-single and out-double the opposition. Their pitching staff was weak, but did pace the majors in pop ups induced. Their 16.1 degree average launch angle allowed was MLB’s highest as a result. 18. Arizona Diamondbacks (Actual Record = 80-82, Projected Record = 81-81) Offensive Rating = 102.1 (9th), Pitching Rating = 105.2 (24th), Defensive Rating = 97.1 (10th); 2025 All-Star Break = 19th The wave of injuries that struck the Diamondbacks’ pitching staff has been well documented, and it likely cost the club a playoff berth. As good as their offense was, their pitching staff allowed their opponents to hit like, well, the Diamondbacks across the board. Average fly ball exit speed, both for and against - 91.1 mph. Average liner exit speed, both for and against - 94.9 mph. Allowing 991 line drives - 93 more than they hit, and third most in the majors - left a mark. They are our third of six clubs to be assessed an extreme grounder-pulling penalty. 17. Kansas City Royals (Actual Record = 82-80, Projected Record = 82-80) Offensive Rating = 102.8 (8th), Pitching Rating = 100.6 (20th), Defensive Rating = 101.3 (20th); 2025 All-Star Break = 16th Really weird season for the Royals. While their overall team ranking barely budged since the All Star break, its components wildly diverged. Their offense jumped from 20th at the break while their staff plunged from 7th. Those developments were somewhat obscured by the pitcher-friendly nature of Kauffman Stadium. There really is the basis of a strong offense in place - +203 in batted balls, -175 in strikeouts, a pronounced +1.3 mph advantage in average liner exit speed, and a solid +0.7 mph advantage overall. It can be argued that the Royals have the brightest near-term future of the AL Central clubs given some improved health on the mound. 16. Cincinnati Reds (Actual Record = 83-79, Projected Record = 82-80) Offensive Rating = 89.1 (28th), Pitching Rating = 93.1 (5th), Defensive Rating = 94.4 (5th); 2025 All-Star Break = 18th Such missed opportunities here. In Great American Ball Park, putting at least an average offensive club on the field should be the easy part. With an average offense, this bunch would be a potential 95-win club. Their 87.9 mph average offensive launch angle is in the game’s bottom tier, but their 88.2 mph average launch angle allowed fractionally missed being baseball’s best. There’s no excuse to have an offense that is -104 in fly balls despite being virtually neutral overall, in this ballpark. The pitching, led by Hunter Greene and Andrew Abbott, is obviously great, but so is the team defense. 2B Matt McLain and 3B Ke’Bryan Hayes were both stellar, and Elly De La Cruz was still solid in a little bit of a down year with the glove. Editorial StandardsReprints & Permissions