As we hit mid-August, there’s still plenty of baseball left to play. Still, that doesn’t mean we’re not starting to see which bubble teams are truly contenders — and which, well, aren’t. For some clubs, September will be a race for a wild-card spot or even a division title. For others, it’ll be a month of sober reflection and planning ahead for 2024.

Into which category does your favorite team fall — at least right now?

Our expert panel has combined to rank every team in baseball based on a combination of what we’ve seen so far and what we already knew going into the 162-game marathon that is a full baseball season. We also asked ESPN MLB experts David Schoenfield, Bradford Doolittle, Jesse Rogers and Alden Gonzalez to weigh in with an observation for all 30 teams.

Week 19 | Second-half preview | Preseason rankings

Record: 78-42
Previous ranking: 1

Lost in the wave of Ronald Acuna Jr.’s spectacular season and Matt Olson‘s barrage of home runs and RBIs is that Austin Riley is quietly having another excellent season after a bit of a slow start. He’s up to 29 home runs and 4.2 WAR as he could be headed for a third straight 30-homer, five-WAR season. Only 12 third basemen have ever had at least three such seasons — including Chipper Jones, who had five. Riley hit .266 with a .775 OPS and 16 home runs in the first half but has hit .318 with a 1.070 and 13 home runs since the All-Star break. Ozzie Albies did land on the IL with a hamstring strain, after not missing a game all season, but trade deadline acquisition Nicky Lopez went 7-for-14 to start his tenure with the Braves and is a plus defender. — Schoenfield


Record: 74-47
Previous ranking: 2

The Orioles still are firmly focused on a regular season that could land them the top seed in the AL playoffs. But for those looking ahead to what a postseason Baltimore rotation might look like, recent trends offer a decidedly mixed bag. Kyle Bradish has been the most consistent starter. However, first-half standout Tyler Wells has fallen off badly, and Kyle Gibson has also been trending in the wrong direction. On the flip side, Grayson Rodriguez has really come on since being recalled from the minors and Dean Kremer‘s performance has ticked up as well. Finally, deadline pickup Jack Flaherty has been all over the place during his three outings for Baltimore, going from terrific to so-so to getting hammered in a loss to the Padres. It’s hard to know what to make of all this, but the upside of this uncertainty is that with so many solid options, Brandon Hyde only needs three or four from this group to be rolling when October baseball comes around. — Doolittle


Record: 73-46
Previous ranking: 4

Remember when the Dodgers caught flak for what appeared to be an underwhelming trade deadline, one that saw them miss out on Justin Verlander and Eduardo Rodriguez and any other top-flight starting pitcher? Well, let’s take a look at who they did acquire. Enrique Hernandez has a .300/.338/.467 slash line since rejoining the Dodgers. Amed Rosario boasts a .759 OPS. Joe Kelly turned in four scoreless appearances before going on the injured list with elbow inflammation. And Lance Lynn, who had the highest ERA among qualified pitchers before coming over from the White Sox, has a 2.00 ERA in his first three starts. In what was supposed to be a transition year, the Dodgers continue to be one of the most dominant teams in the sport. It seems as if everything is going right. — Gonzalez


Record: 72-49
Previous ranking: 3

Texas keeps gobbling up series wins while maintaining a slim lead over Houston in the AL West. Last week was no exception as the Rangers won two of three from Oakland, then two of three from San Francisco, before putting the hammer down (12-0) on the Angels on Monday. In that game, Max Scherzer had a season high 11 strikeouts, giving him 26 in three starts for his new team. And he allowed only one hit, becoming the first Ranger in a decade to strike out at least 10 with one or fewer hits allowed. It’s not the first time Scherzer has had midseason success after being traded. In 2021, after moving to the Dodgers, he ended the season going 7-0 in 11 starts with a 1.98 ERA. The Rangers’ schedule is no picnic the rest of the way, but they’ve thwarted every attempt by the Astros to overtake them so far. — Rogers


Record: 70-52
Previous ranking: 6

