How to Customize your Projections

Fantasy baseballers, I come to you today with an admission: I’m a total hypocrite. I am the first person that will tell you that the computer-based projection systems like Steamer, PECOTA, ZiPS, etc will beat a human-curated projection every time. And yet, year after year, I find myself *tinkering*. Changing an ERA/WHIP projection here, increasing a batting average or HR-total there. There are certainly areas where the computer systems fall short, since they don’t know about injuries, can be slow to adjust to real-world depth chart changes, and tend to be skeptical of breakouts. That’s why I’ve created tools that allow me to go about this customization/adjustment process in a much more systematic way. With a series of fairly straightforward inputs, these tools convert peripheral numbers into projected statlines, using models originally detailed here which are scaled to the total #’s projected by the Steamer projection system. Thanks to these handy tools, I’ve been able to integrate all of my preseason research this year, including injuries, xStats, and depth chart info, into a set of over 50 custom projections (included in this year’s Big Board). But, I’m all about empowering you all to do these things yourself, so what follows here is a comprehensive tutorial in how to build your own custom projections.

First, a quick interlude and plug for a new 2020 tool. Time and time again, it’s been shown that averaging of projection systems yields the most accurate results. In previous years, I’ve touted that, and pointed people to buy the Big Board if they wanted to create combined projections. This year, I’ve spun out the Custom Projections Tool as its own thing! Feel free to open it up and make your own copy. It includes a built in function to update the projections whenever you want, as well as the ability to create manually edited projections like the ones I will describe through the rest of this piece. Of course, the best way to turn this into actionable fantasy information is still to buy the Big Board and plug your projections in there!

Back to business. In order to demonstrate the process, I’m going to walk through an example hitter projection and example pitcher projection, but first, here are four resources you’re going to need:

9BCOOnQ[1].png

kKdDYvA[1].png

YSsQPTv[1].png

2kurDoe[1].png

Editor’s Note: What follows was originally written in 2018 for Trea Turner and Robbie Ray. The approach has remained largely the same, although I trust xStats less these days as a meaningful predictor! Given that I still follow the same approach, I’m sticking with these original examples once again.

Hitter Projection – Trea Turner

Step 1) Create an AVG/OBP/SLG (slashline) projection

For the first example, we’ll use Trea Turner. Earlier in the preseason, he was a much better example, as Steamer had him projected to hit near the bottom of the Nationals’ order for some inexplicable reason. In cases like that, there is one really easy way to make the correction – keep all of the other stats in this process the same as Steamer, but change the lineup position, and see what changes. A recent Steamer update brought them back to the real world where Trea is a #1/#2 hitter, but you’ll see below there are still places where I disagree with the default projection.

The first set of stats we’ll need here are BABIP, K%, BB%, HR/FB%, and FB%. From those stats alone, the first tool will project AVG/OBP/SLG. For each stat here, I’ll reference steamer, career and 2017 numbers from Trea’s player page, as well as his xStats.

BABIP
Steamer: .346
Career: .352
2017: .329
xStats: .325

Here we see a wide range, but consistently high BABIPs. Trea’s speed and batted ball profile means he has been and should continue to be a high BABIP guy, but the question is how high. Steamer has bought in hard at .346. I believe this is overly inflated by a stretch in 2016 where outfielders were playing Trea too shallow (as documented elsewhere by Andrew Perpetua). But, the xStats projection also underrates him because they don’t yet fully capture the effect of footspeed. So I’m shooting right in the middle of xStats and Steamer, and setting his BABIP at .335.

K%/BB%
Steamer: 18.4%/6.8%
Career: 18.5%/5.9%
2017: 17.9%/6.7%

This is a fairly narrow range, Trea has established his skills as a low-K, low-BB guy so far. I’ll agree with Steamer and continue to buy more of the same, approximating at 18.5% K% / 7% BB%.

HR/FB% and FB%
Career: 12.7% and 32.6%
2017: 9.9% and 33.5%

