2022 Projection Accuracy: Hitter Playing Time

What started as a checkup on how projections turned into a fairly important find when using projections. On the projection front, aggregators, especially when done smartly, continue to crush the competition. The big illumination is ZiPS being near the top since it uses zero human input.

First off, here are last season’s results with my conclusion.

Hitter Playing Time
For playing time, three of the aggregators, Average, ZEILE, and ATC shoved in this category (Depth Charts takes a hit because it only uses one playing time input). It’s an easy win for the Wisdom of the Crowds.

To find this year’s player set to test, I used all the hitters drafted in at least 42 of the 47 NFBC Main Events. From this list, I excluded Seiya Suzuki because several systems didn’t include him. Also, I excluded Nelson Cruz, Luis Garcia, Manuel Margot, Jake Fraley, Seth Brown, Garrett Cooper, and Darin Ruf 러프. One or multiple systems didn’t have a projection for them. In all, I would have removed four projections, but decided it was better to have more projections and a few players missing. In all, this process was run on 223 hitters.

With the same dataset, I removed the hitters who missed a significant part of the season due to injury. The players left out were Adalberto Mondesi, Miguel Sano, Alex Kirilloff, Kris Bryant, Austin Meadows, Anthony Rendon, Ozzie Albies, Jazz Chisholm Jr., and David Fletcher.

To determine accuracy, I calculated the Root Mean Square Error (RMSE) for four different sets of values. RMSE is a “measure of how far from the regression line data points are” and the smaller the value, the better.

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.

