The 2023 ZiPS Projection Season Is Imminent

© Orlando Ramirez-USA TODAY Sports

The ghost of 18th-century statistician Thomas Bayes did not see his shadow, so we are about to launch this year’s 2023 ZiPS projections. As usual, this is a space to talk about some of the basics, answer a few common questions, and wax philosophic about the very nature of predicting baseball futures. A lot of the background can be found by reading MLB’s glossary entry for ZiPS, which gives most of the basics except for the origin story.

ZiPS is a computer projection system I initially developed in 2002–04; it officially went live for the 2004 season. The origin of ZiPS is similar to Tom Tango’s Marcel the Monkey, coming from discussions I had with Chris Dial, one of my best friends (my first interaction with Chris involved me being called an expletive!) and a fellow stat nerd, in the late 1990s. ZiPS moved quickly from its original inception as a reasonably simple projection system, and now does a lot more and uses a lot more data than I ever envisioned it would 20 years ago. At its core, however, it’s still doing two primary tasks: estimating what the baseline expectation for a player is at the moment I hit the button, and then estimating where that player may be going using large cohorts of relatively similar players.

Why is ZiPS named ZiPS? At the time, Voros McCracken’s theories on the interaction of pitching, defense, and balls in play were fairly new, and since I wanted to integrate some of his findings, I wanted my system to rhyme with DIPS (defense-independent pitching statistics), with his blessing. I didn’t like SIPS, so I went with the next letter in my last name, Z. I originally named my work ZiPs as a reference to one of my favorite shows to watch as a kid, CHiPs. I typoed ZiPs as ZiPS when I released the projections publicly, and since my now-colleague Jay Jaffe had already reported on ZiPS for his Futility Infielder blog, I decided to just go with it. I never expected that all of this would be useful to anyone but me; if I had, I would have surely named it in less bizarre fashion.

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. And research is a big part of ZiPS. Every year, I run 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 ’13, while data derived from StatCast has been included in recent years as I’ve gotten 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 guessed.

How does ZiPS project future production? First, using both recent playing data with adjustments for zStats, and other things such as park, league, and quality of competition, ZiPS establishes a baseline estimate for every player being projected. To get an idea of where the player is going, the system compares that baseline to the baselines of all other players in its database, also calculated from whatever the best data available for the player is in the context of their time. The current ZiPS database consists of about 140,000 baselines for pitchers and about 170,000 for hitters. For hitters, outside of knowing the position played, this is offense only; how good a player is defensively doesn’t yield information on how a player will age at the plate.

Using a whole lot of stats, information on shape, and player characteristics, ZiPS then finds a large cohort that is most similar to the player. I use Mahalanobis distance extensively for this. A CompSci/Math student at Texas A&M did a wonderful job showing how I do this, though the variables used aren’t identical.

As an example, here are the top 50 near-age offensive comps for Justin Turner right now. The total cohort is larger than this, but 50 ought to be enough to give you an idea:

Top 50 ZiPS Offensive Comps – Justin Turner
Player Year
Jed Lowrie 2016-2019
Bill Mueller 2003-2006
Wade Boggs 1991-1994
Brooks Robinson 1971-1974
Tony Fernandez 1996-1999
Pinky Higgins 1941-1944
Heinie Groh 1923-1926
Bill Madlock 1983-1986
Scott Rolen 2007-2010
Johnny Logan 1959-1962
Toby Harrah 1981-1984
Joe Sewell 1930-1933
Ben Zobrist 2015-2018
Carney Lansford 1989-1992
Adrian Beltre 2013-2016
Pete Rose 1974-1977
Jimmy Johnston 1922-1925
Joe Stripp 1935-1938
Bobby Bonilla 1995-1998
Stan Hack 1944-1947
Dario Lodigiani 1948-1951
Marco Scutaro 2008-2011
Dave Bancroft 1923-1926
Craig Biggio 1998-2001
Mark Loretta 2004-2007
Dustin Pedroia 2016-2019
Robinson Canó 2015-2018
Lou Boudreau 1949-1952
Buddy Bell 1986-1989
Yunel Escobar 2014-2017
Melvin Mora 2003-2006
Del Pratt 1920-1923
Billy Herman 1943-1946
Art Howe 1978-1981
Aramis Ramirez 2011-2014
Red Schoendienst 1955-1958
Eddie Stanky 1950-1953
Don Hoak 1958-1961
Charlie Gehringer 1937-1940
Willie Randolph 1989-1992
George Kell 1954-1957
Jim Gilliam 1962-1965
Alan Trammell 1989-1992
Kevin Seitzer 1992-1995
Larry Doyle 1917-1920
Brandon Crawford 2018-2021
Wally Joyner 1996-1999
Chipper Jones 2006-2009
Solly Hemus 1956-1959

