2024 Projection Review: Batter Playing Time

Well, I got my yearly, “Talk to the Boss First Before Publishing” article out of the way halfway through January. I started looking into hitter playing time and previously they were just one column in one of the tables. This year, we dove into why our projections came in near the bottom with some computer-generated projections beating them. Besides the results, there is a ton of other information so if someone blows off the specific results, at least read the summary.
Collection Information
Last season I collected about 20 projections right before the final last weekend when most fantasy managers draft. This is when projections needed to be their best. Here is the tweet I sent to mark when I pulled them.
Mark time now…
— Jeff Zimmerman (@jeffwzimmerman) March 21, 2024
In all, I collected 20 different projections. Eight were not freely available to the public. They will be just be labeled Paywall X. Here are the ones people could freely get from the internet.
- ATC (aggregate of other projections)
- Baseball-reference’s Marcels
- Clay Davenport
- Draft Buddy
- THE BAT X
- FanGraphs Depth Charts (aggregate of Steamer and ZiPS)
- Fantasy Pros Zheile (aggregate of other projections)
- Fantrax
- Razzball (Steamer Based)
- Razzball Grey (Grey’s personal projections)
- Steamer (FanGraphs)
- ZIPS
And just for the plate appearance section of hitter playing time, two other projections were included. The first is a plate appearance projection system highly weighted by the NFBC ADP with any other projection included to help deal with catchers. The second is a personal one of mine. I put it together at least six years ago. I looked at historical projections and found where they were off. The three factors that were incorrectly weighted were:
- Playing time over the previous two seasons. A proxy for health and adding in IL information didn’t improve the projection.
- Age. Older hitters continue to get overprojected.
- Projected talent. Lots of time bad hitters get crazy playing time estimates.
I’ve used these values to adjust projections, most of the time downward. Since these projections only look at major league playing time, I needed to give all rookies 200 plate appearances.
To get a list of comparable players, I found the projections for the batters who went in the top 300 of last year’s NFBC Main Event ADP (n=168). If I went any deeper, many of the projections didn’t include certain players and I have to run several tests on different groups of players. A few didn’t even have a projection for the top-168 hitters so it needed to be run twice. Another issue was that some didn’t include plate appearances, so I also ran the analysis with at-bats.
As you will see, I included several averages and medians to see the best way to combine the projections. I included a projection that averaged four free previously solid public projections (THE BAT, ZiPS, Razzball, and Davenport). I picked the four before running any tests.
To see how each projection set compared, I performed a Root Mean Squared Error (RMSE) analysis on the predicted to the actual values. The smaller the final result, the better the system performed.
Test 1: Plate Appearances (All Players)
So here is the first run (of many as you will find out) where all 168 batters were included in the analysis.
I included a 510 PA value. This is the RMSE value that if all the hitters got the same number of plate appearances, they would end up with the lowest RMSE value. For this same set, it was 510 PA. The issue is that we didn’t know for sure what that value would be going forward but it does provide a nice marker to see if a projection is better than a single value.
Projection | RMSE |
---|---|
Average | 145.7 |
4 Free Projs | 153.2 |
Davenport | 154.2 |
ZiPS | 155.0 |
ATC | 156.2 |
THE BAT X | 156.2 |
Razzball | 156.9 |
Jeff’s Adj | 157.5 |
Median | 157.5 |
Paywall #7 | 158.0 |
Paywall #4 | 158.6 |
DraftBuddy | 161.7 |
510 PA | 161.8 |
Paywall #1 | 162.5 |
Paywall #3 | 165.4 |
ADP | 166.6 |
FG_DC | 168.8 |
FGSteamer | 169.5 |
Paywall #2 | 176.2 |
As always, projection aggregators cleaned house taking the top two spots and three of the top five. One interesting note is that the average outperformed the median value. I figured these would be closer.
I was amazed to see how high my 100% computer-generated value performed but more on that later.
The final and most important observation was how poorly our projections performed. Before diving into why, it was assumed we were on the low side since we account for all the playing time. It was the opposite.
On average, We over-projected each hitter by 78.8 PA while everyone else averaged being over by 46.7 PA. Looking over the values, the our issue was overprojecting injury-rish hitters such as Mike Trout (630 PA), Kris Bryant (560 PA), Starling Marte (581 PA), and Trevor Story (630 PA). It’s a flaw we are looking to correct.
The first adjustment is averaging in my computer projection with the four free projections average. Also, I averaged mine with one, two, and three of the projections. To remain fair, I removed the best performing projections because it’s tough to know which one will be the best each season. The key was to see how much the projection adjustment helped even with suboptimal performers.
Here are the results.
Proj | RMSE |
---|---|
Average | 145.7 |
4 Free+Jeff | 146.3 |
3 Free+Jeff | 146.9 |
2 Free+Jeff | 147.5 |
1 Free+Jeff | 148.0 |
4 Free Projs | 153.2 |
Davenport | 154.2 |
ZiPS | 155.0 |
ATC | 156.2 |
THE BAT X | 156.2 |
Razzball | 156.9 |
Jeff’s Adj | 157.5 |
Median | 157.5 |
Adding in the adjustment helps a ton with each one coming in between second to fifth.
Now, there is a major factor to consider with the above values. Of all the projections, my computer projection was the only one who under projected playing time. So here are the RMSE values with the plate appearances adjusted to minimal RMSE.
Projection | Best RMSE | % Adjusted |
---|---|---|
Average | 138.5 | 92% |
4 Free+Jeff | 144.9 | 97% |
3 Free+Jeff | 145.2 | 95% |
2 Free+Jeff | 145.9 | 96% |
4 Free Projs | 146.0 | 91% |
1 Free+Jeff | 146.1 | 96% |
Davenport | 146.2 | 92% |
THE BAT X | 146.7 | 90% |
ATC | 146.7 | 91% |
Median | 146.9 | 90% |
ZiPS | 149.1 | 93% |
Depth Charts (FG) | 149.1 | 87% |
ADP | 149.2 | 87% |
Paywall #3 | 149.5 | 87% |
DraftBuddy | 149.8 | 90% |
Paywall #1 | 149.8 | 89% |
Razzball | 150.1 | 92% |
Paywall #4 | 150.6 | 91% |
Steamer (FG) | 150.8 | 87% |
Paywall #2 | 152.9 | 85% |
Paywall #7 | 154.0 | 90% |
Jeff’s Adj | 157.5 | 106% |
510 PA | 161.8 | 100% |
The range for the RMSE flattens out with the top value and the last few being the only ones that deviated.
The free projections plus ‘Jeff’ hold up and don’t need much downward regression. For those interested, here are my 2025 PA projections and the ideal weights between the projections and my values for the previous season are:
- One other projection/Jeff: 51%/49%
- Two other averaged projections/Jeff: 57%/43%
- Three other averaged projections/Jeff: 62%/38%
- Four other averaged projections/Jeff: 65%/35%
That was way more than expected to write, so it’s time to knock out a few checks.
Test 2: Plate Appearances (All Projections)
Only 160 hitters were compared one all projections that provided plate appearances.
Proj | RMSE |
---|---|
Marcels (BRef) | 142.2 |
Average | 144.0 |
4 Free+Jeff | 144.4 |
3 Free+Jeff | 145.6 |
2 Free+Jeff | 146.2 |
4 Free Projs | 147.6 |
1 Free+Jeff | 150.7 |
Jeff’s (PA, Age, Talent) | 151.2 |
Davenport | 151.4 |
ZiPS | 152.6 |
Razzball | 153.9 |
ATC | 154.0 |
THE BAT X | 154.0 |
Median | 155.7 |
Paywall #7 | 155.8 |
Paywall #8 | 156.3 |
Paywall #4 | 157.2 |
Draft Buddy | 159.3 |
Paywall #1 | 160.2 |
Paywall #3 | 163.4 |
Median | 164.7 |
Steamer (FG) | 168.3 |
Depth Charts (FG) | 168.4 |
Paywall #2 | 173.1 |
Well, a new #1 just showed up with Baseball-Reference’s Marcel nailing the plate appearances. For these players, Marcels undershot the total by only 800 PA. The other projections overshot by about 10,000 PA. Marcels wasn’t included in the previous study because it doesn’t project minor-league hitters. For MLB regulars, Marcels is another solid computer option.
Test 3: At-bats (all batters)
I can now add a couple more projections that only had at-bats. Also, the two computer generated values say good-bye since they only look to estimate plate appearances.
Proj | RMSE |
---|---|
Average | 131.9 |
4 Free Projs | 135.5 |
ZiPS | 136.8 |
Davenport | 137.8 |
ATC | 138.0 |
Razzball | 138.1 |
THE BAT X | 138.3 |
Median | 140.2 |
Paywall #6 | 140.5 |
Paywall #7 | 141.2 |
Zheile (FantasyPros) | 141.8 |
Paywall #1 | 142.8 |
Draft Buddy | 143.2 |
Paywall #4 | 143.8 |
450 AB | 144.2 |
Paywall #3 | 145.8 |
Fantrax | 146.3 |
Depth Charts (FG) | 148.5 |
Steamer (FG) | 148.6 |
Razzball (Grey) | 149.0 |
Paywall #2 | 160.1 |
I’m not at all surprised with the results after the first two rounds.
Test 4: At-bats (all projections)
And now the rankings for all the systems including an average of the Four Free Projection averaged with Marcels.
Projection | RMSE |
---|---|
50% Four Free, 50%Marcels | 125.2 |
Marcels (BRef) | 127.6 |
Average | 130.5 |
4 Free Projs | 133.7 |
ZiPS | 135.1 |
Razzball | 135.7 |
Davenport | 135.9 |
ATC | 136.3 |
THE BAT X | 136.5 |
Median | 138.8 |
Paywall #6 | 139.0 |
Paywall #7 | 139.6 |
Paywall #8 | 139.7 |
Zheile (FantasyPros) | 140.2 |
Paywall #1 | 140.9 |
DraftBuddy | 141.2 |
Paywall #4 | 143.0 |
450 AB | 144.0 |
Paywall #3 | 144.1 |
Razzball (Grey) | 144.6 |
Fantrax | 144.6 |
Steamer (FG) | 147.8 |
Depth Charts (FG) | 148.4 |
Paywall #2 | 158.1 |
Again, no surprises on this last set.
Summary
- As always, a projection aggregate is the most predictive with a small smart sample of existing free projections always finishing near the top.
- All projections overproject the top hitters by a wide margin. Including a smart, computer-based projection into a mix will significantly improve projections.
- The Marcels projection at Baseball-Reference.com crushed the competition by just using a three-year weight average. Remember, it doesn’t include any minor leaguers.
- For now, no paid projections stand out enough to use over those freely available.
That’s it for now. It takes a ton of time and effort to set these up, so I will take a break before diving back in.
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.
Yeah. hugely important and so hard to really predict. I’m curious to see the pitching side of things, but I would expect a similar result.
The corollary to “All projections overproject the top hitters by a wide margin” is, of course, where those plate appearances should actually be allocated. Every PA that Mike Trout doesn’t handle is taken by someone else.
Does it really matter where those plate appearances should be allocated? It’s a dozen crappy players, and we probably don’t need to know who they’ll be. Same with pitchers; there will be a whole lot of bad relievers and some bad starters for each team.
“crappy” depends how deep your league is. Correctly identifying which depth guys to go after can be huge.