FanGraphs Feature Focus: Weather Splits

Dale Zanine-Imagn Images

For today’s FanGraphs Feature Focus, I’ll be taking a look at one of my favorite site features: our Weather Splits. Michael Baumann spotlighted these splits back in 2024, and the format of the page hasn’t changed since then. So while I’ll walk you through how the Weather Splits work and where to find them, I’ll mostly be showcasing some of the silly leaderboards they can help to generate.

To create the leaderboards in this piece, I toyed around with the Weather Split Ranges on the Splits tab of the Splits Leaderboard:

Those Weather Split Ranges aren’t mutually exclusive or siloed off from the rest of the splits. For example, by changing the Wind Speed filter and adding the Wind Direction sub filter, we can see which players have hit multiple home runs with the wind blowing in at 10 mph or more:

Against the Wind: Multiple Home Runs With 10+ MPH Winds Blowing In
Name Team PA HR
Ryan Jeffers MIN 21 3
Salvador Perez KCR 25 2
Aaron Judge NYY 31 2
Cody Bellinger NYY 30 2
Otto Lopez MIA 19 2
Andrés Giménez TOR 30 2
Jonathan India KCR 12 2
Matt Vierling DET 10 2
Jonathan Aranda TBR 43 2
Brandon Valenzuela TOR 15 2
Shea Langeliers ATH 10 2
Tyler Soderstrom ATH 10 2
Jordan Walker STL 14 2
Pete Crow-Armstrong CHC 44 2
Carter Jensen KCR 25 2
Liam Hicks MIA 16 2

Bob Seger would be proud of Ryan Jeffers, who is currently on the IL after undergoing hamate surgery but still tops this leaderboard as the only player with a trio of homers against significant winds. If you click into the full leaderboard, you’ll notice that Auto PT is on:

When that’s the case, the leaderboard will smartly adjust the minimum playing time depending on how restrictive your search is, sometimes setting no minimum at all. You can always set your own minimum in the Filters section. The Temperature filter is even more straightforward to use, though here I’ll note that our filters don’t automatically eliminate indoor or retractable roof stadiums. That’s done with the Ballpark Type filter:

Applying those two filters in tandem, I made a list of the pitchers who’ve done especially well when it’s either chilly or flat-out cold, and they’re actually exposed to those elements:

The Cold Never Bothered Me Anyway: Sub-2.00 FIP in 59 Degrees or Colder
Name Team IP FIP
Cade Smith CLE 11.0 0.08
Bryan Woo SEA 12.0 0.83
Tarik Skubal DET 10.2 1.01
Garrett Whitlock BOS 12.2 1.18
Cristopher Sánchez PHI 18.0 1.35
Zack Wheeler PHI 10.1 1.43
Joe Boyle TBR 11.1 1.58
Drew Rasmussen TBR 12.0 1.58
Braxton Ashcraft PIT 24.2 1.62
Joe Ryan MIN 33.0 1.71
Noah Cameron KCR 10.2 1.76
Minimum 10 IP, n = 106. Roof open/fully outdoor stadiums only.

While the ball doesn’t carry as well in cooler temperatures, it can also cause pitchers to experience grip troubles, even at a relatively balmy 57 degrees. But that hasn’t affected the pitchers on this leaderboard.

The Weather Splits are also a great excuse to take a crash course in barometric pressure, which I had to do in order to understand our various splits. Per Maximum Weather Instruments, which sells barometers and other pressure measurers, normal air pressure is considered 1,013.25 millibars. Anything above that is considered high pressure, so I set my minimum at 1,014. These relievers are the guys most frequently used in high-pressure situations… in both senses of the word:

Under Pressure: Most High-Leverage Batters Faced in High Pressure, as Reliever
Name Team IP TBF FIP
Devin Williams NYM 6.1 34 5.29
Bryan King HOU 6.1 34 3.24
Riley O’Brien STL 7.2 29 1.12
Gus Varland WSN 7 29 3.36
Luke Weaver NYM 7 28 2.22
David Bednar NYY 5.2 27 0.61
Pete Fairbanks MIA 5.2 25 2.37
Huascar Brazobán NYM 5 23 3.88
Justin Sterner ATH 4.2 23 4.15
Calvin Faucher MIA 4.2 22 5.65
Mason Miller SDP 6 22 0.41
Adrian Morejon SDP 5.1 21 0.83
Victor Vodnik COL 5 21 6.68
Jaden Hill COL 4.1 21 4.00
Aroldis Chapman BOS 5 20 3.68
Tony Santillan CIN 5 20 5.28
PJ Poulin WSN 3.1 20 7.28
Louis Varland TOR 6 20 2.24
High pressure: 1014+ millibars

Did I really do this research and make a whole leaderboard just so I could make an “Under Pressure” joke? I choose to exercise my Fifth Amendment rights, Your Honor.

