|
|
Why?
Mostly out of curiousity. I was interested in some kind of measure on how tough a pitcher was to hit, but not a total effectiveness stat like ERA+. Pitchers can be effective by being hard to hit or having great control. Leave control out of this, I wanted something that tells me how tough they were to hit. Some of the stats we have point in the direction I want, like hits allowed, homeruns allowed, and strikeouts. Hits allowed are problematic because of the DIPS theory, that pitchers don't really have a lot of control of the outcome on balls in play. It's mostly defense, or luck. Strikeouts work better, but have changed quite a bit over time. In the early part of the 20th century, pitchers only struck out 3 or 4 batters per game. Mid to late 20th century, that was more like 6 per 9 innings, and today they strike out a batter per inning. But I don't want some metric that tells me Bob Feller didn't have good stuff compared to the players of today. I want something normalized to the league. Yeah, I know pitchers throw harder than ever before and are tougher to hit today, but for this purpose I want something normalized.
It might be interesting to look at how this changes over a pitcher's career. Or constructing an aging curve. It should be strongly correlated with velocity, but there's more to it than that. Movement is a big deal. Tommy John probably threw low 80s towards the end of his career, but rates about league average as late as 1982, when he only struck out 2.8 per 9 innings. He does well because he didn't allow the homerun and got soft contact. Command within the strike zone will also allow a pitcher to rate better than he would just by velocity and movement. For pitchers before the radar gun, and especially pitch tracking, it would be difficult or impossible to isolate those features, the stuff rating is just a rough approximation of the combination of those things.
Anyway, here's how it's calculated.
- Start with hits, innings, homers, and strikeouts.
- Estimate At bats. AB = IP * 2.9 + hits
- Calculate Batting average on balls in play (BABIP), (hits - HR)/(AB-HR-SO)
- Calculate BABIP for the league
- Get expected hits in play for the pitcher: (AB-HR-SO) * BABIP_lg
- Strikeouts are the driving factor for this expected hits measure
- In the Stuff rating, we're going to use 1/3 actual hits in play, and 2/3 expected hits in play. I'll call this Hits_use
- Now we're getting somewhere. Let's make this a rate state. Rate = (hits_use * 1 + HR *1.9) / AB
- Calculate that for the league as well, call it Rate_lg
- Now for Stuff Rating: 100 * (2-Rate/Rate_lg)
The coefficients used above are from WOBA. In The Book the coefficents are:
- Single 0.90
- Double 1.24
- Triple 1.56
- Homer 1.95
So why I am I using 1.0 for hits? Well, If I take the number of singles in 2022, multiply by .9, then doubles by 1.24, triples by 1.56, and divide by the total number of non-homer hits, I get something really close to 1. For 2022, actually .99. Now with a little more work we can find the exact number of singles, doubles, and triples allowed by each pitcher, but then I'm regressing to the league average of BABIP anyway, so for simplicity, I'm going to stick with using 1.0 here.
I also haven't done park adjustments. It would not be a bad idea to do that, but I've chosen to stick with the simple here.
So what seasons rate as the best?
I've set a minimum of 25 innings here, the best are a bunch of mostly recent short relievers:
| playerID |
Last |
First |
yearID |
lgID |
IP |
H |
HR |
SO |
BABIP |
xHits |
xWOBA |
Stuff_Rate |
| willide03 |
Williams |
Devin |
2020 |
NL |
27 |
8 |
1 |
53 |
0.217 |
10.5 |
0.122 |
156 |
| chapmar01 |
Chapman |
Aroldis |
2014 |
NL |
54 |
21 |
1 |
106 |
0.283 |
21.8 |
0.126 |
153 |
| kimbrcr01 |
Kimbrel |
Craig |
2021 |
NL |
36.67 |
13 |
1 |
64 |
0.221 |
16.8 |
0.138 |
150 |
| chapmar01 |
Chapman |
Aroldis |
2016 |
NL |
26.67 |
12 |
0 |
46 |
0.277 |
12.9 |
0.141 |
150 |
| karinja01 |
Karinchak |
James |
2020 |
AL |
27 |
14 |
1 |
53 |
0.339 |
12.2 |
0.148 |
147 |
| gagneer01 |
Gagne |
Eric |
2003 |
NL |
82.33 |
37 |
2 |
137 |
0.256 |
41.7 |
0.152 |
147 |
| workmbr01 |
Workman |
Brandon |
2019 |
AL |
71.67 |
29 |
1 |
104 |
0.212 |
40.6 |
0.159 |
146 |
| marmoca01 |
Marmol |
Carlos |
2010 |
NL |
77.67 |
40 |
1 |
138 |
0.309 |
38.4 |
0.15 |
146 |
| chapmar01 |
Chapman |
Aroldis |
2018 |
AL |
51.33 |
24 |
2 |
93 |
0.283 |
25 |
0.153 |
146 |
| janseke01 |
Jansen |
Kenley |
2010 |
NL |
27 |
12 |
0 |
41 |
0.243 |
14.6 |
0.152 |
145 |
Setting a minimum of 162 innings:
| playerID |
Last |
First |
yearID |
lgID |
IP |
H |
HR |
SO |
BABIP |
xHits |
xWOBA |
Stuff_Rate |
| martipe02 |
Martinez |
Pedro |
1999 |
AL |
213.33 |
160 |
9 |
313 |
0.331 |
145.5 |
0.203 |
133 |
| martipe02 |
Martinez |
Pedro |
2000 |
AL |
217 |
128 |
17 |
284 |
0.243 |
153.4 |
0.212 |
130 |
| ryanno01 |
Ryan |
Nolan |
1977 |
AL |
299 |
198 |
12 |
341 |
0.261 |
212.1 |
0.205 |
128 |
| johnsra05 |
Johnson |
Randy |
1995 |
AL |
214.33 |
159 |
12 |
294 |
0.31 |
151.5 |
0.211 |
128 |
| johnsra05 |
Johnson |
Randy |
2001 |
NL |
249.67 |
181 |
19 |
372 |
0.315 |
168.6 |
0.21 |
127 |
| clemero02 |
Clemens |
Roger |
1998 |
AL |
234.67 |
169 |
11 |
271 |
0.278 |
180.1 |
0.219 |
126 |
| burneco01 |
Burnes |
Corbin |
2021 |
NL |
167 |
123 |
7 |
234 |
0.317 |
113.2 |
0.202 |
126 |
| mcdowsa01 |
McDowell |
Sam |
1965 |
AL |
273 |
178 |
9 |
325 |
0.266 |
178.1 |
0.192 |
126 |
| clemero02 |
Clemens |
Roger |
1997 |
AL |
264 |
204 |
9 |
292 |
0.292 |
208.9 |
0.222 |
125 |
| goodedw01 |
Gooden |
Dwight |
1984 |
NL |
218 |
161 |
7 |
276 |
0.302 |
150.9 |
0.202 |
125 |
The worst, keeping a minimum of 162 innings:
| playerID |
Last |
First |
yearID |
lgID |
IP |
H |
HR |
SO |
BABIP |
xHits |
xWOBA |
Stuff_Rate |
| ogeach01 |
Ogea |
Chad |
1999 |
NL |
168 |
192 |
36 |
77 |
0.276 |
203 |
0.341 |
83 |
| niekrjo01 |
Niekro |
Joe |
1968 |
NL |
177 |
204 |
18 |
65 |
0.293 |
191.8 |
0.296 |
83 |
| ortegph01 |
Ortega |
Phil |
1965 |
AL |
179.67 |
176 |
33 |
88 |
0.248 |
186.2 |
0.305 |
83 |
| lopezro01 |
Lopez |
Rodrigo |
2010 |
NL |
200 |
227 |
37 |
116 |
0.291 |
230.6 |
0.326 |
83 |
| miltoer01 |
Milton |
Eric |
2005 |
NL |
186.33 |
237 |
40 |
123 |
0.321 |
219.4 |
0.336 |
83 |
| ramospe01 |
Ramos |
Pedro |
1957 |
AL |
231 |
251 |
43 |
91 |
0.264 |
253.9 |
0.317 |
83 |
| limajo01 |
Lima |
Jose |
2000 |
NL |
196.33 |
251 |
48 |
124 |
0.313 |
238 |
0.348 |
81 |
| silvaca01 |
Silva |
Carlos |
2006 |
AL |
180.33 |
246 |
38 |
70 |
0.315 |
236.3 |
0.356 |
81 |
| loopebr01 |
Looper |
Braden |
2009 |
NL |
194.67 |
226 |
39 |
100 |
0.287 |
229.9 |
0.334 |
81 |
| arroybr01 |
Arroyo |
Bronson |
2011 |
NL |
199 |
227 |
46 |
108 |
0.278 |
235.8 |
0.341 |
76 |
Some of the greats. Note: Seasons of less than 25 innings are excluded.
Rapid Robert
| playerID |
Last |
First |
yearID |
lgID |
IP |
H |
HR |
SO |
BABIP |
xHits |
xWOBA |
Stuff_Rate |
| fellebo01 |
Feller |
Bob |
1936 |
AL |
62 |
52 |
1 |
76 |
0.329 |
47.6 |
0.216 |
128 |
| fellebo01 |
Feller |
Bob |
1937 |
AL |
148.67 |
116 |
4 |
150 |
0.285 |
119.6 |
0.223 |
124 |
| fellebo01 |
Feller |
Bob |
1938 |
AL |
277.67 |
225 |
13 |
240 |
0.273 |
240 |
0.239 |
119 |
| fellebo01 |
Feller |
Bob |
1939 |
AL |
296.67 |
227 |
13 |
246 |
0.258 |
252.4 |
0.235 |
119 |
| fellebo01 |
Feller |
Bob |
1940 |
AL |
320.33 |
245 |
13 |
261 |
0.258 |
269.5 |
0.233 |
119 |
| fellebo01 |
Feller |
Bob |
1941 |
AL |
343 |
284 |
15 |
260 |
0.268 |
296 |
0.239 |
114 |
| fellebo01 |
Feller |
Bob |
1945 |
AL |
72 |
50 |
1 |
59 |
0.246 |
54.7 |
0.209 |
120 |
| fellebo01 |
Feller |
Bob |
1946 |
AL |
371.33 |
277 |
11 |
348 |
0.267 |
283.6 |
0.215 |
119 |
| fellebo01 |
Feller |
Bob |
1947 |
AL |
299 |
230 |
17 |
196 |
0.241 |
253.9 |
0.238 |
111 |
| fellebo01 |
Feller |
Bob |
1948 |
AL |
280.33 |
255 |
20 |
164 |
0.266 |
264 |
0.261 |
105 |
| fellebo01 |
Feller |
Bob |
1949 |
AL |
211 |
198 |
18 |
108 |
0.263 |
203.3 |
0.269 |
102 |
| fellebo01 |
Feller |
Bob |
1950 |
AL |
247 |
230 |
20 |
119 |
0.26 |
244.4 |
0.272 |
105 |
| fellebo01 |
Feller |
Bob |
1951 |
AL |
249.67 |
239 |
22 |
111 |
0.261 |
247.8 |
0.275 |
100 |
| fellebo01 |
Feller |
Bob |
1952 |
AL |
191.67 |
219 |
13 |
81 |
0.303 |
194.1 |
0.276 |
96 |
| fellebo01 |
Feller |
Bob |
1953 |
AL |
175.67 |
163 |
16 |
60 |
0.246 |
179.4 |
0.28 |
99 |
| fellebo01 |
Feller |
Bob |
1954 |
AL |
140 |
127 |
13 |
59 |
0.247 |
137 |
0.273 |
99 |
| fellebo01 |
Feller |
Bob |
1955 |
AL |
83 |
71 |
7 |
25 |
0.229 |
82.5 |
0.273 |
100 |
| fellebo01 |
Feller |
Bob |
1956 |
AL |
58 |
63 |
7 |
18 |
0.272 |
63.5 |
0.301 |
92 |
The left arm of God
| playerID |
Last |
First |
yearID |
lgID |
IP |
H |
HR |
SO |
BABIP |
xHits |
xWOBA |
Stuff_Rate |
| koufasa01 |
Koufax |
Sandy |
1955 |
NL |
41.67 |
33 |
2 |
30 |
0.254 |
34.3 |
0.232 |
117 |
| koufasa01 |
Koufax |
Sandy |
1956 |
NL |
58.67 |
66 |
10 |
30 |
0.286 |
62 |
0.306 |
90 |
| koufasa01 |
Koufax |
Sandy |
1957 |
NL |
104.33 |
83 |
14 |
122 |
0.276 |
82.6 |
0.247 |
112 |
| koufasa01 |
Koufax |
Sandy |
1958 |
NL |
158.67 |
132 |
19 |
131 |
0.256 |
141 |
0.262 |
107 |
| koufasa01 |
Koufax |
Sandy |
1959 |
NL |
153.33 |
136 |
23 |
173 |
0.294 |
130.3 |
0.263 |
106 |
| koufasa01 |
Koufax |
Sandy |
1960 |
NL |
175 |
133 |
20 |
197 |
0.267 |
136.9 |
0.24 |
112 |
| koufasa01 |
Koufax |
Sandy |
1961 |
NL |
255.67 |
212 |
27 |
269 |
0.281 |
210.4 |
0.247 |
113 |
| koufasa01 |
Koufax |
Sandy |
1962 |
NL |
184.33 |
134 |
13 |
216 |
0.275 |
137.4 |
0.221 |
121 |
| koufasa01 |
Koufax |
Sandy |
1963 |
NL |
311 |
214 |
18 |
306 |
0.248 |
233.4 |
0.218 |
117 |
| koufasa01 |
Koufax |
Sandy |
1964 |
NL |
223 |
154 |
13 |
223 |
0.25 |
171.7 |
0.222 |
118 |
| koufasa01 |
Koufax |
Sandy |
1965 |
NL |
335.67 |
216 |
26 |
382 |
0.243 |
240.9 |
0.215 |
119 |
| koufasa01 |
Koufax |
Sandy |
1966 |
NL |
323 |
241 |
19 |
317 |
0.264 |
255.5 |
0.227 |
117 |
Some guy who threw 7 no-hitters
| playerID |
Last |
First |
yearID |
lgID |
IP |
H |
HR |
SO |
BABIP |
xHits |
xWOBA |
Stuff_Rate |
| ryanno01 |
Ryan |
Nolan |
1968 |
NL |
134 |
93 |
12 |
133 |
0.241 |
104.2 |
0.231 |
109 |
| ryanno01 |
Ryan |
Nolan |
1969 |
NL |
89.33 |
60 |
3 |
92 |
0.254 |
65.5 |
0.208 |
122 |
| ryanno01 |
Ryan |
Nolan |
1970 |
NL |
131.67 |
86 |
10 |
125 |
0.228 |
104.5 |
0.229 |
117 |
| ryanno01 |
Ryan |
Nolan |
1971 |
NL |
152 |
125 |
8 |
137 |
0.278 |
123.7 |
0.232 |
113 |
| ryanno01 |
Ryan |
Nolan |
1972 |
AL |
284 |
166 |
14 |
329 |
0.235 |
184.1 |
0.193 |
123 |
| ryanno01 |
Ryan |
Nolan |
1973 |
AL |
326 |
238 |
18 |
383 |
0.281 |
235.5 |
0.213 |
123 |
| ryanno01 |
Ryan |
Nolan |
1974 |
AL |
332.67 |
221 |
18 |
367 |
0.254 |
239 |
0.21 |
123 |
| ryanno01 |
Ryan |
Nolan |
1975 |
AL |
198 |
152 |
13 |
186 |
0.264 |
158 |
0.231 |
115 |
| ryanno01 |
Ryan |
Nolan |
1976 |
AL |
284.33 |
193 |
13 |
327 |
0.266 |
198.7 |
0.205 |
123 |
| ryanno01 |
Ryan |
Nolan |
1977 |
AL |
299 |
198 |
12 |
341 |
0.261 |
212.1 |
0.205 |
128 |
| ryanno01 |
Ryan |
Nolan |
1978 |
AL |
234.67 |
183 |
12 |
260 |
0.289 |
174.1 |
0.218 |
121 |
| ryanno01 |
Ryan |
Nolan |
1979 |
AL |
222.67 |
169 |
15 |
223 |
0.267 |
176.5 |
0.23 |
120 |
| ryanno01 |
Ryan |
Nolan |
1980 |
NL |
233.67 |
205 |
10 |
200 |
0.29 |
198.3 |
0.237 |
112 |
| ryanno01 |
Ryan |
Nolan |
1981 |
NL |
149 |
99 |
2 |
140 |
0.249 |
109 |
0.202 |
123 |
| ryanno01 |
Ryan |
Nolan |
1982 |
NL |
250.33 |
196 |
20 |
245 |
0.268 |
203.9 |
0.238 |
112 |
| ryanno01 |
Ryan |
Nolan |
1983 |
NL |
196.33 |
134 |
9 |
183 |
0.244 |
151.2 |
0.218 |
119 |
| ryanno01 |
Ryan |
Nolan |
1984 |
NL |
183.67 |
143 |
12 |
197 |
0.281 |
143.6 |
0.228 |
115 |
| ryanno01 |
Ryan |
Nolan |
1985 |
NL |
232 |
205 |
12 |
209 |
0.294 |
192.6 |
0.236 |
112 |
| ryanno01 |
Ryan |
Nolan |
1986 |
NL |
178 |
119 |
14 |
194 |
0.246 |
133.2 |
0.222 |
117 |
| ryanno01 |
Ryan |
Nolan |
1987 |
NL |
211.67 |
154 |
14 |
270 |
0.289 |
151.9 |
0.215 |
123 |
| ryanno01 |
Ryan |
Nolan |
1988 |
NL |
220 |
186 |
18 |
228 |
0.291 |
176.4 |
0.238 |
109 |
| ryanno01 |
Ryan |
Nolan |
1989 |
AL |
239.33 |
162 |
17 |
301 |
0.269 |
169.8 |
0.213 |
123 |
| ryanno01 |
Ryan |
Nolan |
1990 |
AL |
204 |
137 |
18 |
232 |
0.249 |
153.4 |
0.225 |
118 |
| ryanno01 |
Ryan |
Nolan |
1991 |
AL |
173 |
102 |
12 |
203 |
0.232 |
122 |
0.209 |
125 |
| ryanno01 |
Ryan |
Nolan |
1992 |
AL |
157.33 |
138 |
9 |
157 |
0.301 |
129.3 |
0.236 |
114 |
| ryanno01 |
Ryan |
Nolan |
1993 |
AL |
66.33 |
54 |
5 |
46 |
0.251 |
61.5 |
0.258 |
109 |
Pedro Martinez
| playerID |
Last |
First |
yearID |
lgID |
IP |
H |
HR |
SO |
BABIP |
xHits |
xWOBA |
Stuff_Rate |
| martipe02 |
Martinez |
Pedro |
1993 |
NL |
107 |
76 |
5 |
119 |
0.271 |
80.8 |
0.217 |
123 |
| martipe02 |
Martinez |
Pedro |
1994 |
NL |
144.67 |
115 |
11 |
142 |
0.273 |
123.6 |
0.244 |
115 |
| martipe02 |
Martinez |
Pedro |
1995 |
NL |
194.67 |
158 |
21 |
174 |
0.26 |
176.1 |
0.262 |
108 |
| martipe02 |
Martinez |
Pedro |
1996 |
NL |
216.67 |
189 |
19 |
222 |
0.295 |
188.4 |
0.252 |
111 |
| martipe02 |
Martinez |
Pedro |
1997 |
NL |
241.33 |
158 |
16 |
305 |
0.265 |
173.8 |
0.213 |
124 |
| martipe02 |
Martinez |
Pedro |
1998 |
AL |
233.67 |
188 |
26 |
251 |
0.275 |
201.4 |
0.255 |
114 |
| martipe02 |
Martinez |
Pedro |
1999 |
AL |
213.33 |
160 |
9 |
313 |
0.331 |
145.5 |
0.203 |
133 |
| martipe02 |
Martinez |
Pedro |
2000 |
AL |
217 |
128 |
17 |
284 |
0.243 |
153.4 |
0.212 |
130 |
| martipe02 |
Martinez |
Pedro |
2001 |
AL |
116.67 |
84 |
5 |
163 |
0.311 |
79.8 |
0.203 |
130 |
| martipe02 |
Martinez |
Pedro |
2002 |
AL |
199.33 |
144 |
13 |
239 |
0.279 |
149.3 |
0.221 |
124 |
| martipe02 |
Martinez |
Pedro |
2003 |
AL |
186.67 |
147 |
7 |
206 |
0.295 |
145.3 |
0.221 |
125 |
| martipe02 |
Martinez |
Pedro |
2004 |
AL |
217 |
193 |
26 |
227 |
0.293 |
194.5 |
0.264 |
111 |
| martipe02 |
Martinez |
Pedro |
2005 |
NL |
217 |
159 |
19 |
208 |
0.249 |
182.9 |
0.244 |
115 |
| martipe02 |
Martinez |
Pedro |
2006 |
NL |
132.67 |
108 |
19 |
137 |
0.264 |
118.3 |
0.268 |
108 |
| martipe02 |
Martinez |
Pedro |
2007 |
NL |
28 |
33 |
0 |
32 |
0.401 |
24.5 |
0.239 |
118 |
| martipe02 |
Martinez |
Pedro |
2008 |
NL |
109 |
127 |
19 |
87 |
0.32 |
118.8 |
0.313 |
91 |
| martipe02 |
Martinez |
Pedro |
2009 |
NL |
44.67 |
48 |
7 |
37 |
0.307 |
46.1 |
0.299 |
94 |
And one more who isn't quite finished yet
| playerID |
Last |
First |
yearID |
lgID |
IP |
H |
HR |
SO |
BABIP |
xHits |
xWOBA |
Stuff_Rate |
| verlaju01 |
Verlander |
Justin |
2006 |
AL |
186 |
187 |
21 |
124 |
0.286 |
195.4 |
0.291 |
102 |
| verlaju01 |
Verlander |
Justin |
2007 |
AL |
201.67 |
181 |
20 |
183 |
0.286 |
189.4 |
0.267 |
108 |
| verlaju01 |
Verlander |
Justin |
2008 |
AL |
201 |
195 |
18 |
163 |
0.297 |
194.7 |
0.271 |
106 |
| verlaju01 |
Verlander |
Justin |
2009 |
AL |
240 |
219 |
20 |
269 |
0.318 |
205.9 |
0.249 |
114 |
| verlaju01 |
Verlander |
Justin |
2010 |
AL |
224.33 |
190 |
14 |
219 |
0.29 |
190.8 |
0.242 |
114 |
| verlaju01 |
Verlander |
Justin |
2011 |
AL |
251 |
174 |
24 |
250 |
0.239 |
206.7 |
0.241 |
114 |
| verlaju01 |
Verlander |
Justin |
2012 |
AL |
238.33 |
192 |
19 |
239 |
0.277 |
200.9 |
0.243 |
114 |
| verlaju01 |
Verlander |
Justin |
2013 |
AL |
218.33 |
212 |
19 |
217 |
0.317 |
199.3 |
0.261 |
107 |
| verlaju01 |
Verlander |
Justin |
2014 |
AL |
206 |
223 |
18 |
159 |
0.319 |
209.1 |
0.28 |
97 |
| verlaju01 |
Verlander |
Justin |
2015 |
AL |
133.33 |
113 |
13 |
113 |
0.268 |
122.5 |
0.262 |
106 |
| verlaju01 |
Verlander |
Justin |
2016 |
AL |
227.67 |
171 |
30 |
254 |
0.258 |
192.5 |
0.255 |
111 |
| verlaju01 |
Verlander |
Justin |
2017 |
AL |
206 |
170 |
27 |
219 |
0.274 |
181.3 |
0.263 |
108 |
| verlaju01 |
Verlander |
Justin |
2018 |
AL |
214 |
156 |
28 |
290 |
0.279 |
163.7 |
0.24 |
115 |
| verlaju01 |
Verlander |
Justin |
2019 |
AL |
223 |
137 |
36 |
300 |
0.226 |
170.3 |
0.244 |
116 |
| verlaju01 |
Verlander |
Justin |
2022 |
AL |
175 |
116 |
12 |
185 |
0.244 |
134.8 |
0.223 |
117 |
Here's a text file with all pitchers from 1893 (the first year of the 60'6" pitching distance) on who pitched at least 25 innings in a season: Download CSV
This page was last modified 03/10/2023
|
|