The 2020 ZiPS Projections

The 2020 ZiPS projection season starts Friday, and before it does, I wanted to offer a brief refresher of what ZiPS is and is not.

ZiPS is a computer projection system, initially developed by me from 2002-2004, and “officially” released in 2004. As technology and data availability have improved over the last 15 years, ZiPS has continually evolved. The current edition of ZiPS can’t even run on the Pentium 4 3.0 processor I used to develop the original version starting in 2002 (I checked). There are a lot more bells and whistles, but at its core, ZiPS engages in two fundamental tasks when making a projection: establishing a baseline for a player, and estimating what their future looks like using that baseline.

ZiPS uses multi-year statistics, with more recent seasons weighted more heavily; in the beginning, all the statistics received the same yearly weighting, but eventually, this became more varied based on additional research. Research is a big part of ZiPS and every year, I run literally hundreds of studies on various aspects of the system to determine their predictive value and better calibrate the player baselines. What started with the data available in 2002 has expanded considerably; basic hit, velocity, and pitch data began playing a larger role starting in 2013, and data derived from StatCast has been included in recent years as I got a handle on the predictive value and impact of those numbers on existing models. I believe in cautious, conservative design, so data is only included once I have confidence in improved accuracy; there are always builds of ZiPS that are still a couple of years away. Additional internal ZiPS tools like zBABIP, zHR, zBB, and zSO are used to better establish baseline expectations for players. These stats work similarly to the various flavors of “x” stats, with the z standing for something I’d wager you’ve already figured out!

When estimating a player’s future production, ZiPS compares their baseline performance, both in quality and shape, to the baseline of every player in its database at every point in their career. This database consists of every major leaguer since the Deadball era — the game was so different prior to then that I’ve found pre-Deadball comps make projections less accurate — and every minor league translation since what is now the late 1960s. Using cluster analysis techniques (Mahalanobis distance is one of my favorite tools), ZiPS assembles a cohort of fairly similar players across history for player comparisons, something you see in the most similar comps list. Non-statistical factors include age, position, handedness, and, to a lesser extent, height and weight compared to the average height and weight of the era (unfortunately, this data is not very good). ZiPS then generates a probable aging curve — both midpoint projections and range — on the fly for each player.

This method has been used by PECOTA and by the Elias Baseball Analyst in the late 1980s, and I think it is the best approach. After all, there is little experimental data in baseball; the only way we know how plodding sluggers age is from observing how plodding sluggers age.

One of the tenets of projections I follow is that no matter what the projection says, that’s the ZiPS projection. Even if inserting my opinion would improve a specific projection, I’m philosophically opposed to doing so. ZiPS is most useful when people know that it’s purely data-based, not some unknown mix of data and my opinion. Over the years, I like to think I’ve taken a clever approach to turning more things into data — for example, ZiPS’ use of basic injury information — but some things just aren’t in the model. ZiPS doesn’t know if such-and-such a pitcher wasn’t allowed to throw his slider coming back from injury, or if a left fielder suffered a family tragedy in July. I consider these things outside a projection system’s purview, even though they can affect on-field performance.

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.

It’s also important to remember that the bottom-line projection is, in layman’s terms, only a midpoint. You don’t expect every player to hit that midpoint; 10% of players are “supposed” to fail to meet their 10th percentile projection and 10% of players are supposed to pass the 90th percentile forecast. This point can create a surprising amount of confusion. ZiPS gave .300 BA projections to two players in 2019: Daniel Murphy (oops!) and José Altuve. But that doesn’t mean ZiPS thought there would only be two .300 hitters. ZiPS actually projected, on average, 21.3 qualified .300 hitters (there were 19). ZiPS didn’t think any given hitter was more likely to hit .325 than not, but it expected someone to.

ZiPS 2019 – .325 BA Probabilities
Player BA>.325
Daniel Murphy 34.1%
Jose Altuve 23.4%
Christian Yelich 13.0%
Charlie Blackmon 12.7%
Mookie Betts 12.6%
Juan Soto 12.0%
Freddie Freeman 11.7%
Adam Eaton 10.5%
Justin Turner 10.4%
Joey Votto 9.0%
Mike Trout 8.5%
Jose Ramirez 8.0%
Vladimir Guerrero Jr. 7.5%
J.D. Martinez 6.9%
Buster Posey 6.9%
Jean Segura 6.6%
Raimel Tapia 6.4%
Nolan Arenado 6.3%
Eloy Jimenez 5.8%
Wilmer Flores 5.8%
Francisco Lindor 5.6%
Lorenzo Cain 5.4%
Howie Kendrick 4.5%
Michael Brantley 4.3%
Jose Martinez 4.3%