I made leaderboards for these three splits, but we’ve got plenty more within the Weather tab of the Splits Leaderboard. Beyond the ranges for temperature, pressure, and wind, you can also set ranges for air density and elevation. The Ballpark Type and Weather tabs at the top also include some binary filters that you can combine (e.g., rain and drizzle, or fog and haze):

As with ballpark type and leverage, the weather ranges can be combined with both each other and the binary weather filters. For instance, you could look at high winds in warmer weather only, or rain in colder weather only.

Our Weather Splits are available going back to 2010, and the entirety of the Splits Leaderboard can be accessed regardless of whether you’re a FanGraphs Member. But if you want to export to Excel to more easily compare player performance across splits, you have to be a Member. If you’d like to sign up for a Membership, you can do so here.


You Wish To Add Something to Our Discussion, Dr. Ryan?

Kamil Krzaczynski-Imagn Images

Joe Ryan is about as steady a pitcher as you’ll find in the big leagues. Since his first full season in the majors, 2022, Ryan has never made fewer than 23 starts. He’s never thrown fewer than 135 innings nor more than 171, and his season-by-season WAR has stayed between 2.2 and 3.1. He hasn’t been a front-end starter, but he’s making just $6.2 million, which is a tremendous bargain. He was a hot commodity who somehow stayed put during the Twins’ fire sale last summer; if Minnesota is out of contention again, you’ll probably hear his name come up at this coming deadline, as well.

It also helps that Ryan is having a career year at the right time. He’s already at 2.1 WAR on the season, and we’re only about a third of the way through the calendar. That puts him fifth in the league. He’s also sixth in FIP, 12th in strikeouts, and 10th among qualified starters in K-BB%. Read the rest of this entry »


Why Does ZiPS Hate the Milwaukee Brewers?

Jeff Hanisch-Imagn Images

As the caretaker of the ZiPS projection system, I answer a lot of questions about both how it functions and the numbers that it spits out. One question I get a lot is why the system has consistently underrated the Milwaukee Brewers, which it has over the last five seasons and by a significant margin. While I’ve talked a little bit about this issue, mostly in offhand remarks in chats and on social media, addressing that question in detail is probably necessary at this point. Of course, ZiPS isn’t alone in underrating the Brewers. But as the system’s sole developer for nearly a quarter of a century, I have a responsibility to both be as transparent as possible and improve the model as much as I can.

So, how has ZiPS done with the Brewers historically? Well it turns out that since the system was first developed, worse than it has with any other major league franchise! Here are the results for ZiPS vs. Reality since 2005. I’ll note the columns don’t precisely add up, as ZiPS projects full 162-game seasons (or a 60-game one in the case of 2020) and there are a bunch of times that teams played 161 or 163 games:

ZiPS Projected Wins vs. Reality, 2005-2025
Team Preseason ZiPS Wins Actual Wins Miss
Milwaukee Brewers 1655 1725 -70
Los Angeles Dodgers 1823 1890 -67
New York Yankees 1831 1893 -62
Houston Astros 1631 1688 -57
Tampa Bay Rays 1686 1717 -31
Cleveland Guardians 1709 1731 -22
Texas Rangers 1621 1642 -21
St. Louis Cardinals 1764 1782 -18
Miami Marlins 1486 1502 -16
Atlanta Braves 1734 1747 -13
Philadelphia Phillies 1699 1712 -13
Seattle Mariners 1605 1609 -4
Toronto Blue Jays 1676 1677 -1
Los Angeles Angels 1683 1681 2
Athletics 1625 1623 2
San Francisco Giants 1665 1660 5
Chicago White Sox 1549 1543 6
Boston Red Sox 1791 1781 10
Minnesota Twins 1637 1624 13
Baltimore Orioles 1544 1527 17
Detroit Tigers 1635 1613 22
Cincinnati Reds 1593 1570 23
Pittsburgh Pirates 1511 1488 23
Kansas City Royals 1499 1474 25
San Diego Padres 1640 1606 34
New York Mets 1706 1671 35
Arizona Diamondbacks 1633 1592 41
Colorado Rockies 1529 1482 47
Washington Nationals 1624 1576 48
Chicago Cubs 1714 1664 50

One source of error that’s really difficult to control for is what a team does at the trade deadline. Many of the teams that have overperformed their preseason projections have added talent during the season; conversely, underperformers have a tendency to trade talent away. That’s challenging to model, since it involves trying to project players who aren’t currently in the organization as part of the team, even though we have little idea who those players will actually be four months in advance. I actually created a model based on team quality, age, payroll, recent record, and trade history to get an idea of the likelihood a team will be a buyer or seller in an upcoming season. But while it sort of works, its accuracy isn’t up to the level where I’d include it as part of a projection.

Historically, the Dodgers and Yankees have been two of the league’s most aggressive buyers, so it isn’t surprising to see them atop the list of the biggest ZiPS misses. But while the Brewers have made some big in-season moves — the biggest arguably being the CC Sabathia trade in 2008, which was one of the most effective trades of this type ever — they aren’t on the buy side as frequently as some of the other underprojected teams. So, what’s going on here?

