Making Pitch Velocity Familiar Again

There have been a lot of questions and comments this season about the change in pitch velocity readings. I am not going to go into depth why these changes were made, but I have seen a lot of people questioning these velocity readings, and how they might compare to past seasons.

I am sure you have seen articles about how velocities this season are roughly 0.6 mph faster than last season, so maybe you have been subtracting a mile per hour from each number you see as a back of the envelope estimate.  Maybe you’re happy with that, maybe not.  Tom Tango mentioned a manner for calculating the traditional pitch velocities in the comment section of his blog post about the change to Start Speed. After seeing this, I immediately implemented it on my personal pitch database, and I am here to share those results with you today.

Calculation

First, let me explain the calculation process.  In the pitch data measured by Statcast, there are several stats you may be interested in.  First, you have Start Speed, which is the number that changed this season. This is the pitch speed you see on Gameday, television broadcasts, and just about everywhere else.  It should be roughly equivalent to the numbers seen on Brooks Baseball as well.

After that, you also have pfx_x and pfx_z.  These are the horizontal (x) and vertical (z) movements for the pitch.

Next, you have vx0, vy0, and vz0.  These three numbers represent the velocity figures at position 0.

You may remember from physics that a variable followed by 0 is the “initial condition.”  So you can read vx0 as  “velocity at initial x coordinate.”  When you hear people talk about pitch velocity, you may have seen comments like “y0 = 50” or “y0 = 55”.  These are the two standardized initial start points.  PitchFX, and thus all of the numbers you’re used to seeing, used y0 = 50.  Brooks baseball used y0 = 55, which is why it always had measurements roughly 1mph faster.

So you know y0 means initial y position. The 50 means 50 feet, and the y coordinate is in the direction towards home plate.  So, y0 = 50 means 50 feet from home plate.  So, for example, say x0 = 3, y0 = 50, and z0 = 6.  That would mean the initial ball measurement was 50 feet from home plate, 3 feet towards first base, and 6 feet in the air.  That’s wordy, but I hope it makes sense.

Anyways, just know that z0 is the height of the ball at y0, and x0 is the distance towards first or third base at y0.  

Moving on, from what I understand, judging from Tom Tango’s comments, vx0, vy0, and vz0 are all measured at y0 = 50 by Statcast.  Start Speed is measured on y0 = 55.  As a result, we can use vx0, vy0, and vz0 to find the velocity of the pitch at y0 = 50.

How?  Easy, use Pythagorean Theorem:  x² + y² + z² = V².

So, let’s say vx0 = -6, vy0 = -135, and vz0 = -5.  First, square all the numbers.  You get 36+18225+25 = v^2.  Add them up and take the square root = 135.2257.  This is the velocity of the pitch in feet per second.  To convert to miles per hour, multiply by .6818.  In this case, the result is 92.2 mph.

In essence, this is how you can find the y0 = 50 pitch velocity for each pitch thrown this season.  It isn’t hard.

Calibration

There is a catch, though.  Calibration.  This is a problem I don’t currently have a solution for, but it is important to keep in mind, especially when looking at pitch movement.  I do notknow how much a given stadium may add or subtract to pitch velocity.  However, I do have some idea how much stadiums affect batted ball velocity.  I could naively assume the change is proportional in both cases, but I don’t have evidence to support that.  

This is especially bad in the case of pitch movement, which appears to have changed wildly from PitchFX to Statcast, adding many inches of movement for certain pitchers.  For example, a guy who may have had 9 inches of movement last season may have 17 inches this season.  That is crazy, so I’m not touching pitch movement until we have a solution for the calibration problem.

Results

Alrighty, with those two things out of the way, let’s move on to actual pitch results.  First, I’d like to plug a little spreadsheet I’ve made which contains this data.  I did not make this spreadsheet to house velocity data, but rather spinrate data.  However, with these new velocity issues I’ve decided to add pitch velocity.  All of the velocities you see on this page are y0 = 50.  As in, the old version you’re used to seeing.  These numbers *may* and *probably do* have calibration issues. But, so do all of the Start Speed numbers. Calibration isn’t solved, so always keep that in mind until you see someone explicitly tell you they’ve found and implemented a solution for calibration.