Steamer/xStats do not show projections for these stats, but we can use projected ISO as a good representative (HR-rate and ISO are very strongly related). Once we plug in a HR/FB% and FB%, the calculator will tell us our projected ISO. Steamer says .168 and xStats agrees at .167 for Trea’s ISO. I don’t expect any major change in launch angle or exit velo from Trea’s career norms, so I’ll say 12% HR/FB% and 33% FB%.

FgBzGXS[1].png

We get a .290/.340/450 slashline, with a .162 ISO. Compare that against Steamer’s .297/.348/.466 slashline – I’m a bit lower on his BABIP and power, and we see that translated to the difference in slashlines (lower AVG/OBP/SLG).

Step 2) Add playing time, SPD, and team context

An underrated but highly important part of player projections is setting playing time and projecting R/RBI, and so in this step we’ll take the slashline from step 1, plus some additional info, and nail those numbers down. This will give us the final product – a projection of the five fantasy stats, HR, R, RBI, SB, and AVG.

G
Steamer: 138
2017: 98 (missed time with injury)

It’s important to be *consistent* with however you project games played. Steamer does not project any player for more than 148 games. If you’re only customizing certain players, and leaving the rest on a default steamer projection, you’ll want to make sure you follow the same rule of thumb. For me, I will keep most players near the 148-game mark unless there are obvious current health questions, platoon situations, or a stacked depth chart (like the Cubs situation) eating into playing time. As we’ll see in a moment, the PA-per-game are heavily influenced by lineup position, so if I’m worried a player has some risk of not holding the lineup spot I have him projected for, I’ll also decrease the projected # of games to account for the loss in PA’s from potentially moving down in the order. 

All that said – I think Steamer is being too conservative here based on recent injury history, I will bump Trea to near full time, 144 G.

Batting Order
Roster resource: 2nd
Last year: Almost exclusively 1st, but Adam Eaton wasn’t around. (find this on the Splits page)

I’m almost always sticking with Roster Resource on this. They are the best in the biz when it comes to depth charts/lineups. 2nd it is. Behind the curtain, the tool uses this info to calculate the relative R/RBI we would expect for Trea (both the overall amount and the ratio of R:RBI), as well as the expected PA/G. The tool gives a total of 641 PA – a bit higher than Steamer’s 629 PA. I would say Steamer clearly has him listed as the #2 hitter as well, but they have him for only 138 G! We should expect Trea to be an everyday player – I like our PA projection more than Steamers.

Team Runs
FanGraphs projected standings: Nationals, 4.93 RS/G

I stick with the FanGraphs projection here, it’s a relatively minor factor, and it’s mostly important to be in the right ballpark (i.e. is this player’s team offense good or bad, broadly speaking?). 4.93 RS/G * 162 G = 799 R.

Team SB
2017: Nationals, 108

Again, we just need a broad idea of whether this team runs a lot or not. They’re above average, and that’s good enough for me. We’ll stick with the 2017 number, 108.

SPD
Steamer: 7.7
Career: 9.0
2017: 8.9

Steamer regresses SPD heavily for outliers like Trea, but he has proven his skill to run fast and steal bases, at this point, as captured by his SPD scores. I’ll split the difference between the two and give him an 8.3 SPD score, which is still insanely high.

Plugging it into the DIY Projection Tool…

GDMBc6n.png

Step 3) The Final Projection

Plugging all the numbers into the tool, I arrive at the following approx. line for Trea: 640 PA, 20 HR, 100 R, 75 RBI, 55 SB, .290 AVG. Compare that against Steamer: 629 PA, 17 HR, 95 R, 66 RBI, 49 SB, .297 AVG. The overall $ value changes from $32 to $35.6 after this adjustment!

Pitcher Projection – Robbie Ray

Step 1) The Basics – IP, K, BB

For pitchers, if we project IP, K, BB, we’re already 80% of the way to a good projection. This will be the most important part! The example here will be Robbie Ray, who is really interesting to project this year, as he’s gone guardrail-to-guardrail on his luck-based stats the last two years (terrible in ’16, great in ’17) and has the complicating factor of the new Arizona humidor.

IP
Steamer: 168 IP, 29 GS
2017: 162 IP, 28 GS
2016: 174 IP, 32 GS