First, here’s an overview of how the percentiles for team projections have worked out. Ideally, you want 10% of teams to exceed their 90th-percentile projection, 20% of teams to exceed their 80th, and so on:

ZiPS Projected Wins vs. Reality, 2005-2025
Percentile Percentage of Teams That Exceeded
90th 9.3%
80th 21.0%
70th 29.8%
60th 41.5%
50th 50.5%
40th 58.8%
30th 69.1%
20th 78.4%
10th 88.9%

ZiPS does a pretty good job in the aggregate. To put it simply, the basic job of a projection system is to know the range of possible outcomes, and be wrong by the appropriate margins the proper number of times. It would be easy to say “Hey, projections work as they’re supposed to in the aggregate, and some team is inevitably going to have the worst projections of the 30, so whatever,” but that doesn’t mean that we shouldn’t investigate these issues and assess whether there’s something systemic that the model is missing. Especially so in a case like Milwaukee, where nearly two-thirds of the 21-year error comes from the last five seasons (417 projected wins vs. 463 actual wins).

The ZiPS projected standings have two components: the projections themselves and the estimates of who actually ends up with playing time. To get an idea of how much of the ZiPS misses are errors in projection compared to errors in playing time, I will frequently re-project team wins using the actual playing time for each player after the season is done. Re-projecting the 2021-2025 Brewers using their preseason projections but the players’ actual playing time makes the issue a lot clearer:

Brewers ZiPS Wins vs. Reality
Year ZiPS Preseason ZiPS Knowing Actual Playing Time Actual Wins
2021 83 93 95
2022 88 94 86
2023 84 87 92
2024 78 87 93
2025 84 90 97
Total 417 451 463

Knowing each player’s actual playing time doesn’t eliminate the errors, but it whittles the missing 46 wins all the way down to 12. In other words, ZiPS isn’t doing a bad job with the projections; Dan Szymborski has done a poor job guessing which players will end up with playing time for the Brewers! Injuries are sometimes a reason for playing time discrepancies, but they typically result in teams underperforming their projections as regulars miss time. Not only have the Brewers overperformed, they’ve done so while not being particularly good at avoiding injuries; they’ve actually lost slightly more wins than the average team due to IL stints over the last five years.

Instead, what appears to be happening is that the Brewers have been extraordinarily successful at giving more playing time to players exceeding their projections. For example, there were 62 hitters who had seasons with at least 200 plate appearances for the Brewers from 2021 to 2025. As a group, ZiPS only underestimated them by 1.5 points of wRC+ in the aggregate (104.7 actual vs. 103.2 projected). But of the 33 hitters who exceeded their projected wRC+, 28 of them received more plate appearances than I had as my baseline expectation. The same is true for pitchers, especially relievers. Now, there’s a natural tendency for teams to give more playing time to players who are outperforming their projections and less to guys who are underperforming, but the Brewers have been notably more successful at this than the rest of the league. From 2021 to 2025, 81% of their qualifying players who outperformed their expected wRC+ or ERA+ got more playing time than I expected as a baseline. To put that into context, the league-wide rate was just under 61%, and no other team was above 70%.

So, how do I fix the Brewers’ projections? That’s a bit of a craggy problem that I’m still working on. This offseason, I tried to be more aggressive in my assumptions about who would get playing time for Milwaukee based on the quality of their projections. As a result, ZiPS forecast the team for 85 wins. Naturally, the Brewers are on pace for 99.7 wins as of Wednesday morning. I may need to more accurately project actual front offices; if the Brewers are simply better than everyone else at evaluating their talent with information only they have access to, it’s not something I can directly correct for. Unless, of course, the Brewers decide to just give me all their internal data, which seems unlikely. Or if I, say, catch Dan Turkenkopf in a giant net and imprison him in my tool shed until he spills the beans. As much as I like improving projections, I don’t think my employer would appreciate if I did so by committing federal crimes, so I’ll simply have to keep trying. Being wrong is how we improve predictive models, and let’s just say that the Milwaukee Brewers continue to give me a lot of opportunities to learn.


Jacob Misiorowski Has Fast-Tracked His Way to Becoming an Ace

Benny Sieu-Imagn Images

When he broke in with the Brewers last season, Jacob Misiorowski was tough to miss, unless you were a hitter trying to catch up to his ridiculous velocity. The gangly 6-foot-7 righty announced his presence by reaching 100.5 mph on his first major league pitch and topping out at 102.2 mph in five no-hit innings against the Cardinals in Milwaukee on June 12. He followed that up with six perfect innings against the Twins before yielding a walk and a homer, and was named to the National League All-Star team as an injury replacement after just five starts. He soon leveled off, and finished with comparatively unspectacular numbers — he was an afterthought in the NL Rookie of the Year voting — but this season is a different story. The 24-year-old righty has dominated hitters like a true ace, and has improved in practically every important statistical category.