Anyways!  I have min, max, avg, and standard deviation for pitch velocity, spin rate, and exit speed for each pitcher broken down by pitch type and season. They are updated somewhat periodically, so feel free to make use of the numbers. I have also attempted to mitigate measurement errors by eliminating all pitches with a velocity or spin rate far from the mean for that pitcher for that pitch type.  So, for example, if a pitcher threw 6 pitches with the following spin rates:  2600, 2550, 2750, 500, 2525, 900.  The 500 and 900 would be eliminated, and only the other four would be counted.

Without going on another tangent:  Statcast has measurement errors on spin rate, where many pitches are listed with extremely low spin rates.  So this is a very real problem, and hopefully my implementation corrects for that.

Okay, enough rambling, let’s get to some stats.  I’ve created two lists of pitchers.  In list A, you have pitchers who have had decreases in velocity this season.  In column B, you have pitchers who have had increases in velocity this season.  In both cases, I am talking about fastball velocity.  Specifically: Four Seamers, Two Seamers, Sinkers, and Cutters.  In the spreadsheet, you can find these numbers in the “Fastball” tab, although you also have tabs for Four Seamers, Two Seamers, and Cutters separated into their own categories.

Pitchers With Reduced Velocity in 2017
name 16 Velo 17 Velo ΔVelo IP FIP scFIP ERA
Hisashi Iwakuma 87.7 81.5 6.2 12.0 7.07 7.77 2.25
Bud Norris 93.4 90.1 3.3 5.7 1.57 2.22 3.18
Clay Buchholz 91.1 87.8 3.3 7.3 4.62 4.48 12.27
John Lackey 90.2 87.1 3.1 12.0 2.48 3.73 3.00
Matt Moore 92.7 89.6 3.1 13.3 3.43 4.39 2.70
Joely Rodriguez 95.0 92.1 2.9 5.3 10.67 9.77 11.81
Matt Cain 90.4 87.5 2.9 9.3 5.77 5.05 4.82
Brett Anderson 91.4 88.7 2.7 5.7 2.10 3.52 1.59
James Paxton 95.5 92.8 2.7 13.0 1.68 2.21 0.00
Taijuan Walker 93.7 91.1 2.6 11.0 4.17 4.51 4.91
Wade Davis 93.8 91.2 2.6 3.3 2.68 3.30 0.00
Will Harris 92.5 89.9 2.6 4.7 2.34 4.38 0.00
Mike Montgomery 92.6 90.0 2.6 5.0 4.57 8.91 3.60
Jake Arrieta 93.7 91.2 2.5 13.0 2.68 3.66 2.08
Danny Duffy 94.7 92.2 2.5 13.0 4.68 5.60 2.08
SOURCE: https://www.xstats.org/pitch-stats/
Min 10 Pitches Thrown

There are a few Mariners on this list: Iwakuma and Paxton. Both made a start in Houston.  So, perhaps Houston has a cold gun?  If so, it may explain why Will Harris is on this list.  But wouldn’t you expect an Astros starter on this list? Well, I can tell you Morton has lost 1.3 mph on his fastball. Musgrove lost 0.5 mph, and the others either broke even or increased.  So, maybe calibration isn’t the issue here, at least not in Houston.

Buchholz has an injured elbow, and looked very bad during the little time he did pitch.  So that might explain his lost velocity.

Wade Davis has also suffered from some arm troubles.

Several of these guys are well regarded starting pitchers, namely Arrieta and Lackey. These two guys also pitched deep into the postseason, so perhaps they are suffering from a hangover effect as a result. This is something we all need to keep an eye on going forward.