This past week typified the season for Jose Altuve, one that has been more quality than quantity. When Altuve has played, he has produced. He’s slashing a robust .320/.419/.536 on the season. The problem: Altuve has been limited to 51 games because of various maladies. The cycle repeated last week, as Altuve was honored as AL Player of the Week after a 13-for-25 spree. Then he fouled a ball off his shin in a game against Miami on Aug. 15 and had to leave the contest. He was termed day-to-day going forward. So it goes for Altuve. Over the past two seasons combined, Altuve has slashed .307/.397/.537 with per-162-game paces of 124 runs, 31 homers, 83 walks and 25 stolen bases. Altuve’s performance seemed to take a perfectly natural dip around the time he reached 30 years old, but over the past couple of seasons, he has reminded everyone of the player who was one of the best hitters of the previous decade. — Doolittle


Record: 73-50
Previous ranking: 5

The historic level of dominance the Rays demonstrated during the season’s first three months seems like a distant memory. Tampa Bay is still in a solid position in terms of the standings and the AL playoff picture. Indeed, it would take a prolonged collapse for the Rays to fall out of the playoff picture altogether. Still, things feel dire around this club right now. The concerning news about ace Shane McClanahan last week ended up exactly where you didn’t want it to end up: Tommy John surgery, which could cost him all of 2024. Then star shortstop Wander Franco ended up on the restricted list and as the subject of an MLB investigation. As the Rays wait on tenterhooks for the outcome of an investigation with reverberations that go well beyond baseball, it’ll be on Kevin Cash and his club to keep this once-promising season from going off the rails. The challenge is considerable. — Doolittle


Record: 67-55
Previous ranking: 7

Bo Bichette appears to be on track to return from the IL sooner than later. The Blue Jays sent Bichette out for a rehab stint with Triple-A Buffalo, though his first shot at game action on Aug. 15 was rained out. While Bichette still leads the AL in hits, his edge over second-place Marcus Semien has narrowed and he has now fallen behind in his bid for his first 200-hit season. Still, if Bichette comes back strong, he still has a great shot at leading the AL in hits for a third straight season. It hasn’t been that long since a player accomplished this, as Jose Altuve led the Junior Circuit in hits four straight years, from 2014 to 2017. Still, if Bichette lands a third straight hits crown, he would own more AL hit titles than all other Blue Jays combined. Vernon Wells (2003) and Paul Molitor (1993) are the only other Jays to accomplish the feat. — Doolittle


Record: 66-55
Previous ranking: 8

After scoring 72 runs and bashing 23 home runs in a 10-game stretch from Aug. 2 through Aug. 11, the Phillies suddenly hit a dry spell, scoring two runs over three straight losses and wasting Zack Wheeler‘s strong outing on Tuesday. That sort of sums up the offense all season long: inconsistent. Their top qualified player in OPS is Bryce Harper, who ranks 53rd in the majors (the injured Brandon Marsh has a higher OPS but not enough plate appearances to qualify). Certainly, Trea Turner‘s recent 10-game hit streak (over a 10-game homestand) is a positive sign, but there are still questions on whether this is a championship-level offense, at least compared to the Braves or Dodgers. — Schoenfield


Record: 65-56
Previous ranking: 11

A sweep of the White Sox in Chicago over the weekend was a reminder that the Brewers are not going to give up their lead in the NL Central easily. The trio of Brandon Woodruff, Corbin Burnes and Freddy Peralta have been reunited and they’re looking pretty good. Peralta, in particular, is rounding into form, having pitched to a 1.44 ERA over his past four starts, including six shutout innings against the White Sox on Sunday. Over those four starts, he’s struck out 39 batters in 25 innings. Woodruff has looked equally good in his return from the injured list. Milwaukee has a tough schedule to finish the season, but they’re still the team to beat in the division. — Rogers


Record: 65-55
Previous ranking: 9

Seattle’s winning streak reached eight in a row before suffering three straight gut-punch losses — and it was almost four. The Mariners lost back-to-back games to the Orioles in the 10th inning, wasting George Kirby‘s nine scoreless innings in the first of those games. Then Matt Brash couldn’t hold a 6-5 lead in the bottom of the ninth against the Royals in a 7-6 loss. On Tuesday, Andres Munoz couldn’t protect an 8-5 lead in the bottom of the ninth, but the Mariners managed to pull out a 10-8 win in the 10th. Even though the bullpen leads the majors in ERA since the beginning of July, trading away closer Paul Sewald suddenly looks a lot more questionable. — Schoenfield


Record: 64-57
Previous ranking: 10