Misiorowski’s latest outing, once again facing the Cardinals in Milwaukee, was both a gem and an awe-inspiring display of firepower. Monday’s effort began with an unprecedented, if somewhat unproductive, barrage of six consecutive four-seam fastballs to JJ Wetherholt, each clocked at 103.0 mph or higher — but four of them were well outside the strike zone, resulting in a walk:

Misiorowsi overcame the leadoff walk, escaping the inning by throwing just seven more pitches on back-to-back three-pitch strikeouts of Iván Herrera and Alec Burleson, then a first-pitch groundout by Jordan Walker. In fact, he retired 15 straight hitters after the walk, again completing five no-hit innings before yielding a leadoff single to Pedro Pagés in the sixth. The Cardinals turned that into a run after speedster Victor Scott II replaced Pagés on a forceout, took third on a single to right field by Wetherholt, and scored on a grounder by Herrera, but Misiorowski stuck around to complete the sixth and seventh innings before departing with a 4-1 lead. The Brewers won, 5-1. Read the rest of this entry »


Raising, Razing, Rays-ing Expectations

Jonathan Dyer-Imagn Images

The Rays are not the best team in baseball.

That statement was true on Opening Day, when the Rays were projected by FanGraphs Depth Charts to win 79.9 games and finish last in the AL East. It’s true again Wednesday morning, after the Rays fell 6-1 to the Orioles for a third straight loss on Tuesday night. But for much of the time in between, the truthiness of that statement wasn’t so clear.

In the last six weeks, the Rays have rattled off a five-game winning streak, two six-game winning streaks, and a seven-game winning streak. Though they no longer hold the best record in the majors, they still boast the top record in the American League, at 34-18. No team has done more to improve its standing during the first third of the season.

They’re just doing it… weird. While the Rays have the second-best record in baseball, they’re 14th in batter WAR and 12th in pitcher WAR. They don’t have a single player in the top 50 on the combined WAR leaderboard and have just three in the top 100.

Instead, the Rays are outperforming both their ability to score and prevent runs, and their ability to turn those runs into wins. The story of their season to this point is no doubt centered on the sticky concepts of luck, fortune, and deservedness. How much should we adjust our expectations for a team, perhaps, playing above its head? Read the rest of this entry »


If You Want More, More, More, Then Jump

Dennis Lee-Imagn Images

At 2:26 a.m. ET on Tuesday, ESPN’s Jeff Passan reported that the Athletics intended to call up their top pitching prospect, Gage Jump. First of all: Sweet Jesus, Jeff, go to sleep. If you keep burning the candle at both ends like this, you’re not going to be presentable for TV come October.

The A’s didn’t make the move official until Tuesday evening; Jump wasn’t on the 40-man roster, so they had to clear a roster spot by putting Aaron Civale on the IL with shoulder tendinitis and sliding Denzel Clarke over to the 60-day IL. The debut itself was a little rocky, as Jump allowed four runs and nine hits in five innings, but it’s exciting to see him in the majors all the same. And not just because of what it means for writers who traffic in song-lyric headlines. Read the rest of this entry »


How in the World Are the Giants Walking This Rarely?

Ed Szczepanski-Imagn Images

It has been a good year for walks. Whatever you want to attribute it to – and trust me, I’ve done a lot of attributing – batters are drawing free passes more frequently than they have for a long time. Well, most batters. The San Francisco Giants didn’t get the memo. As a squad, the Giants have walked only 5.8% of the time this year. That’s last in baseball by a mile. The gap between them and the 29th-place Rockies is as large as the gap between the Rockies and the league average. What gives?

My investigation started with the 2025 Giants. Walk rate is a stable statistic on the whole. If you walk a lot in one year, you’re likely to walk a lot the next year. But the Giants were no slouches when it came to taking a free base in 2025. In fact, they had one of the highest team walk rates in baseball – 9.2%, fourth in the majors. In the second half of the year, they walked 8.7% of the time. The 10 Giants who batted most frequently had a combined 9.6% walk rate. Four of those players are no longer on the team, but they were actually hurting the average – the six remaining Giants who batted most frequently in 2025 posted an aggregate 10.2% walk rate.

Let’s start, then, with those six players:

Returning Giants, Change in Walk Rate
Player 2025 BB% 2026 BB%
Heliot Ramos 7.5% 5.7%
Willy Adames 11.7% 4.9%
Jung Hoo Lee 7.6% 5.2%
Matt Chapman 13.3% 9.0%
Rafael Devers 14.2% 5.8%
Casey Schmitt 7.8% 3.7%

As Keanu Reeves memorably put it: Whoa. These six have taken 61.5% of the Giants’ plate appearances this year. If they were walking at the clip they did last year, that would add a whopping three percentage points to the team’s overall walk rate, placing San Francisco squarely in the middle of the pack instead of historically low. Read the rest of this entry »