Pitchers With Increased Velocity in 2017
name 16 Velo 17 Velo ΔVelo IP FIP scFIP ERA
Archie Bradley 92.5 95.7 3.2 6.7 0.88 1.86 0.00
Raisel Iglesias 93.2 95.2 2.0 5.7 1.92 3.12 0.00
Alex Wood 90.5 92.4 1.9 5.7 4.40 7.09 1.59
Kendall Graveman 91.6 93.4 1.8 13.0 3.83 4.47 2.08
Brandon Finnegan 92.0 93.8 1.8 9.0 2.09 3.10 1.00
Jorge De La Rosa 88.9 90.7 1.8 4.0 2.73 3.85 4.50
Tyler Anderson 89.4 91.0 1.6 10.7 4.73 4.75 8.44
Michael Wacha 92.4 94.0 1.6 6.0 1.48 6.32 1.50
Drew Pomeranz 90.4 91.9 1.5 6.0 1.48 2.02 1.50
Justin Wilson 93.6 95.1 1.5 4.7 2.13 3.23 0.00
Marco Estrada 87.8 89.3 1.5 11.0 5.98 6.36 5.73
Aaron Nola 90.1 91.5 1.4 6.0 1.65 4.09 4.50
Yovani Gallardo 90.3 91.6 1.3 13.0 4.88 5.45 4.85
Jose Ramirez 95.3 96.5 1.2 5.3 5.80 8.12 3.38
Brent Suter 84.4 85.5 1.1 3.3 5.24 5.24 10.80
SOURCE: https://www.xstats.org/pitch-stats/
Min 10 Pitches Thrown

Brandon Finnegan has had some funky, almost unbelievable numbers so far this season, at least in terms of his velocity and movement. If you believe his movement numbers, which you shouldn’t due to the reasons I described above, he has had record breaking movement for his fastball.  If you believe these velocity numbers, which should be closer to the truth, he has also increased his velocity quite a bit from last season.  In addition, he has changed the spin direction on his fastball by quite a bit, although the spin rate hasn’t changed much.

A different spin direction could account for increased movement. Although the rate of the increase is probably nowhere close to the 7,8,10 plus *additional* inches of movement from last season. Maybe he has 2 more inches?  That might make sense.  But he does seem to have increased velocity, if only by a little bit.

Due to the expected velocity fall off with age, keeping a steady velocity from one year to another could be considered a slight uptick in velocity, from a certain point of view.  So any increase at all should be regarded as positive.

scFIP is generally more pessimistic (realistic?) about these pitchers than FIP.  It takes into account poorly hit balls in addition to expected home run rate, so it has two different ways to value batted ball quality.  As opposed to FIP, which only includes home runs. For this reason, pitchers with a low poorly hit ball rate will get dragged back to the league average by scFIP. Similarly, if a pitcher surrenders a bunch of balls with high home run probabilities, even if they register as outs in the game, he will still be penalized.

Conclusion

At the end of the day, the pitchers with increases in velocity don’t seem to have improved their value substantially relative to the league. At least not to this point, although you may feel their value shifted relative to preseason rankings.  Especially with Finnegan, but also with Iglesias.  The pitchers with decreased velocity are a bit more questionable. Yes, it is true that April pitch velocities tend to be lower than mid season velocities, but generally guys who have lost several miles per hour at this point will not get it back by the end of the season. However, calibration problems may be clouding our judgment, so everything should be taken with a grain of salt.  It is difficult for me to reconcile a calibration issue subtracting 3 miles per hour, though.  One, sure.  One and a half, maybe.  Three seems like an unrealistically high error bar. 

That said, I would say 8 inches of movement is an unrealistic error bar, but Statcast is claiming his fastball has moved 17 inches this season.  I can’t wrap my head around that.

I encourage you to check out the full list of pitchers, and pitch types, if you’re interested in seeing their y0 = 50 pitch velocities.  Hopefully this tool will tide you over until the industry makes the full shift towards y0=55 pitch speeds, at which point this spreadsheet will revert back to it’s intended purpose as a spin rate and exit velocity resource.





Andrew Perpetua is the creator of CitiFieldHR.com and xStats.org, and plays around with Statcast data for fun. Follow him on Twitter @AndrewPerpetua.

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Ryan Brockmember
6 years ago

Lots of Cubs showing up in velo losers lists. Anderson, Lackey, Arrieta, Montgomery, Davis in your list here. Have seen others discuss Hendricks and Lester velo’s being down too. Either the Cubs are in for a rough season, or something weird going on…