Steamer sees Ray as keeping similar IP/GS to last year, but has him projected for only 29 GS. I’ll bump that up to a full season (32 GS) and put him conservatively at 180 IP. That’d be a career high, but not by much, and even if there’s an injury somewhere in there, I’m willing to believe he’s bought a bit more manager trust (and therefore longer outings) after his stellar 2017.

K% and BB%
Steamer: 29.4% and 9.8%
Career: 27.1% and 9.5%
2017: 32.8% and 10.7%

You’ll note that I use K% and BB% in this case, which are generally more reliable/consistent stats than the raw K/BB numbers. These will be calculated for you in the tool, and they update as you change all the other inputs in the tool. As I input raw K/BB projections, these are the numbers I’m actually watching. In terms of K%, Ray took a big step forward in 2016 and another small step in ’17, but the walk rate has actually gotten a bit worse. Steamer shoots somewhere between ’16 and ’17 on both, which strikes me as reasonable. I’ll push both numbers a bit up from Steamer, projecting 235 K and 80 BB (translates to 30.7% K% and 10.5% BB%).

Step 2) The Hard Part – BABIP, HR/9, Team W

Now I’ll take a look at historical stats and xStats to see if we need to adjust the ‘luck’ stats, along with including a projected win total for the Diamondbacks to scale Robbie’s expected W’s.

BABIP
Steamer: .295
Career: .319
2017: .267
xStats ’17: .304

First off, I think it’s wise not to fully buy into the .267 BABIP Ray managed to post last year, but he certainly also seems to have reached a new level with respect to contact suppression (ie he is definitely better than the .319 career BABIP). We can confirm this looking at the 2017 xStats, where the exit velocities and launch angles allowed say he should have allowed a .304 BABIP. Based on that, I’m going to be more pessimistic than Steamer, and set Ray’s BABIP at .305

HR/9
Steamer: 1.12
Career: 1.11
2017: 1.28
xStats ’17: 1.18

Based on Robbie Ray’s previous reputation as a good K/BB, bad ERA/WHIP guy, you might be surprised to hear he’s historically been average (or better) at allowing HR’s. His big problems have really stemmed from BABIP and LOB%. So, Steamer’s 1.12 HR/9 seems fairly reasonable! Sort of. I’ll note that since his big step forward in ’16, he’s allowed more HR’s (1.24 and 1.28 HR/9 past two years). But more importantly, the humidor is coming to Chase field! I have seen estimates in the range of a 35% reduction in HR’s at Chase this year. Allow me to make an oversimplification here, and say that this could translate to an overall 17% reduction in Ray’s HR/9 (since he plays half his games at home). I’ll set 1.25 HR/9 as the baseline, so reducing that by 17% gives a 1.04 HR/9! People are seriously going to underestimate the possible effects of the Chase humidor.

Team W
FanGraphs: Diamondbacks, 84 wins

Nothing exciting here. Pitcher W projections are highly arbitrary and inaccurate, but we’ll at least scale that by the expected Win% of Ray’s team.

zaXU28g[1].png

Step 3) The Final Projection

Plugging it all into the pitcher tool, we arrive at a final line for Robbie: 180 IP, 13 W, 235 K, 3.32 ERA, 1.29 WHIP. Compare that against Steamer: 168 IP, 12 W, 209 K, 3.70 ERA, 1.25 WHIP. So right away we can see some big differences here. The difference in K’s is obvious (higher IP, higher K%). The lower HR-rate has decreased ERA significantly, down closer to last year’s 2.89 ERA. The higher BABIP/BB% have increased his WHIP above the Steamer line. It’s a bit closer to his career 1.35 WHIP. The overall $ value changes from to $11.4 to $14.6, pumping Ray up quite a bit in the ranks. Weirdly enough, he’s still being drafted much higher than this over at NFBC, which is nuts! Drafters must be fully buying into last year’s BABIP, so I guess I’m out on Ray for this year.


Hopefully this is interesting/valuable to you all, hit me up in the comments and let me know if any step of this is not intuitive or if you agree/disagree with my approach!

Leave a Comment

Scroll to Top