Effectively Wild Episode 2483: Brush It Off

EWFI
Ben Lindbergh and Meg Rowley banter about Craig Kimbrel’s new home, Colton Cowser’s walk-offs, Chris Taylor’s rapid retirement, unretirement, and re-retirement, whether the Mets should sell (and whom they could deal), the relative improvement of MLB’s worst teams, the Blue Jays’ (and Vladimir Guerrero Jr.’s) punchless contact, the historic hitting of this season’s MLB debutants, Gage Jump and the best-ever early returns for a draft class, whether the Athletics’ and Pirates’ production has been as lopsided as expected, an Oneil Cruz update, a trio of teams that has benefited from stable rotations, the Astros’ combined no-hitter, the Cubs’ extreme streakiness (and nondescript roster), more Giants innovations in thrusting, and Bryce Harper’s toothpaste/toothbrush technique, plus postscript updates.

Audio intro: Sean .P, “Effectively Wild Theme
Audio outro: Liz Panella, “Effectively Wild Theme

Link to MLBTR on Kimbrel
Link to post on Kimbrel’s destinations
Link to team RP over prior 14 days
Link to team RP over prior 30 days
Link to Diekman predictions pod
Link to final Diekman stats update
Link to Cowser post
Link to Cowser gamer
Link to MLB.com on Taylor
Link to MLBTR on Taylor
Link to FG playoff odds
Link to Mets impending free agents
Link to article about 2025 Blue Jays hitting
Link to 2026 team wRC+
Link to 2025 team ISO and K%
Link to 2026 team ISO and K%
Link to 2025 team Barrels/BBE%
Link to 2026 team Barrels/BBE%
Link to 2025 team hard-hit %
Link to 2026 team hard-hit %
Link to MLB debutants spreadsheet
Link to B-Ref’s new debuts
Link to Nishida debut story
Link to MLB rookie offense
Link to Passan on Jump
Link to 2024 first round
Link to MLBTR on Jump
Link to draft-class data
Link to Ben on the Pirates and A’s
Link to team hitter WAR
Link to team pitcher WAR
Link to on-pace leaderboard
Link to single-season strikeouts leaders
Link to combined no-hitter gamer
Link to FG post on the no-hitter
Link to BP post on the no-hitter
Link to Bumpus SABR bio
Link to SABR Bumpus no-no story
Link to Langs on Bumpus/Santa
Link to 2026 MLB RP stats
Link to 2026 MLB SP stats
Link to team SP leaderboard
Link to Cubs WAR leaders
Link to Sam on the 2016 Giants
Link to streaky teams spreadsheet
Link to McCringleberry sketch
Link to McCringleberry homage 1
Link to McCringleberry homage 2
Link to Harper’s TikTok
Link to Lindbergh burrito method
Link to Nishida throw 1
Link to Nishida throw 2
Link to Cubs streak fact 1
Link to Cubs streak fact 2
Link to Rangers’ revenge stat
Link to Sox scoring stat 1
Link to Sox scoring stat 2
Link to Marlins/Cardinals/Twins candidates
Link to list of ballpark claimants

 Sponsor Us on Patreon
 Give a Gift Subscription
 Email Us: podcast@fangraphs.com
 Effectively Wild Subreddit
 Effectively Wild Wiki
 Apple Podcasts Feed 
 Spotify Feed
 YouTube Playlist
 Facebook Group
 Bluesky Account
 Twitter Account
 Get Our Merch!


How Unlikely Was the Astros’ Combined No-Hitter?

Jerome Miron-Imagn Images

On Monday night, the Astros celebrated Memorial Day by no-hitting the Rangers. Throwing to catcher Christian Vázquez, pitchers Tatsuya Imai, Steven Okert, and Alimber Santa combined for the 18th no-hitter in a franchise history that dates back to 1962. According to the great Sarah Langs, not only is that the most no-hitters over that period, but the second-place Dodgers are a full five no-nos behind with 13. Imai was making just his sixth major league start. Santa was making his major league debut. There must be something in the water in Houston.

I didn’t catch any of the game live. I saw a supercut that shows all 27 outs the Astros got. This is it. You don’t have to watch it to enjoy this article, and it’s seven minutes long, but I at least wanted to give you the chance to experience the game the way I experienced it.

Several things jumped out at me at the beginning of the video. It starts with an establishing shot of Imai. He’s toeing the rubber before he throws his first pitch, and his stats are overlaid on the screen. They are yucky. He’s 1-2 with an 8.31 ERA, a 1.79 WHIP, a 3:2 walk-to-strikeout ratio, and a 4.64 xFIP. With the Seibu Lions in NPB, Imai ran an ERA below 2.50 in each of the last four seasons. He was unhittable. But his first five-start stretch stateside was abysmal. He hit the IL with arm fatigue after three outings, got lit up in his first Triple-A rehab start, then got lit up again in his first start back with the big club. In the start after that one, on May 18, Imai put up a game score of 41. Somehow, it was his second-best mark of the season. He previously threw a curveball, splitter, and regular changeup, but he seems to have abandoned them entirely. “Command,” wrote The Athletic’s Chandler Rome, “has been somewhere between spotty and nonexistent.” All of this is to say that, to this point in his short MLB career, Imai has not looked like a guy with no-hit stuff. Read the rest of this entry »