In hopes that he might provide a boost for an offense that held baseball’s lowest OPS in the second half, the Giants called up Wade Meckler on Monday, just 13 months after he became an eighth-round draft pick. Meckler, already the fourth player from the 2022 draft class to reach the major leagues, led qualified players in full-season affiliates in both batting average (.379) and on-base percentage (.463) while jumping three levels in 2023. On Tuesday, while hitting in the No. 2 spot, Meckler recorded his first two hits, helping to spark a 7-0 victory over the Rays. The Giants had lost seven of their previous nine games leading up to that point. — Gonzalez


Record: 62-58
Previous ranking: 13

The biggest moment of the week came on the mound in Toronto on Friday as fill-in starter Javier Assad threw seven solid innings, giving up just a run on four hits. He threw a season high 90 pitches in the process, a stark contrast to his previous outing when he threw 83 pitches in 3⅔ innings against the Braves. The Cubs will need more of the efficient Assad as he continues to fill in for Marcus Stroman, who had a setback while on the IL for a sore hip. The Cubs announced Wednesday that Stroman will be out indefinitely after an MRI revealed a cartilage fracture in his right rib. The Cubs went on to win that series in Toronto after losing one to the Mets. With an easier schedule ahead, there’s a chance they could take over first place by the time they meet the Brewers at the end of the month. — Rogers


Record: 63-59
Previous ranking: 12

As the impossible-to-understand Twins keep alternating winning and losing streaks, one player who has emerged for this offense-starved club has been rookie outfielder Matt Wallner. The 25-year-old, lefty-swinging rookie has wielded a hot power bat over the past three weeks or so. He mashed eight homers over a 19-game span that culminated with a key grand slam in a 5-3 win over the Tigers on Aug. 15. Wallner isn’t a perfect player. He hasn’t hit lefties (2-for-22) and rarely gets a chance to do so. There is a lot of swing-and-miss in his game as well. But his power is legit, he runs well and sports a rocket arm in right field. His ascendance has been well-timed for the Twins. — Doolittle


Record: 63-57
Previous ranking: 14

Whatever Triston Casas did during the All-Star break, he might want to find a way to bottle it, because he’s looked like a completely different hitter since the second half began. Before the break, the main thing Casas had going for him at the plate was a 13.7% walk rate, a category he’s maintained (13.6% post-break). With that as his foundation, everything else has exploded, including his homer rate (3.1% to 9.7%) and BABIP (.283 to 357). His slash line was .225/.330/.398 at the break; since then, it’s .337/.427/.707. Of all qualified hitters since the All-Star Game, only Matt Olson (1.225) has a better OPS than Casas’ 1.131. All this even though Casas isn’t hitting lefties (.563 OPS post-break), which suggests there is room for even more improvement. — Doolittle


Record: 63-59
Previous ranking: 19

They had their best win of the season Sunday when they scored five runs in the bottom of the ninth to beat the Yankees 8-7. Luis Arraez hit the game-tying triple and then Jake Burger drilled the walk-off hit. Josh Bell and Burger both hit over .300 in their first 13 games with the Marlins after coming over at the trade deadline, injecting some much-needed offense into the lineup. If they can keep it going, the Marlins have a chance at a wild card — especially since Sandy Alcantara has perhaps figured things out with two complete games in his past four starts and another eight-inning outing in there. Going back a bit further, he has a 2.59 ERA over his past nine starts. — Schoenfield


Record: 63-59
Previous ranking: 16

Cincinnati has been treading water for some time, but at least the Reds have stabilized their mound woes after an awful stretch. Last week was better — even in losing a series to the Marlins. Combined with their series win over the Pirates, Reds pitching gave up a total of 21 runs over six games. Even with that week, the Reds rank 26th in ERA overall. There aren’t many legit playoff hopefuls ranked that low in MLB. If Hunter Greene and Nick Lodolo can return from their respective injuries without needing a lot of time to lock in, Cincinnati could make a September push. Otherwise, the Reds will have to mash their way to the postseason. Not impossible, but not likely either. — Rogers


Record: 60-61
Previous ranking: 15