I collected the projections on April 6th from a mix of 23 different sets. Some were free while others were behind a paywall. Those behind a paywall will be labeled as Paywall with a number (e.g. Paywall #1). Additionally, some of the projections were aggregates of other projections. All but one of the aggregators were publicly available. The one that wasn’t is called Aggregator #1. ATC, Depth Charts, and ZEILE are the projections that aggregate their competitors.  Also, Steamer, ZiPS DC, and Depthcharts use the same playing time projections. THE BAT and THE BAT X use the playing time from ATC.

Finally, I looked into several ways to aggregate the projections to see if there was a preferred method and they were:

  • Average of all
  • Median of all
  • Preseason smart average: For this one, I had Rob Silver look at last season’s results, pick three sources to average, and they were used. He chose THE BAT X, Razzball, and Paywall #6.
  • Post-season best average: This started with an average of nine of the projections that I know get regular updates during the preseason. Next, I removed the worst remaining system using this year’s results. The value needed to get under 130.9, the top value for a standalone system.

Here are the results.

RMSE Value as Worse Systems Are Removed
Systems RMSE
9 134.0
8 133.4
7 132.9
6 131.8
5 130.7
4 129.4
3 128.8
2 131.9
1 130.9

The three systems that had the best results are publicly available, Razzball, ZiPS, and Davenport.

With all that out of the way, here are the rankings using the full 223 hitters.

RMSE Values: All Players
System RMSE
Post-Season Best 128.8
Aggregator #1 130.8
Davenport 130.9
ZiPS 132.4
BatX 133.5
Bat 133.6
ATC 134.3
Preseason Guess 135.1
Mr.Cheatsheet 135.3
Median 136.0
Razzball 136.2
CBS 137.8
ZEILE 137.8
Paywall #2 138.6
Average 139.3
Paywall #5 140.0
DraftBuddy 140.1
FreezeStats 142.6
Paywall #3 142.7
Steamer 142.8
Paywall #4 143.1
DepthCharts 143.9
Paywall #6 143.9
Paywall #1 144.8
ZiPS DC 145.1
Rotoholic 169.4
Mays Copeland 173.4

Before drawing any conclusions, here are the results without the hurt players.

RMSE Values: Hurt Players Removed
System RMSE
Post-Season Best 112.1
Davenport 113.6
Aggregator #1 115.2
THE BAT X 115.5
THE BAT 115.6
ATC 116.1
Mr. Cheatsheet 116.9
ZiPS 117.4
Median 117.5
Preseason Guess 117.6
Average 118.5
CBS 119.3
ZEILE 119.3
Razzball 119.8
Draft Buddy 120.9
Paywall #5 121.9
Paywall #3 123.1
Paywall #2 123.6
FreezeStats 124.1
Steamer 124.3
DepthCharts 124.8
Paywall #4 125.4
ZiPS DC 126.0
Paywall #1 126.3
Paywall #6 127.2
Rotoholic 150.3
Mays Copeland 157.8

Like last season, the aggregated systems (e.g. ATC, THE BATs, Median, ZEILE) are near the top. The two projections that stand-alone are Davenport and ZiPS. Last season, they didn’t perform horribly but not good enough to stand out . Here are those rankings.

Note: I might be talking about Mr. Cheatsheet next year as a projection to target.

Both of them had a bad finish but they both were near the top at other times. For standalone playing time projections, they should be given consideration along with the aggregators and Razzball.

Since the playing time from ZiPS is separate from the other playing time projections here at FanGraphs, I asked Dan Szymborski, how he sets the playing for ZiPS.

So setting playing time by just knowing player traits is at least average and outperforms most projection systems.

I was not surprised to find that some of the factors helped predict playing time. While the short 2020 season has caused some hiccups, I found playing time projections could be improved by knowing a hitter’s previous playing (injuries), player talent (good players play more than crappy players), and age. My formula was just a 10% improvement, but still helpful.

What ZiPS is doing is pointing out factors analysts might be missing. For example, why does ZiPS have Gunnar Henderson at 557 AB and Steamer down at 531 AB? A system must be even lower on Henderson’s playing time and is dragging ATC down to 510 AB.

One issue with ZiPS is that it doesn’t robotically zero out playing time. There will be more plate appearances than available in a season. It’s not close to a perfect projection system, but it is definitely catching some factors other projections aren’t.

Here are a couple of issues I could see chopping into ZiPS’s high rank going forward.

  1. It could just be a recent blip where analysts are still having problems evaluating playing time so near to the shortened 2020 season and the 2021 late start. Once baseball gets back to normal, analysts might perform better.
  2. The other projection creators could start spotting their biases and make adjustments to correct them. I’m not sure about this change happening. I discussed ZiPS’s performance with two people behind the better projections and they blew off the ZiPS results.

It’s always I ton of work to set up these projection comparisons. As expected, the aggregators dominated again with a couple of single systems (ZiPS and Davenport) taking a step up this past season. It’s interesting that ZiPS performed as well as it did considering it has no human input.





Jeff, one of the authors of the fantasy baseball guide,The Process, writes for RotoGraphs, The Hardball Times, Rotowire, Baseball America, and BaseballHQ. He has been nominated for two SABR Analytics Research Award for Contemporary Analysis and won it in 2013 in tandem with Bill Petti. He has won four FSWA Awards including on for his Mining the News series. He's won Tout Wars three times, LABR twice, and got his first NFBC Main Event win in 2021. Follow him on Twitter @jeffwzimmerman.

9 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
GreggMember since 2020
3 years ago

Really great stuff, Dr. Z. I always thought projection systems need to be analyzed by parsing PT and rate stats (not by combining them). This is one side of the coin – would love to see the rate side with this level of detail.

One of my big takeaways from the “RSME – Hurt Players Removed” chart is not to pay for any projection system. Only one of the six paywall systems beat the average (barely).

Also, I think you can just call ZiPS DC as Depth Charts since you’re not using any ZiPS rate stats there?

Last edited 3 years ago by Gregg
Mays Copeland
3 years ago

Thanks for doing this, Jeff.

My own projections are the Open Projections–a simple, open source projection that should be just a step above Marcel. There’s no manual input into playing time.

I suggested including them in the analysis as a baseline projection, and they certainly succeeded at that.

TheBabboMember since 2019
3 years ago

If you want to take ZiPS at face value, seems like it also should get dinged for all the erroneous PT projections it makes for hitters who weren’t among the chosen 223. For example, just looking at the Cardinals list for 2022 (first one that happened to pop up in a search) you get the likes of Paul DeJong, projected 505 PA (actual 237); Nolan Gorman, 548 (313); Edmundo Sosa, 432 (190); Matt Koperniak, 428 (0); Alec Burleson, 528 (53), etc. etc. Like Dan always says in his writeups, “ZiPS is agnostic about future playing time by design,” which probably is why he sounded so surprised in his Twitter response.

Blue ShoesMember since 2019
3 years ago
Reply to  TheBabbo

Came here to say this. There’s a huge selection bias in favor of ZiPs when you’re only looking at the sunset of players that mostly played the whole season

docgooden85Member since 2018
3 years ago

I use projections heavily but I only use the rate stats for exactly this reason. The system that doesn’t try very hard to project playing time outperforms those that try very hard to do so; it’s an indictment of half the equation. Since we’ve established that playing time is a wild-ass guess, maybe projections (and consumers like me) should focus on the rates only. We, the unwashed masses, can multiply by our own wild guesses re: playing time.

ETA – One sees this type of error in the corporate world all the time. Let’s make a very well-honed estimate based on tons of data, and at the end of the process let’s introduce massive amounts of error when we multiply it by a complete guess. People are so bad at math but even worse at admitting it.

Last edited 3 years ago by docgooden85
TheBabboMember since 2019
3 years ago
Reply to  docgooden85

I find it most useful to put projected counting stats on a 600-PA scale (a la Steamer600) and compare potential.

David AppelmanFanGraphs Staff
3 years ago

I’m kind of interested in our Depth Chart projections which end up being fundamentally different than straight fantasy projections. Unlike other systems which may hedge on certain players by boosting playing time for all of them, the depth charts are a zero sum game.

I wonder if there’s a way we can better utilize them for fantasy.

It’s curious though that Steamer which is based more or less on our Depth Charts does a bit better, mostly by taking batting order more into account I believe, so maybe that’s half the answer.

Anyway nice work as usual.

Ariel CohenFanGraphs Staff
3 years ago
Reply to  David Appelman

A word on zero sum:

From a fantasy perspective, and from a “best guess” perspective – doing a zero sum approach is typically not the best answer.

Consider going into an apartment building that has 2 elevators at the base floor. Call them A & B. They are spread out 10 feet apart from each other. You and your friend press the button to call an elevator to go up. The question is where do you stand? Where is the best place to stand to minimize variance/error/you name it?

The answer inuitively is to both stand in the middle between the two elevators – 5 feet from one, and 5 feet from the other. Of course, standing between the two as opposed to each of you standing in front of one – isn’t an actual possibility. The zero sum game would be to say that it is 50% A and 50% B … so one of you each stand by one. But you will have much better success in the long run if you both stand exactly in between the two. The zero sum approach isn’t the best answer.

I often get asked the question – why do ATC projections only show 3-4 players projected to hit above .300, when in reality there are a dozen or so. Same answer here – the best guess … what you should bet to be right in the long run, isn’t going to resemble the actual distribution of players. Best guesses don’t have to be zero sum, and are typically not zero sum.

Ariel CohenFanGraphs Staff
3 years ago

Also … great work once again Jeff!

Now that you have done this two years in a row – Do you have a two-year analysis? Any one system can pop up as excellent in a given year, but a multi-year sample is arguable more predictive, especially since you are using RMSE.