Ideally, ZiPS would prefer players to be the same age and position, but since we have ~170,000 baselines, not 170 billion, ZiPS frequently has to settle for players nearly the same age and nearly the same position. The exact mix here was determined by extensive testing. The large group of similar players is then used to calculate an ensemble model on the fly for a player’s future career prospects, both good and bad.

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 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 those sorts of things outside a projection system’s purview, even though they can affect on-field performance.

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 their 90th percentile forecast. This point can create a surprising amount of confusion. ZiPS gave .300 BA projections to three players in 2020: Luis Arraez, DJ LeMahieu (yikes!), and Juan Soto. But that’s not the same thing as ZiPS thinking there would only be three .300 hitters. On average, ZiPS thought there would be 34 hitters with at least 100 plate appearances to eclipse .300, not three. In the end, there were 25; the league BA environment turned out to be five points lower than ZiPS expected, catching the projection system flat-footed.

Another crucial thing to 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 2023. 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. But how a Julio Rodríguez would hit in the majors full-time in 2022 was a far more interesting use of a projection system than it telling me that he would play only a partial season (in the end, quite obviously, he played a full year). 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 modified depth charts for team projections in-season. There’s a probabilistic element in the ZiPS depth charts: sometimes Joe Schmo will play a full season, sometimes he’ll miss playing time and Buck Schmuck has to step in. But the basic concept is very straightforward.

What’s new in 2023? Outside of the general calibration, you’ll see a few new things in these reports. The baseline pool has gotten larger as I now have minor league translations back to 1950. ZiPS now projects career JAWS natively — it still uses bWAR for the past here to stay consistent — and you’ll see a player’s projected career JAWS in an extra chart this year. I’m also including the 20th/80th percentile performances in a few key statistics for each player in an attempt to better express the range of possibilities for an audience.

There’s also a change in how the most similar players are represented. In the past, I’ve listed the player who makes up the largest percentage of the model rather than the player who is the most similar. While these are highly correlated, they’re not always the same. For example, if you look at Justin Turner’s comp list above, Jed Lowrie is listed as number one, but he makes up a relatively small part of the model because of the fact that Jed Lowrie as of 2019 has a lot shorter of a future to look at than Bill Mueller after 2006 or Brooks Robinson after 1974. So he falls out of the cohort fairly quickly. But since the player who makes up the largest percentage of the model isn’t really that crucial — there’s almost no change in the result from removing a single player — I felt that it’s more interesting for a reader to get the most similar player, period.

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. If the projections have been valuable to you now or in the past, I would also urge you to consider becoming a FanGraphs Member, should you have the ability to do so. It’s with your continued and much appreciated support that I have been able to keep so much of this work available to the public for free for so many years. Improving and maintaining ZiPS is a time-intensive endeavor and reader support has enabled me to have the flexibility to put an obscene number of hours into its development. It’s hard to believe that ZiPS is nearing its 20th anniversary. Hopefully, the projections and the things we have learned about baseball have provided you with a return on your investment or at least a small measure of entertainment, whether delightful or enraged.

Dan Szymborski is a senior writer for FanGraphs and the developer of the ZiPS projection system. He was a writer for 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.

Newest Most Voted
Inline Feedbacks
View all comments
1 year ago

Yes!!!!!! Was wondering when these and the prospects lists would start rolling out. Some of the most fun reads on this site. Can’t wait, thanks Dan!