This post is also available in / Disponible en: : English
Español (Spanish)
Statistics are, as the Merriam-Webster dictionary points out, “a collection of quantitative data”. Pure and simple. What is not that simple is how we use this data or how we make sense of it.
Fortunately, we live in a time and age where we have at the disposal of our fingertips incredible sources (in quantity and quality) of valuable information – including all kinds of stats – about baseball. We can check how good the spin rate of Justin Verlander’s Fastball is (fairly good) or how Matthew Boyd’s 2019 ERA is deceptive according to advanced stats like xFIP and SIERA, so, he should probably be better this year.
I love spin rates and SIERA and a ton of other advanced stats, and the information we can get from them surpasses most of the time what we can analyze from speed (mph) or ERA, to name a couple of traditional stats. Nevertheless, I also like to try to simplify things but still be able to obtain powerful insights to make educated decisions.
Nothing gets simpler than Balls and Strikes.
I mean, we know them so well that even before the ubiquitous virtual strike zones we see nowadays, we could instantly start shouting to the umpire when we thought he was missing the calls. And we’ll do it forever because we KNOW balls and strikes. We know that more strikes than balls will always be good and pitchers that can do that are usually bound to have more success.
K%-BB% and (k-bb)/ip (let’s call them the K-Bs stats) are a couple of stats that exist just because of balls and strikes. They summarize in a straightforward way the achievement a pitcher has over what are the two principal outcomes that he can directly influence the most during an outing: strikeouts and walks.
Strikeout rate (K%) and walk rate (BB%) are calculations on how often a pitcher strikes out or walks batters per plate appearance (PA). You can calculate them by dividing the total number of strikeouts or walks a pitcher issued between the plate appearances batters got against him during a period of time (a week, month, season, etc.). Then, for the purpose of getting K%-BB%, you just subtract them and that’s it.
(k-bb)/ip goes similarly but you subtract strikeouts minus base on balls first and then divide the result between innings pitched. The reason for this (and comparably for dividing between plate appearances in K%-BB%) is to obtain ratios or proportions that allow us to compare pitchers who have faced vastly different quantities of batters.
If interested, you can find some more info on these stats here. By the way, Bill James was not a fan of them about 10 years ago, but Tom Tango was. What intrigues me the most about the stats is if they could be used to anticipate how a pitcher will fare afterward, their predictability, so I am going to do some calculations to bring light on that. Some folks have done some writing about this but their conclusions are not that clear to me, so, I did some research of my own.
First, I pulled data for pitchers during the 2019 season: main interest is on K%-BB% and (k-bb)/ip of course and also ERA and some ERA estimators like xFIP and SIERA. Note that I am including as a consistency check another estimator called CSW, which in 2019 was already proven to have a great correlation with SIERA and could be very especially useful as a prediction stat.
Pitchers were restricted to those who had at least 23 or more games started as I wanted starters with a lot of innings pitched for a bigger sample.
2019 Pitching data.
Name | CSW | (k-bb)/ip | K%-BB% | ERA | FIP | xFIP | SIERA | GS | IP |
---|---|---|---|---|---|---|---|---|---|
Gerrit Cole | 0.3566330 | 1.3107025 | 0.3400000 | 2.50 | 2.64 | 2.48 | 2.62 | 33 | 212.1 |
Chris Sale | 0.3426602 | 1.2304555 | 0.2950000 | 4.40 | 3.39 | 2.93 | 3.00 | 25 | 147.1 |
Max Scherzer | 0.3425993 | 1.2202208 | 0.3030000 | 2.92 | 2.45 | 2.88 | 2.93 | 27 | 172.1 |
Justin Verlander | 0.3401972 | 1.1569507 | 0.3040000 | 2.58 | 3.27 | 3.18 | 2.95 | 34 | 223 |
Jacob deGrom | 0.3060358 | 1.0343137 | 0.2620000 | 2.43 | 2.67 | 3.11 | 3.29 | 32 | 204 |
Shane Bieber | 0.3310324 | 1.0228865 | 0.2550000 | 3.28 | 3.32 | 3.23 | 3.36 | 33 | 214.1 |
Matthew Boyd | 0.3171905 | 1.0156672 | 0.2380000 | 4.56 | 4.32 | 3.88 | 3.61 | 32 | 185.1 |
Blake Snell | 0.3395029 | 1.0000000 | 0.2420000 | 4.29 | 3.32 | 3.31 | 3.56 | 23 | 107 |
Walker Buehler | 0.3143058 | 0.9774849 | 0.2420000 | 3.26 | 3.01 | 3.37 | 3.50 | 30 | 182.1 |
Yu Darvish | 0.3205758 | 0.9708193 | 0.2360000 | 3.98 | 4.18 | 3.39 | 3.55 | 31 | 178.2 |
Lucas Giolito | 0.3262260 | 0.9704881 | 0.2420000 | 3.41 | 3.43 | 3.66 | 3.57 | 29 | 176.2 |
Charlie Morton | 0.3268557 | 0.9423275 | 0.2320000 | 3.05 | 2.81 | 3.28 | 3.54 | 33 | 194.2 |
Stephen Strasburg | 0.3221040 | 0.9330144 | 0.2320000 | 3.32 | 3.25 | 3.17 | 3.49 | 33 | 209 |
Lance Lynn | 0.2907402 | 0.8986064 | 0.2140000 | 3.67 | 3.13 | 3.85 | 3.83 | 33 | 208.1 |
Jack Flaherty | 0.3120478 | 0.8975013 | 0.2280000 | 2.75 | 3.46 | 3.64 | 3.68 | 33 | 196.1 |
James Paxton | 0.2979362 | 0.8721704 | 0.2070000 | 3.82 | 3.86 | 4.03 | 3.93 | 29 | 150.2 |
Chris Paddack | 0.3008772 | 0.8701854 | 0.2140000 | 3.33 | 3.95 | 4.05 | 3.83 | 26 | 140.2 |
Robbie Ray | 0.3208225 | 0.8673176 | 0.2030000 | 4.34 | 4.29 | 3.76 | 4.02 | 33 | 174.1 |
Patrick Corbin | 0.2991816 | 0.8316832 | 0.2010000 | 3.25 | 3.49 | 3.59 | 3.88 | 33 | 202 |
Clayton Kershaw | 0.2990269 | 0.8309938 | 0.2100000 | 3.03 | 3.86 | 3.50 | 3.77 | 28 | 178.1 |
German Marquez | 0.3042813 | 0.8045977 | 0.1940000 | 4.76 | 4.06 | 3.54 | 3.85 | 28 | 174 |
Trevor Bauer | 0.3086520 | 0.8028169 | 0.1880000 | 4.48 | 4.34 | 4.33 | 4.14 | 34 | 213 |
Domingo German | 0.3061860 | 0.7972028 | 0.1920000 | 4.03 | 4.72 | 4.22 | 4.06 | 24 | 143 |
Jake Odorizzi | 0.2809473 | 0.7861635 | 0.1900000 | 3.51 | 3.36 | 4.33 | 4.14 | 30 | 159 |
Sonny Gray | 0.3066346 | 0.7824101 | 0.1940000 | 2.87 | 3.42 | 3.65 | 3.97 | 31 | 175.1 |
Luis Castillo | 0.3100063 | 0.7728707 | 0.1880000 | 3.40 | 3.70 | 3.48 | 3.95 | 32 | 190.2 |
Madison Bumgarner | 0.2872996 | 0.7722008 | 0.1900000 | 3.90 | 3.90 | 4.31 | 4.15 | 34 | 207.2 |
Noah Syndergaard | 0.3040388 | 0.7707911 | 0.1840000 | 4.28 | 3.60 | 3.83 | 4.02 | 32 | 197.2 |
Kenta Maeda | 0.3251130 | 0.7702350 | 0.1890000 | 4.04 | 3.95 | 4.04 | 4.06 | 26 | 153.2 |
Michael Pineda | 0.2848990 | 0.7671233 | 0.1860000 | 4.01 | 4.02 | 4.30 | 4.18 | 26 | 146 |
Hyun-Jin Ryu | 0.2908352 | 0.7628979 | 0.1920000 | 2.32 | 3.10 | 3.32 | 3.77 | 29 | 182.2 |
Max Fried | 0.2940075 | 0.7627119 | 0.1790000 | 4.02 | 3.72 | 3.32 | 3.83 | 30 | 165.2 |
Zack Greinke | 0.2977835 | 0.7540826 | 0.1940000 | 2.93 | 3.22 | 3.74 | 3.96 | 33 | 208.2 |
Zack Wheeler | 0.2792023 | 0.7432086 | 0.1760000 | 3.96 | 3.48 | 4.06 | 4.20 | 31 | 195.1 |
Vince Velasquez | 0.2693396 | 0.7429547 | 0.1690000 | 4.91 | 5.21 | 4.75 | 4.36 | 23 | 117.1 |
Chris Archer | 0.3069590 | 0.7382550 | 0.1670000 | 5.19 | 5.02 | 4.36 | 4.38 | 23 | 119.2 |
Aaron Nola | 0.3232293 | 0.7372588 | 0.1750000 | 3.87 | 4.03 | 3.82 | 4.14 | 34 | 202.1 |
Tyler Mahle | 0.3052917 | 0.7352941 | 0.1710000 | 5.14 | 4.66 | 3.99 | 4.16 | 25 | 129.2 |
Jose Berrios | 0.2975734 | 0.7196402 | 0.1710000 | 3.68 | 3.85 | 4.32 | 4.28 | 32 | 200.1 |
Anthony DeSclafani | 0.2736132 | 0.7099880 | 0.1700000 | 3.89 | 4.43 | 4.30 | 4.29 | 31 | 166.2 |
Caleb Smith | 0.2867343 | 0.7054213 | 0.1670000 | 4.52 | 5.11 | 5.05 | 4.58 | 28 | 153.1 |
Joe Musgrove | 0.2871660 | 0.6937096 | 0.1650000 | 4.44 | 3.82 | 4.31 | 4.31 | 31 | 170.1 |
Eduardo Rodriguez | 0.2886981 | 0.6794682 | 0.1610000 | 3.81 | 3.86 | 4.10 | 4.31 | 34 | 203.1 |
Kyle Hendricks | 0.2972572 | 0.6666667 | 0.1620000 | 3.46 | 3.61 | 4.26 | 4.38 | 30 | 177 |
Jon Lester | 0.2645416 | 0.6600467 | 0.1480000 | 4.46 | 4.26 | 4.35 | 4.49 | 31 | 171.2 |
Chris Bassitt | 0.2769547 | 0.6527778 | 0.1530000 | 3.81 | 4.40 | 4.61 | 4.47 | 25 | 144 |
Kyle Gibson | 0.2850941 | 0.6500000 | 0.1480000 | 4.84 | 4.26 | 3.80 | 4.25 | 29 | 160 |
Ryne Stanek | 0.2961538 | 0.6493506 | 0.1530000 | 3.97 | 4.28 | 4.72 | 4.47 | 27 | 77 |
Tanner Roark | 0.2533422 | 0.6480921 | 0.1480000 | 4.35 | 4.67 | 4.64 | 4.57 | 31 | 165.1 |
Jordan Lyles | 0.2772801 | 0.6453901 | 0.1520000 | 4.15 | 4.64 | 4.61 | 4.53 | 28 | 141 |
Dylan Bundy | 0.2987761 | 0.6451613 | 0.1480000 | 4.79 | 4.73 | 4.58 | 4.54 | 30 | 161.2 |
Mike Minor | 0.2942228 | 0.6343104 | 0.1530000 | 3.59 | 4.25 | 4.60 | 4.51 | 32 | 208.1 |
Steven Matz | 0.2838638 | 0.6308557 | 0.1460000 | 4.21 | 4.60 | 4.33 | 4.47 | 30 | 160.1 |
Jon Gray | 0.2890855 | 0.6266667 | 0.1480000 | 3.84 | 4.06 | 3.89 | 4.35 | 25 | 150 |
Joey Lucchesi | 0.2898222 | 0.6250000 | 0.1480000 | 4.18 | 4.17 | 4.36 | 4.48 | 30 | 163.2 |
Jose Quintana | 0.2738854 | 0.6198830 | 0.1420000 | 4.68 | 3.80 | 4.20 | 4.50 | 31 | 171 |
Cole Hamels | 0.2903091 | 0.6161473 | 0.1410000 | 3.81 | 4.09 | 4.38 | 4.55 | 27 | 141.2 |
Miles Mikolas | 0.2772933 | 0.6086957 | 0.1470000 | 4.16 | 4.27 | 4.18 | 4.39 | 32 | 184 |
Jakob Junis | 0.2822967 | 0.6053684 | 0.1380000 | 5.24 | 4.82 | 4.63 | 4.63 | 31 | 175.1 |
Daniel Norris | 0.2820839 | 0.6037474 | 0.1430000 | 4.49 | 4.61 | 4.55 | 4.57 | 29 | 144.1 |
Masahiro Tanaka | 0.2859706 | 0.5989011 | 0.1430000 | 4.45 | 4.27 | 4.29 | 4.46 | 31 | 182 |
Homer Bailey | 0.2785614 | 0.5885960 | 0.1380000 | 4.57 | 4.11 | 4.43 | 4.60 | 31 | 163.1 |
Spencer Turnbull | 0.2589252 | 0.5874409 | 0.1330000 | 4.61 | 3.99 | 4.63 | 4.62 | 30 | 148.1 |
Eric Lauer | 0.2673307 | 0.5831099 | 0.1340000 | 4.45 | 4.23 | 4.77 | 4.72 | 29 | 149.2 |
Mike Soroka | 0.2768870 | 0.5797933 | 0.1440000 | 2.68 | 3.45 | 3.85 | 4.28 | 29 | 174.2 |
Trent Thornton | 0.2761870 | 0.5710578 | 0.1300000 | 4.84 | 4.59 | 4.94 | 4.80 | 29 | 154.1 |
Reynaldo Lopez | 0.2785330 | 0.5652174 | 0.1290000 | 5.38 | 5.04 | 5.27 | 4.88 | 33 | 184 |
J.A. Happ | 0.2596439 | 0.5648665 | 0.1350000 | 4.91 | 5.22 | 4.78 | 4.72 | 30 | 161.1 |
Rick Porcello | 0.2648649 | 0.5628949 | 0.1270000 | 5.52 | 4.76 | 5.14 | 4.86 | 32 | 174.1 |
Merrill Kelly | 0.2741391 | 0.5516111 | 0.1300000 | 4.42 | 4.51 | 4.58 | 4.73 | 32 | 183.1 |
Marcus Stroman | 0.2779783 | 0.5486149 | 0.1300000 | 3.22 | 3.72 | 3.99 | 4.41 | 32 | 184.1 |
John Means | 0.2513987 | 0.5354839 | 0.1300000 | 3.60 | 4.41 | 5.48 | 5.02 | 27 | 155 |
Jhoulys Chacin | 0.2735219 | 0.5334627 | 0.1170000 | 6.01 | 5.88 | 5.03 | 4.94 | 24 | 103.1 |
Chase Anderson | 0.2658863 | 0.5323741 | 0.1250000 | 4.21 | 4.83 | 5.26 | 4.89 | 27 | 139 |
Danny Duffy | 0.2757982 | 0.5299539 | 0.1240000 | 4.34 | 4.78 | 5.14 | 4.89 | 23 | 130.2 |
Trevor Richards | 0.2786026 | 0.5255366 | 0.1220000 | 4.06 | 4.51 | 5.09 | 4.89 | 23 | 135.1 |
Adam Wainwright | 0.2812935 | 0.5198598 | 0.1190000 | 4.19 | 4.36 | 4.39 | 4.70 | 31 | 171.2 |
Jordan Zimmermann | 0.2765273 | 0.5089286 | 0.1130000 | 6.91 | 4.79 | 4.87 | 4.93 | 23 | 112 |
Mike Leake | 0.2678992 | 0.5076142 | 0.1200000 | 4.29 | 5.19 | 4.76 | 4.79 | 32 | 197 |
Jeff Samardzija | 0.2518297 | 0.5024848 | 0.1230000 | 3.52 | 4.59 | 5.02 | 4.92 | 32 | 181.1 |
Zach Eflin | 0.2746013 | 0.4966278 | 0.1150000 | 4.13 | 4.85 | 4.76 | 4.86 | 28 | 163.1 |
Trevor Williams | 0.2599914 | 0.4752066 | 0.1090000 | 5.38 | 5.12 | 5.25 | 5.08 | 26 | 145.2 |
Wade Miley | 0.2621294 | 0.4727708 | 0.1090000 | 3.98 | 4.51 | 4.52 | 4.80 | 33 | 167.1 |
Anibal Sanchez | 0.2654275 | 0.4578313 | 0.1060000 | 3.85 | 4.44 | 5.10 | 5.07 | 30 | 166 |
Julio Teheran | 0.2674572 | 0.4535017 | 0.1050000 | 3.81 | 4.66 | 5.26 | 5.11 | 33 | 174.2 |
Marco Gonzales | 0.2728960 | 0.4482759 | 0.1050000 | 3.99 | 4.15 | 5.11 | 5.08 | 34 | 203 |
Jake Arrieta | 0.2714416 | 0.4363905 | 0.0990000 | 4.64 | 4.89 | 4.46 | 4.82 | 24 | 135.2 |
Martin Perez | 0.2637085 | 0.4118716 | 0.0920000 | 5.12 | 4.66 | 4.69 | 5.01 | 29 | 165.1 |
Yusei Kikuchi | 0.2583609 | 0.4094293 | 0.0920000 | 5.46 | 5.71 | 5.18 | 5.17 | 32 | 161.2 |
Jason Vargas | 0.2766467 | 0.4088472 | 0.0940000 | 4.51 | 4.76 | 5.44 | 5.25 | 29 | 149.2 |
Mike Fiers | 0.2656088 | 0.3963084 | 0.0970000 | 3.90 | 4.97 | 5.19 | 5.19 | 33 | 184.2 |
Michael Wacha | 0.2460209 | 0.3882726 | 0.0870000 | 4.76 | 5.61 | 4.80 | 5.08 | 24 | 126.2 |
Aaron Sanchez | 0.2672451 | 0.3585050 | 0.0780000 | 5.89 | 5.25 | 5.15 | 5.28 | 27 | 131.1 |
Ivan Nova | 0.2382696 | 0.3582888 | 0.0830000 | 4.72 | 4.98 | 4.91 | 5.16 | 34 | 187 |
Sandy Alcantara | 0.2665804 | 0.3551497 | 0.0830000 | 3.88 | 4.55 | 5.17 | 5.28 | 32 | 197.1 |
Andrew Cashner | 0.2584628 | 0.3333333 | 0.0790000 | 4.68 | 4.66 | 5.11 | 5.20 | 23 | 150 |
Zach Davies | 0.2485075 | 0.3203518 | 0.0760000 | 3.55 | 4.56 | 5.20 | 5.43 | 31 | 159.2 |
Brad Keller | 0.2508300 | 0.3149606 | 0.0730000 | 4.19 | 4.35 | 4.94 | 5.23 | 28 | 165.1 |
Glenn Sparkman | 0.2369231 | 0.2941176 | 0.0660000 | 6.02 | 5.93 | 5.81 | 5.59 | 23 | 136 |
Dakota Hudson | 0.2654494 | 0.2870264 | 0.0660000 | 3.35 | 4.93 | 4.55 | 5.08 | 32 | 174.2 |
Brett Anderson | 0.2459571 | 0.2329545 | 0.0550000 | 3.89 | 4.57 | 4.79 | 5.17 | 31 | 176 |
Antonio Senzatela | 0.2329012 | 0.1529791 | 0.0330000 | 6.71 | 5.44 | 5.12 | 5.50 | 25 | 124.2 |
SIERA is almost universally acclaimed as one of the best ERA estimators and initially, I want to check what’s the correlation between the K-Bs stats and it. First, I created graphs for the relationship between ERA, xFIP, and SIERA with the K-Bs and plotted the trend line, its equation, and R2 for each:


