Linking STUFFF Changes to Fantasy Relevant Stats
I have a major love-hate relationship with the STUFFF metrics. After just a few pitches, useful information becomes available to determine if a pitcher has improved or not. On the other hand, the issue I have against STUFFF is the lack of transparency and values change as the dataset increases. With all the STUFFF talk, all I want to know is how changes in it will affect a pitcher’s fantasy-relevant stats. In my first article, I set some ERA baselines for the STUFFF values. The next step is to understand what a change in a STUFFF value has on a pitcher. For example, if I hear their Stuff+ jumps from 90 to 110, why should I care? Is the pitcher’s ERA going to drop by 1.00 or by 0.10 or not at all? I decided to just make a major data dump to have a reference when a STUFFF value does move.
Caution: The following values may or may not be predictive. They could just be descriptive. There is just not enough information (2 years of information) to run any ideal predictive test at this point, especially with STUFFF’s vagueness and everchanging nature.
To find the change amounts, I compared the first half and second half STUFFF values for the 2021 and 2022 seasons. The pitchers needed 20 IP in both halves. To find the change (slope), I compared the change in the STUFFF metric to the change in the common stat. In the tables, the slope value is the observed change for 1 point of referenced STUFFF. For example, a 10-point increase in Stuff+ could point to a likely 0.60 increase in K/9 (0.06 x 10).
Here are all the adjustments:
K/9 | BB/9 | K% | BB% | K-BB% | HardHit% | Barrel% | HR/9 | BABIP | |
---|---|---|---|---|---|---|---|---|---|
Slope | 0.06 | -0.02 | 0.24% | -0.03% | 0.27% | -0.01% | -0.05% | -0.01 | -0.0014 |
RSQ | 0.05 | 0.01 | 0.08 | 0.00 | 0.07 | 0.00 | 0.01 | 0.01 | 0.02 |
ERA | FIP | xFIP | SIERA | kwERA | |
---|---|---|---|---|---|
Slope | -0.064 | -0.045 | -0.034 | -0.032 | -0.032 |
RSQ | 0.05 | 0.05 | 0.08 | 0.07 | 0.07 |
K/9 | BB/9 | K% | BB% | K-BB% | HardHit% | Barrel% | HR/9 | BABIP | GB% | |
---|---|---|---|---|---|---|---|---|---|---|
Slope | 0.07 | -0.19 | 0.40% | -0.42% | 0.83% | -0.09% | -0.11% | -0.03 | -0.0018 | 0.07% |
RSQ | 0.02 | 0.28 | 0.08 | 0.25 | 0.23 | 0.00 | 0.01 | 0.02 | 0.01 | 0.00 |
ERA | FIP | xFIP | SIERA | kwERA | |
---|---|---|---|---|---|
Slope | -0.153 | -0.137 | -0.110 | -0.101 | -0.099 |
RSQ | 0.08 | 0.15 | 0.27 | 0.24 | 0.23 |
K/9 | BB/9 | K% | BB% | K-BB% | HardHit% | Barrel% | HR/9 | BABIP | GB% | |
---|---|---|---|---|---|---|---|---|---|---|
Slope | 0.10 | -0.16 | 0.48% | -0.34% | 0.83% | -0.12% | -0.14% | -0.04 | -0.0028 | 0.08% |
RSQ | 0.04 | 0.23 | 0.13 | 0.19 | 0.26 | 0.00 | 0.02 | 0.04 | 0.03 | 0.00 |
ERA | FIP | xFIP | SIERA | kwERA | |
---|---|---|---|---|---|
Slope | -0.172 | -0.145 | -0.106 | -0.100 | -0.100 |
RSQ | 0.12 | 0.19 | 0.28 | 0.26 | 0.26 |
K/9 | BB/9 | K% | BB% | K-BB% | HardHit% | Barrel% | HR/9 | BABIP | GB% | |
---|---|---|---|---|---|---|---|---|---|---|
Slope | 0.14 | -0.02 | 0.42% | -0.03% | 0.45% | -0.05% | -0.08% | -0.01 | -0.0002 | 0.11% |
RSQ | 0.08 | 0.00 | 0.09 | 0.00 | 0.07 | 0.00 | 0.01 | 0.00 | 0.00 | 0.00 |
ERA | FIP | xFIP | SIERA | kwERA | |
---|---|---|---|---|---|
Slope | -0.060 | -0.052 | -0.055 | -0.057 | -0.054 |
RSQ | 0.01 | 0.02 | 0.07 | 0.08 | 0.07 |
K/9 | BB/9 | K% | BB% | K-BB% | HardHit% | Barrel% | HR/9 | BABIP | GB% | |
---|---|---|---|---|---|---|---|---|---|---|
Slope | 0.02 | -0.10 | 0.15% | -0.22% | 0.37% | -0.03% | -0.06% | -0.02 | -0.0003 | 0.03% |
RSQ | 0.01 | 0.23 | 0.04 | 0.22 | 0.15 | 0.00 | 0.01 | 0.02 | 0.00 | 0.00 |
ERA | FIP | xFIP | SIERA | kwERA | |
---|---|---|---|---|---|
Slope | -0.063 | -0.068 | -0.052 | -0.046 | -0.045 |
RSQ | 0.05 | 0.12 | 0.20 | 0.16 | 0.15 |
K/9 | BB/9 | K% | BB% | K-BB% | HardHit% | Barrel% | HR/9 | BABIP | GB% | |
---|---|---|---|---|---|---|---|---|---|---|
Slope | 0.06 | -0.10 | 0.26% | -0.22% | 0.49% | -0.07% | -0.08% | -0.02 | -0.0006 | 0.05% |
RSQ | 0.04 | 0.21 | 0.09 | 0.20 | 0.22 | 0.00 | 0.02 | 0.03 | 0.00 | 0.00 |
ERA | FIP | xFIP | SIERA | kwERA | |
---|---|---|---|---|---|
Slope | -0.085 | -0.082 | -0.065 | -0.060 | -0.058 |
RSQ | 0.07 | 0.15 | 0.26 | 0.24 | 0.22 |
K/9 | BB/9 | K% | BB% | K-BB% | HardHit% | Barrel% | HR/9 | BABIP | GB% | |
---|---|---|---|---|---|---|---|---|---|---|
Slope | -0.95 | 1.54 | -4.16% | 3.45% | -7.63% | 0.98% | 1.32% | 0.30 | 0.0104 | -0.88% |
RSQ | 0.04 | 0.21 | 0.10 | 0.19 | 0.22 | 0.00 | 0.02 | 0.03 | 0.00 | 0.00 |
ERA | FIP | xFIP | SIERA | kwERA | |
---|---|---|---|---|---|
Slope | 1.337 | 1.266 | 1.018 | 0.947 | 0.916 |
RSQ | 0.07 | 0.15 | 0.27 | 0.24 | 0.22 |
Notes.
- Also, an r-squared (RSQ) value of 0.00 means there is no correlation while 1.00 means perfect correlation. As can be seen, there isn’t much correlation in the values. This is expected with many inputs besides pitch shape going into the value (e.g. ERA is missing team defense, park shape, opponent, etc).
- Changes in Stuff move the strikeout numbers while changes in Location/Command move the walk numbers. Shocking.
- Changes in Location/Command appear to have three times the impact on useable fantasy stats than changes in Stuff.
- There is no reason to focus on the Stuff and Location/Command values. Just go straight to the overall values. The r-squared for the changes are higher and so are the measured change. If just one of the overall values is to be used, make it Pitching+.
- Batted ball metrics don’t change when the STUFFF values change.
For a usable example, here are the pitchers who saw their Bot Overall change the most from before July (min 20 IP) to just July (min 10 IP). For reference, a 10-point move in Bot Overall should expect a 0.85 move (10 x 0.085) in the opposite direction for ERA.
First 3 months | July | Difference | |||||||
---|---|---|---|---|---|---|---|---|---|
Name | Bot Overall | Pitching+ | ERA | Bot Overall | Pitching+ | ERA | Bot Overall | Pitching+ | ERA |
Aaron Nola | 60 | 106 | 4.51 | 76 | 114 | 3.38 | 16 | 8 | -1.13 |
Bobby Miller | 66 | 109 | 4.23 | 80 | 108 | 4.35 | 14 | -1 | 0.12 |
Zack Wheeler | 67 | 110 | 3.86 | 80 | 118 | 5.00 | 13 | 8 | 1.14 |
Bailey Ober | 54 | 102 | 2.97 | 66 | 106 | 0.69 | 12 | 4 | -2.28 |
Lance Lynn | 55 | 100 | 6.47 | 66 | 104 | 2.92 | 11 | 4 | -3.55 |
Corbin Burnes | 52 | 104 | 4.10 | 62 | 108 | 1.89 | 10 | 4 | -2.21 |
Andrew Heaney | 50 | 98 | 4.38 | 60 | 106 | 4.73 | 10 | 8 | 0.35 |
Jose Berrios | 56 | 102 | 3.74 | 65 | 112 | 0.73 | 9 | 10 | -3.01 |
Logan Webb | 55 | 101 | 3.43 | 64 | 105 | 1.15 | 9 | 4 | -2.28 |
Framber Valdez | 52 | 101 | 2.49 | 61 | 106 | 5.11 | 9 | 5 | 2.62 |
Median | -1.67 | ||||||||
Average | -1.02 | ||||||||
Lucas Giolito | 54 | 103 | 3.53 | 43 | 95 | 2.77 | -11 | -8 | -0.76 |
Taijuan Walker | 50 | 100 | 3.93 | 39 | 94 | 4.50 | -11 | -6 | 0.57 |
Ranger Suarez | 57 | 98 | 3.18 | 46 | 93 | 5.82 | -11 | -5 | 2.64 |
Clarke Schmidt | 62 | 107 | 4.37 | 49 | 97 | 3.86 | -13 | -10 | -0.51 |
George Kirby | 66 | 110 | 3.26 | 53 | 102 | 4.34 | -13 | -8 | 1.08 |
Rich Hill | 45 | 98 | 4.45 | 31 | 89 | 6.60 | -14 | -9 | 2.15 |
Nathan Eovaldi | 54 | 101 | 2.82 | 38 | 92 | 2.92 | -16 | -9 | 0.10 |
Jon Gray | 52 | 100 | 3.21 | 36 | 92 | 5.25 | -16 | -8 | 2.04 |
Josiah Gray | 36 | 92 | 3.30 | 20 | 88 | 6.30 | -16 | -4 | 3.00 |
Adrian Houser | 51 | 100 | 3.88 | 29 | 88 | 3.38 | -22 | -12 | -0.50 |
Median | 0.83 | ||||||||
Average | 0.98 |
The expected change almost lines up with the actual change. The STUFFF models should just be using the pitch characteristics to set the STUFFF values so the results should be independent. It’s nice to see the agreement.
I believe STUFFF matters in two ways (small sample) and trying to find early changes. After that, result-based metrics should take over. The next big step is to find out when that crossover happens.
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.
To the descriptive/predictive element of this, I guess I would be interested to know whether you’re evaluating the changes on a per-player basis and then looking at the slope or grouping the players by ranges and then looking at the change. Since the fantasy relevant stats can be relatively noisy, a change in the pitching metrics may be masked by the natural variance in ERA, etc.
I don’t know if I’m describing this well, but I guess what I’m trying to say is that a change in ERA for a given player may have a lot of noise, so it may not be due to a change in pitching quality. I guess I would be more interested to know if players whose STUFF metrics don’t change by a large margin see movement toward their STUFF-implied statistics in the second half.
Let me also say I love this type of analysis. I’m always interested to see how these new metrics relate to results, since what ultimately matters is identifying places where the execution may result in better future outcomes than expected.
I can do this … one minute.
With the same same, 15 guys saw their bot Overal change by +/- 1.
Their average ERA change was +0.27 (median = +0.44). The average SIERA change was -0.15 (median = +0.03).
Looking back, I should have run the sample on the first two months and then the next two months.