FanGraphs Power Rankings: May 18–24

We’re a third of the way through the regular season, which is when the standings start to matter and win-loss records start to become more predictive of summer results. That’s an exciting prospect for the league’s surprise contenders, if a frightening one for some of the playoff hopefuls that are struggling to make headway in the standings.

Our power rankings use a modified Elo rating system. If you’re familiar with chess rankings, you’ll know that Elo is an elegant ranking format that measures teams’ relative strength and is very reactive to recent performance. To avoid overweighting recent results during the season, we weigh each team’s raw Elo rank using our coin flip playoff odds. (Specifically, we regress the playoff odds by 50% and weigh those against the raw Elo ranking, increasing in weight as the season progresses to a maximum of 25%.) The weighted Elo ranks are then displayed as “Power Score” in the tables below. As the best and worst teams sort themselves out between now and October, they’ll filter to the top and bottom of the rankings, while the exercise remains reactive to hot streaks and cold snaps. If you’re looking for a visual representation of the ups and downs of your team throughout the season, look no further than the brand new Power Rankings Board in the FanGraphs Lab.

First up are the full rankings, presented in a sortable table. Below that, I’ve grouped the teams into tiers with comments on a handful of clubs. You’ll notice that the official ordinal rankings don’t always match the tiers — there are times where I take editorial liberties when grouping teams together — but generally, the ordering is consistent. One thing to note: The playoff odds listed in the tables below are our standard Depth Charts odds, not the coin flip odds that are used in the ranking formula.

All power rankings stats, including team records, are updated through Sunday’s games. The rest of the information below is current as of Tuesday morning.

FanGraphs Power Rankings
Rank Team W-L Hot/Cold Elo Opp Elo Playoff% Power Score Δ
1 ATL 36-18 1589 1491 96.9% 1598 0
2 TBR 34-16 1587 1490 92.3% 1597 0
3 LAD 33-20 🔥 1589 1493 99.3% 1592 0
4 MIL 30-20 🛣️ 1562 1501 75.7% 1563 2
5 CLE 32-23 🔥 1540 1499 77.9% 1548 5
6 SDP 31-21 🛣️ 1544 1498 48.9% 1547 -1
7 NYY 31-22 1534 1490 97.8% 1543 0
8 ARI 28-24 🔥 ⛵ 1525 1504 41.9% 1520 7
9 STL 29-22 1517 1500 30.5% 1518 -1
10 CHC 29-24 ❄️ 1518 1508 53.1% 1516 -6
11 PHI 26-27 1520 1498 58.0% 1508 -2
12 ATH 27-26 1495 1500 42.3% 1497 1
13 MIN 26-27 🔥 1499 1495 34.5% 1497 11
14 TOR 25-28 🔥 1498 1494 44.4% 1492 4
15 PIT 27-26 1499 1498 45.9% 1491 -1
16 SEA 25-29 ❄️ 1489 1492 65.2% 1484 0
17 WSN 27-27 1490 1510 2.9% 1482 6
18 CIN 27-25 1485 1501 13.6% 1480 2
19 CHW 26-26 1480 1495 8.3% 1480 -7
20 TEX 24-28 ❄️ ⛵ 1482 1515 39.5% 1478 -9
21 BOS 22-30 1482 1508 26.4% 1472 -2
22 MIA 25-29 🔥 🛣️ 1480 1507 5.4% 1469 5
23 HOU 23-31 🔥 1472 1492 13.6% 1462 5
24 SFG 22-31 1475 1516 7.9% 1460 -3
25 BAL 23-30 1464 1497 20.5% 1455 -3
26 NYM 22-31 1470 1488 18.6% 1455 -9
27 KCR 22-31 1457 1496 17.5% 1447 -2
28 DET 21-33 ❄️ 1431 1498 18.5% 1420 -2
29 LAA 20-34 1412 1498 1.2% 1403 1
30 COL 20-34 1406 1520 0.0% 1394 -1
🔥 Elo up >20 pts (last 10) | ❄️ Elo down >20 pts (last 10)
🛣️ Avg opp Elo >1525 (last 10) | ⛵ Avg opp Elo <1475 (last 10)

Tier 1 – The Best of the Best
Team Record Elo Opponent Elo Playoff Odds Power Score
Braves 36-18 1589 1491 96.9% 1598
Rays 34-16 1587 1490 92.3% 1597
Dodgers 33-20 1589 1493 99.3% 1592