Another crucial thing bear in mind is that the basic ZiPS projections are not playing-time predictors. By design, ZiPS has no idea who will actually play in the majors in 2020. ZiPS is essentially projecting equivalent production; a batter with a .240 projection may “actually” have a .260 Triple-A projection or a .290 Double-A projection. How an Adley Rutschman would hit in the majors full-time in 2020 is a far more interesting use of a projection system than it telling me that he won’t play in the majors. For the depth charts that go live in every article, I use the FanGraphs Depth Charts to determine the playing time for individual players. Since we’re talking about team construction, I can’t leave ZiPS to its own devices for an application like this. It’s the same reason I use the depth charts for team projections in-season.

The to-do list never shrinks. One of the things still on the drawing board is better run/RBI projections. ZiPS wasn’t originally designed as a fantasy baseball tool — fantasy baseball analysts have been making fantasy-targeted projections for a long times — but given that ZiPS is frequently used by fantasy players, more sophisticated models are in the works. Saves, on the other hand, are a particularly difficult issue. As of now, the only thing I tell ZiPS about a player’s role is if it is going to change, which determines if ZiPS sees future Mike Moustakas as second or third baseman. I’ve tried a lot of shortcuts, like trying to model the manager’s decision about who the closer would be, using both statistics and things like age, salary, and save-history. While it generally does a good job projecting who will be the closer, the misses are gigantic, and renders save projections ineffective; a managerial decision can turn a 35-save pitcher into a five-save pitcher. I’m still figuring out how to approach this problem.

Have any questions, suggestions, or concerns about ZiPS? I’ll try to reply to as many as I can reasonably address in the comments below.





Dan Szymborski is a senior writer for FanGraphs and the developer of the ZiPS projection system. He was a writer for ESPN.com from 2010-2018, a regular guest on a number of radio shows and podcasts, and a voting BBWAA member. He also maintains a terrible Twitter account at @DSzymborski.

25 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
sportznut3
6 years ago

Thanks for the detailed explanation. Who will be the first team you’re rolling out tomorrow?

OkraMember since 2016
6 years ago

Thanks for sharing your great work and this thorough explanation!

Baron Samedi
6 years ago

Thank you for all your fine work, Mr. Dan.

Detroit Michael
6 years ago

Thanks for your work and making the output publicly available. I’m sure we don’t say that often enough.

I’m curious regarding the impact of StatCast data now that it’s been available for a few years. How much adjusting of it do you have to make (especially early on when data was missed for more pitches)? Is it more impactful on your pitching or your batting projections? Who are the players whose projections are most helped or most hurt by the StatCast data, i.e. whose StatCast data appears to contain the most predictive info that isn’t already present in the rest of their history? Is StatCast data most helpful for players with little MLB history because it might pick up on skills (or lack of skills) more quickly or is my conjecture wrong? It seems to me you might have commentary that is useful and interesting about the predictive usefulness of StatCast data.

Russell EassomMember since 2019
6 years ago

It would interesting to see some of the percentile projections, like 25% & 75%. It would be useful from a fantasy perspective to see if a players are high or low risk based on the spread of those figures.

And as the others have said thanks for all the work.

docgooden85Member since 2018
6 years ago
Reply to  Russell Eassom

Good comment. I’ve been wanting to see the variance on the major projections for ages!

bmarkham
6 years ago
Reply to  docgooden85

I believe Dan used to put out a spreadsheet with additional information not found in the team projections, including 25th and 75th percentile projections. I haven’t seen one in the last few years though, and concur that I would also like to see those (again).

kylerkelton
6 years ago

Thanks Dan! I enjoy looking at the ZiPS projections and your articles are always fun and informative.

whiptydojoe
6 years ago

This is like Christmas Eve for me. Just wanted to say thanks and make sure you know this data is appreciated

Ivan_GrushenkoMember since 2016
6 years ago

Yay ZiPS!

mikecws91
6 years ago

What was Tim Anderson’s probability of a >.325 BA? I’m guessing, uh, low.

sadtromboneMember since 2020
6 years ago

I’d love to see the distributions for some of these guys. I think we’ve always felt in our hearts that Khris Davis gets more consistent predictions than Tim Anderson but it would be neat to see what the standard deviations and/or interquartile ranges look like.

Moranall
6 years ago
Reply to  sadtrombone

I would like to second this. I’ve asked Dan about this before and he mentioned something about how it seems difficult to properly communicate distributions to the audience because they already struggle to understand the initial projection as it is.