As expected, due to the impact of Ks and BBs in its formula, SIERA has the highest R2, which is great as it indicates the lowest variance and that leads to the thinking that these simpler stats can be used with equivalent results to SIERA. But if I really want to take it a step further, I should be comparing 2018 K-Bs with 2019 SIERA and check for correlation to try to find out any real predictability.
Pulling the data and graphing it we get:

At first, we could only interpret that, as the values of R2 show, the concurrence in 2019 SIERA due to 2018 (k-bb)/ip or 2018 K%-BB% is 44% and 48% respectively and that could be too low to be meaningful. With that thinking, we would be right and wrong about it at the same time, being the word variance the deal breaker here.
As Phil Birnbaum graciously explains in this post, most of the time R2 tells a lot from a statistician point of view and its value is important but, in layperson terms, the coefficient of correlation R (the square root of R2) is more informative and useful. R tells us that correlation is around 66% and 70% for (k-bb)/ip and K%-BB% respectively, which is good and potentially indicates that these stats can be used to predict a pitcher’s performance.
There is a lot more data checking that I should do, in fact using more seasons would help as the sample will be larger, but this small exercise strongly shows that the K-Bs are good tools to make educated estimates on future pitchers performances. It might feel like reinventing the wheel but it would surprise you how much people tend to underestimate these stats, so any boost to our confidence in them is important.
So, what can we do with K%-BB% and (k-bb)/ip that leads to useful and practical information? Well, I dedicated an article to the evaluation of the 50 best pitchers coming into the 2020 season according to these stats from 2019 and there are a few surprises that I think you should consider. Spoiler alert: you should try to get Boyd, and Kevin Gausman might be in for a very decent season.
Baseball is such a wonderful game that, besides the joys of simply watching it, it has gifted us with the joy of measuring and analyzing it ad infinitum. It can be, and it is, measured beyond silliness which can be a blessing or a curse as separating the needles from the hay seems, a lot of times, complicated. But it doesn’t have to be; the beauty of having so much information available is that if we can understand it, diverse ways of looking at our beloved game increase our appreciation of it: if knowledge is power, applied knowledge is wisdom. Let’s try to be wise or die trying.
All data used was taken from https://www.fangraphs.com/, https://baseballsavant.mlb.com/, and/or https://www.baseball-reference.com/, unless otherwise stated different.

EE, Data geek, Baseball fan. Twitter: @camarcano
Really good stuff, Carlos. Keep it going
Thanks a lot, Nelson, I really appreciate it.
Really enjoyed this article. Very thorough and very impressive!
Thanks, Michael. I’m glad you liked it.