The Braves lost consecutive games for just the third time this season this past weekend, dropping two straight to the Nationals in a surprisingly hard-fought series. Despite that small hiccup, Atlanta is completely in control of the NL East; the team has an 8 1/2 game lead over Washington and is showing no signs of slowing down.

The Rays wound up splitting their rain-shortened series against the Yankees over the weekend after Aaron Judge blasted a walk-off home run on Sunday. That loss snapped a five-game win streak, though Tampa Bay is still 3 1/2 games ahead of New York in the AL East. The team’s offense has been humming along, sitting in the top five in baseball in batting average and on-base percentage, though they’re just 28th in home runs and isolated power. The entire package has been solid — a 104 wRC+ puts them eighth in the majors — but there’s a pretty clear path to improving the lineup as the Rays start planning how to approach the trade deadline.

The Dodgers won four of six against the Padres and Brewers last week, successfully completing a gauntlet against some of the best teams in the National League. Shohei Ohtani had collected hits in eight straight games since his short reset at the plate a few weeks ago; he was held hitless on Sunday, but has compiled a 235 wRC+ over his last 10 games. Teoscar Hernández is also heating up; he’s collected 18 hits and three home runs over the last two weeks. Of course, one of the biggest reasons the Dodgers have enjoyed so much recent success is a bullpen that just had a 38-inning scoreless streak snapped Monday night.

Tier 2 – Solid Contenders
Team Record Elo Opponent Elo Playoff Odds Power Score
Brewers 30-20 1562 1501 75.7% 1563
Guardians 32-23 1540 1499 77.9% 1548
Padres 31-21 1544 1498 48.9% 1547
Yankees 31-22 1534 1490 97.8% 1543

In a series that flipped the NL Central standings, the Brewers swept the Cubs last week. Jacob Misiorowski and Kyle Harrison combined for 13 scoreless innings and 19 strikeouts in that series, as Milwaukee’s pitching staff held Chicago to just five total runs. Misiorowski has been particularly impressive in May; he allowed his first run of the month in his start on Monday and has collected 49 strikeouts in 31.1 innings. Even though they couldn’t overcome the Dodgers this past weekend, the Brew Crew took the first game of a huge series against the Cardinals on Monday.

The Guardians have gone streaking up the standings. They’ve won four straight series, compiling an excellent 11-3 record over the last two weeks; the Nationals scored 10 runs against Cleveland on Monday, just the second time the Guardians have allowed more than four runs in a single game during this stretch. With the Tigers and Royals in danger of falling out of the American League playoff picture entirely, it really does seem like the AL Central is Cleveland’s to lose.

The Yankees welcomed Gerrit Cole back last week and he looked great in his return; he held the Rays scoreless over six innings, allowing just two hits while striking out two. New York ended up splitting that series against Tampa Bay, which means the team hasn’t won a series since taking two of three from the Rangers in the first week of May. Aaron Judge has run a 92 wRC+ during this slide; his walk-off home run on Sunday was his first homer since May 10.

Tier 3 – The NL Melee
Team Record Elo Opponent Elo Playoff Odds Power Score
Diamondbacks 28-24 1525 1504 41.9% 1520
Cardinals 29-22 1517 1500 30.5% 1518
Cubs 29-24 1518 1508 53.1% 1516
Phillies 26-27 1520 1498 58.0% 1508

The Diamondbacks have very quickly turned their season around. Including their win on Monday, Arizona has gone 12-4 over their last 16 games and are suddenly in the thick of the NL Wild Card race. Ketel Marte has been on fire during this stretch. Seven of his last nine games have been multi-hit affairs, and he’s collected 24 hits and three home runs over the last two weeks, good for a 241 wRC+. Not to be out done, Corbin Carroll is in the midst of a 13-game hit streak, with 21 total hits, two homers, and a 261 wRC+.

The Cardinals went 2-3 against the Pirates and Reds last week, and will wrap up a tour of their NL Central foes with series against the Brewers and Cubs this week. For now, the Red Birds are in second place in the division and holding onto a Wild Card spot, but they lost the first game of their series in Milwaukee on Monday and need to turn things around against the division’s leaders.

It was a nightmare of a week for the Cubs. Including their loss on Monday, they’ve now lost nine straight and 13 of their last 15. The team has been shut out four times, and has scored three or more runs in just five games during this cold snap. With three more games in Pittsburgh and a weekend series in St. Louis coming up, Chicago is slumping at exactly the wrong time. The NL Central has been the most interesting division in baseball so far this season, and it seems like the standings could look a lot different by the end of this week.

The Phillies had some of their forward momentum derailed last week, losing consecutive series to the Reds and Guardians. Jacob Misiorowski’s run in May has been dazzling, but Cristopher Sánchez has been almost as good; he hasn’t allowed a single run this month and has struck out 36 batters in 32 innings. With Zack Wheeler back in the fold and Jesús Luzardo earning results more in line with his peripherals, the Phillies rotation finally looks like a strength after a rough first month of the season.