Personally, I’d love to see a range of percentiles or even some sort of “volatility” metric. Two players can have pretty similar median projections but a huge difference in the variance of ranges. Stuff like that.

docgooden85Member since 2018
6 years ago
Reply to  Moranall

Yes, some of us do understand this stuff. Feed me, Seymour! I want to know how big those tails are/how wide the SD bands are…

Moranall
6 years ago

Dan,

Thanks for the overview for ZiPS. This really opened my eyes to a few things about the system.

Most notably, I was really intrigued that use you player comps dating all the way back to the end of the deadball era to make aging curves for players today. I don’t think that’s wrong at all, I was just surprised at how far back you go with it still maintaining accuracy (and I would imagine improvements through the years).

But I am curious about something. This is somewhat a “feels” thing, but it really seems like sports as a whole have really modernized in the last 20-30 years. I would say athletes are overall better now than they were in the 1920s (when you start player comps) or even the 1960s, when you incorporated minor league translations. I don’t think this applies to just baseball but all sports: professional athletes seem to be more athletic overall, training regiments have vastly improved, there are more modern tools to analyze the game, the way players approach the game has changed considerably, etc.

This is PURELY hypothetical, but let’s claim the above assumptions to be more-or-less true. If you changed your baselines to start at some arbitrary point closer to today (e.g. 1990? 2000?), what kind of outcomes might you see in ZiPS projections? Would having a potentially more “modern” population, albeit massively smaller, have more positive or negative impacts on ZiPS?

bosoxforlifeMember since 2016
6 years ago
Reply to  Moranall

While I agree with your premise that all modern athletes are better than their predecessors the game that still looks more like it did when I started watching them all is baseball. The Willie Mays, Mickey Mantle and Duke Snider that I watched play in 1954 look like they would still belong in today’s game, and the game still looks very much the same, but the NBA is unrecognizable and the stars of the 50’s, like Harry Gallatin or even the greats like Bob Cousy, would not be able to play in today’s NBA. The NFL is more about the incredible change in the size of the players from the 50’s through today. Defensive ends, now called edge rushers, weighed around 220 and Larry Grantham, a star LB played at 190. This has changed the game and, in my opinion, for the worse. The Laws of Physics govern all movement of objects and it is easier for a 220 pound player to move another 220 pound player than it is when two 330 pounders go to work on each other. Inertia is a powerful force and running the ball is almost a waste of a play because the defensive line is the immovable object but the blockers are not irresistible forces. For that reason I think it is reasonable to include baseball statistics from many years ago but not so in the other sports. Other sports have been altered dramatically by changes in equipment. Not just a better quality baseball or bat but revolutionary changes. Baseball still uses wooden bats, it does not use carbon graphite bats but golf has gone from wooden shafts, through steel and is now predominately using graphite in the shaft. Heads on Drivers were wood until 1982 when metal heads were introduced and swept through the game. If you think the baseball was juiced this year, it is nothing compared to the additional distance that the golf ball manufacturers were able to do with the ball and they were happy to tell the world. Golf saw it as progress but baseball, this year, has seen the distance explosion as a threat, a threat to the history of the game, but that is good because baseball should never change so much as to be unrecognizable,

D-WizMember since 2019
6 years ago

ZiPS is awesome and your (and all of FanGraphs’) dedication to explaining your analysis and showing your work wherever possible (Ben Clemens publicly posting the code he used for his article the other day is another great example) is awesome as well.

docgooden85Member since 2018
6 years ago

Correction: A *tenet* is a principle (ETA-not a principal!). A *tenant* is someone who pays rent.

docgooden85Member since 2018
6 years ago
Reply to  Dan Szymborski

I appreciate the fix!

Before, I was all “My eyes! The goggles do nothing!” but now I’m straight chillin’.

AmpersandMember since 2025
6 years ago
Reply to  Dan Szymborski
brisko
6 years ago

I have always remembered, projection algorithms are not about making predictions. They are about making decisions.

I can’t imagine anyone making a “baseball decision” without referencing ZiPS projections.

brisko
6 years ago
Reply to  brisko

and myself? I always reference ZiPS when following the decisions of baseball decision makers.

jking001Member since 2025
6 years ago

Thanks for laying this out.

If sophisticated models for fantasy are in the works, one thing I would love would be a dataset of everyone’s upside (say, their 75th or 85th percentile projections). Drafting and dropping someone who doesn’t meet that projection isn’t a big deal if I can also draft a few players who perform really well. Using the midpoint projection can lead to drafting high floor, low ceiling guys that are fine but can’t win me a league.