The Yankees’ rotation took another hit this week when Nestor Cortes returned to the IL with a rotator cuff issue, and this time, it sounds like his campaign is likely over. The shorthanded New York rotation desperately needs Luis Severino to rediscover his former dominance, but instead, the hole his 2023 season has fallen into just keeps getting deeper. After a six-start stretch dating back to the first of July yielded an 11.22 ERA for Severino, the Yankees made a somewhat ham-handed decision to deploy an opener for him at the outset of a game in Chicago on Aug. 9. Opponents have lit up Severino to the tune of .433 in first innings this season, so maybe just skipping that frame would help him turn the corner. It did not. Severino was back to his usual routine for his next outing in Atlanta, but the results weren’t much better. — Doolittle


Record: 61-60
Previous ranking: 18

The D-backs have had a rough August, no doubt, but their struggles extend a little further than that. A 48-33 record in April, May and June has been followed by a 12-26 record in July and August. During the latter stretch, the D-backs have the fifth-lowest OPS and are scoring the second-fewest runs per game in the major leagues. Their relievers have a 6.18 ERA, the highest in the majors. The D-backs are somehow still in the thick of the wild-card picture, but each of their next five opponents — the Padres, Rangers, Reds, Dodgers and Orioles — are contenders, albeit to varying degrees. They need to get right fast. — Gonzalez


Record: 58-63
Previous ranking: 17

The biggest reason for the star-studded Padres’ befuddling struggles this season can be attributed to their performance — or lack thereof — in tight situations. As of Wednesday morning, the Padres owned the worst record in the majors in walk-off scenarios (1-10), extra-inning games (0-10) and outcomes decided by one run or fewer (6-19). Their high-profile offense, meanwhile, sported the second-lowest OPS in what FanGraphs considered high-leverage situations. “A lot of analytics and analysts will tell you that good teams blow teams out, that you’re going to lose your share of one-run games and there’s some luck involved in that,” Padres manager Bob Melvin, historically good in close games, was quoted as saying in The Athletic. “But as a manager, you don’t feel that way. You feel like you’re right in the middle of that. And the fact that it has not been good this year bothers me, and I feel very accountable for that.” — Gonzalez


Record: 60-62
Previous ranking: 20

Outside of Max Scherzer and Justin Verlander, Lucas Giolito was supposed to be the best starting pitcher moved before the trade deadline. Acquiring him — on the same day that Shohei Ohtani was pulled off the market — was looked upon as a clear, unmistakable sign that the Angels were all in on 2023. But Giolito has been a major disappointment thus far, giving up 19 runs in 21 innings since coming over from the White Sox. The Angels, meanwhile, are quickly fading from the playoff picture — just as Mike Trout and Logan O’Hoppe are nearing the end of their respective rehabs. — Gonzalez


Record: 58-63
Previous ranking: 21

The Guardians are somehow hanging in the AL Central race — mainly because the Twins refuse to pull away — but there is reason for hope. First, they still have six games left with Minnesota. Second, despite the injuries to Triston McKenzie and Shane Bieber, the rookies in the rotation continue to shine (Gavin Williams spun back-to-back starts of 12 and 10 strikeouts). Indeed, Cleveland is third in the majors in ERA and in a tight group of teams battling at the top for fewest runs allowed. The offense just hasn’t scored enough runs: Their outfielders have combined for just 14 home runs — 18 fewer than any other team — which feels almost impossible in today’s game. — Schoenfield


Record: 55-66
Previous ranking: 22

Well, let’s see: There was a six-game losing streak to start August. The Braves shut them out on Friday 7-0 and then swept a doubleheader Saturday by scores of 21-3 and 6-0. The Mets did manage to win the series finale on Sunday night, but that was of little consolation. They’re just a bad baseball team now without any pitching depth. Brett Baty is supposed to be one of their young players to build around, but he’s back in Syracuse (where he at least hit three home runs in his first five games after the demotion). They’re playing guys like DJ Stewart, Rafael Ortega, Danny Mendick and Tim Locastro. How’s your summer going? — Schoenfield


Record: 54-67
Previous ranking: 25

Cardinals brass say they’ll be looking for pitching this offseason. That’s a statement they probably should have made at the end of last year. At least they know what they need now, because their offense has been good enough to win. Paul Goldschmidt had a decent — and needed — week. He went 6-for-20 over a five-game span while producing the seventh-best OPS in MLB over that time frame. Goldschmidt won’t come close to his MVP numbers from a year ago but still has a chance at 25 home runs. He has hit at least 30 every year since 2017, so no matter how it ends up, he’s not the same Goldschmidt of 2022. At 35, could he be slowing down? It’s hard to say, considering how dominant he was at the plate just a season ago, but it’s something to watch in St. Louis in 2024. — Rogers