Tier 4 – The Muddy Middle
Team Record Elo Opponent Elo Playoff Odds Power Score
Athletics 27-26 1495 1500 42.3% 1497
Twins 26-27 1499 1495 34.5% 1497
Blue Jays 25-28 1498 1494 44.4% 1492
Pirates 27-26 1499 1498 45.9% 1491
Mariners 25-29 1489 1492 65.2% 1484
Nationals 27-27 1490 1510 2.9% 1482
Reds 27-25 1485 1501 13.6% 1480
White Sox 26-26 1480 1495 8.3% 1480
Rangers 24-28 1482 1515 39.5% 1478

After a pretty rough finish to their April, the Twins have mostly stabilized in May. They’ve won four of their last five series, going 10-5 over their last 15 games. But even with the positive results, Minnesota’s roster has been in a state of flux. Ryan Jeffers fractured his hamate bone last week, and the team has demoted both Royce Lewis and Matt Wallner to Triple-A amidst their ongoing struggles. Thankfully, Byron Buxton is healthy and leading the offense; after a bit of a slow start, he’s posted a 188 wRC+ in May with eight home runs.

The Blue Jays starting rotation is being stretched to the breaking point. With Shane Bieber, Max Scherzer, José Berríos, and Cody Ponce all already sidelined, Dylan Cease joined them on the IL on Monday with a mild hamstring strain. It’s not as significant as losing Berríos to Tommy John surgery, but it does thin a rotation that was already struggling to cover innings. Thankfully, the team managed to avoid another major blow on Sunday. Vladimir Guerrero Jr. was pulled from the game after being hit on the elbow by a pitch, but he doesn’t seem to have suffered any lasting damage and should return to the lineup early this week.

The Reds are still trying to rebound from their eight-game losing streak to start the month of May. They’ve gone 8-6 since stopping that slide, but that hasn’t been good enough to keep pace in a competitive NL Central. Still, even if they’re not as good as their incredibly hot start made it seem, a bunch of the key pieces in their core have taken big steps forward this year. Elly De La Cruz is leading the offense with a 143 wRC+, and Chase Burns has been brilliant on the mound. It wouldn’t be surprising to see those two lead the Reds on an exciting playoff chase this summer — and remember, Hunter Greene is on the mend and expected to return around the All-Star break.

Tier 5 – No Man’s Land
Team Record Elo Opponent Elo Playoff Odds Power Score
Red Sox 22-30 1482 1508 26.4% 1472
Marlins 25-29 1480 1507 5.4% 1469
Astros 23-31 1472 1492 13.6% 1462
Giants 22-31 1475 1516 7.9% 1460
Orioles 23-30 1464 1497 20.5% 1455

It looked like the Red Sox had a bit of momentum on their side after sweeping the Royals last week, but they were swept at home by the Twins this past weekend and fell back into the cellar of the AL East. It’s hard to keep pace with the powerhouses in the division when key players like Garrett Crochet and Roman Anthony have been sidelined with injuries. At least Willson Contreras is doing his best to carry the lineup; he collected 11 hits, two triples (!), and two home runs last week.

The Marlins couldn’t do much against the Braves last week, dropping three of four to the NL East leaders, but Miami bounced back by sweeping the Mets over the weekend. It’s been good to see Sandy Alcantara mostly back to his old self, but the most encouraging development on the pitching staff has been the breakout of Max Meyer. After dealing with injuries for the majority of the last few years, he’s posted a 2.52 ERA and a 2.98 FIP in 11 starts this season.

Tier 6 – Running Out of Time
Team Record Elo Opponent Elo Playoff Odds Power Score
Mets 22-31 1470 1488 18.6% 1455
Royals 22-31 1457 1496 17.5% 1447
Tigers 21-33 1431 1498 18.5% 1420

The collapse of the Tigers has been swift. They managed to snap an eight-game losing streak with a win in the second game of a double-header on Sunday, but it was just their third win in 19 games since placing Tarik Skubal on the IL on May 4. Things have gotten so bad in Detroit that Skubal trade rumors have started back up. He’s making an extremely quick recovery from his elbow surgery, and there’s reason to believe he’ll be back on the mound sometime in June. That would give the team about a month or so to really decide if they’re making a run for the playoffs or if they’d be better off trading Skubal and resetting the roster for next year.

Tier 7 – Hope Deferred
Team Record Elo Opponent Elo Playoff Odds Power Score
Angels 20-34 1412 1498 1.2% 1403
Rockies 20-34 1406 1520 0.0% 1394

Since the Rockies swept the Mets back on April 24–26, they’ve won just seven times in 26 games. That sweep had Colorado sniffing .500, but the team is now 15 games under. Mickey Moniak, the guy who had been leading the offense, was placed on the IL last week with a sprained ankle, and while that isn’t as serious as the elbow strain suffered by Chase Dollander a few weeks ago, the two brightest spots on the Rockies roster are now sidelined.