Posted in

Why Does ZiPS Hate the Milwaukee Brewers?

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


You Aren’t a FanGraphs Member


It looks like you aren’t yet a FanGraphs Member (or aren’t logged in). We aren’t mad, just disappointed.


We get it. You want to read this article. But before we let you get back to it, we’d like to point out a few of the good reasons why you should become a Member.

1. Ad Free viewing! We won’t bug you with this ad, or any other.

2. Unlimited articles! Non-Members only get to read 10 free articles a month. Members never get cut off.

3. Dark mode and Classic mode!

4. Custom player page dashboards! Choose the player cards you want, in the order you want them.

5. One-click data exports! Export our projections and leaderboards for your personal projects.

6. Remove the photos on the home page! (Honestly, this doesn’t sound so great to us, but some people wanted it, and we like to give our Members what they want.)

7. Even more Steamer projections! We have handedness, percentile, and context neutral projections available for Members only.

8. Get FanGraphs Walk-Off, a customized year end review! Find out exactly how you used FanGraphs this year, and how that compares to other Members. Don’t be a victim of FOMO.

9. A weekly mailbag column, exclusively for Members.

10. Help support FanGraphs and our entire staff! Our Members provide us with critical resources to improve the site and deliver new features!


We hope you’ll consider a Membership today, for yourself or as a gift! And we realize this has been an awfully long sales pitch, so we’ve also removed all the other ads in this article. We didn’t want to overdo it.

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

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.

Leave a Reply

Your email address will not be published. Required fields are marked *