Record: 54-66
Previous ranking: 24

Miggy went deep! Miguel Cabrera broke a 35-game, 116-at-bat home run drought with a shot on Aug. 15 off Minnesota’s Bailey Ober. It was no cheapie, either, as Statcast measured it at 438 feet, off an exit velocity of 103.4 mph. Cabrera’s 509th career blast moved him into a tie with Gary Sheffield for 26th on the all-time leaderboard. Next up: Mel Ott at 511. While the homer in Minnesota was just Cabrera’s second of the season, perhaps the viciousness with which he clubbed it might portend a spree. It’s hard not to look at the dwindling schedule and think about Albert Pujols’ powerhouse finishing kick last year. — Doolittle


Record: 54-67
Previous ranking: 23

Former No. 1 overall pick Henry Davis is flashing signs of his talent. Over the past week, he hit safely in six of seven games, though he struck out eight times over that span. Results don’t actually matter much right now, as Pittsburgh is giving him valuable playing time, and for the most part, he doesn’t look overmatched. Davis is likely to be a key part of a Pirates team that wants to be in the playoff race as soon as next season. The Pirates will need better arms on the mound if they’re serious about the postseason in 2024. — Rogers


Record: 54-67
Previous ranking: 26

In Kiley McDaniel’s updated list of the top 50 prospects, outfielder James Wood came in at No. 4 and newly drafted outfielder Dylan Crews at No. 7, the only two Nationals ranked. Infielder Brady House drew an honorable mention. MLB.com also updated its prospect list and ranked the Nationals’ farm system No. 8 overall, although that is based mostly on the high rankings for Wood and Crews. Fellow outfielders Elijah Green and Robert Hassell III have taken a step back, and nobody on the pitching side has really emerged. With Wood and Crews knocking on the door as soon as next season, it will be interesting to see if the Nationals go after a couple of free agent pitchers this offseason. — Schoenfield


Record: 48-73
Previous ranking: 27

Tryouts have begun for 2024, and several pitchers are making their case. Longtime minor leaguer Jesse Scholtens has pitched to a 3.20 ERA for Chicago this season, including making five starts. He’ll make a few more before season’s end considering the White Sox traded six pitchers this summer, opening spots both in the rotation and in the bullpen. Scholtens has made three already since the trade deadline and all were respectable as he’s posted a 2.95 ERA in August so far. One player not traded was righty Mike Clevinger, who has quietly put together a decent season — though he has made only 15 starts due to injury. Still, the White Sox might need to pick up their half of the mutual option, as their pitching options for next season are limited. — Rogers


Record: 46-75
Previous ranking: 28

The Rockies were swept in a four-game series at Dodger Stadium over the weekend, scoring only six runs. It’s easy to forget, but just six years ago, the Dodgers and the Rockies finished the regular season with the same record, at 87-75. The Rockies lost the tiebreaker game to Walker Buehler and the Dodgers, but they rebounded to win 91 games and capture a wild-card spot in 2018. Since then, the Rockies are 285-381. The Dodgers are a major-league-best 439-226 during the regular season, more than 150 games better. And the gap between them just continues to widen. — Gonzalez


Record: 39-83
Previous ranking: 29

The Bobby Witt Jr. show continues with another hot week — including a four-hit game (and inside-the-park home run) on Monday and a grand slam on Tuesday. That’s three four-hit games since July 28 as he hit .441/.487/.853 with seven home runs in a 16-game stretch. Maikel Garcia is also proving to be a tough out, as the rookie third baseman has hit .338 over his current 18-game hitting streak. With those two leading the way, the Royals averaged nearly six runs per game through their first 14 games of August. — Schoenfield


Record: 34-87
Previous ranking: 30

Here’s a bright spot for the A’s: Zack Gelof, their 2021 second-round pick out of Virginia, is off to a historic start. No, really. He recently became the first player since 1900 to record at least eight home runs and at least six stolen bases through his first 25 career games. Gelof boasted a .978 OPS during that stretch, too. “He’s got some confidence going right now,” A’s manager Mark Kotsay told reporters. “He’s a student of the game. He studies hard and understands what guys are trying to do to him. He goes up there with a game plan and he’s been able to execute that consistently.” — Gonzalez