Data Analysis: Examining Roethlisberger's Completion Percentage by Depth of Target
(Photo by Justin K. Aller/Getty Images)
Make no mistakes about it: the deep ball was an issue for the Pittsburgh Steelers throughout the entire 2020 campaign.
In fact, I did a quick plot of deep ball attempts vs. deep ball accuracy and posted it to my Twitter account yesterday:
As you can see, Ben Roethlisberger had more deep ball attempts than nearly everybody in the league last season. In this case, a deep ball is defined as an attempt with at least 20+ air yards. Only Tom Brady, Aaron Rodgers, and Matt Ryan had more.
However, Roethlisberger's accuracy is among the worst in the league. And, please note: this is looking at accuracy, not completion percentage. So, even if a wide receiver did drop the ball, Roethlisberger still gets credit for good accuracy as long as the ball was deemed "catchable."
It is simply not a good place to be in.
That said: I wanted to look at the result of this in a different way, by breaking down Roethlisberger's completion percentage based on several different air yardage.
For the sake of transparency, this is the coding used to complete this analysis:
pbp <- nflfastR::load_pbp(2020) ben <- pbp %>% filter(passer == "B.Roethlisberger") %>% mutate( dot = case_when( air_yards < 0 ~ "Negative", air_yards >= 0 & air_yards < 10 ~ "Short", air_yards >= 10 & air_yards < 20 ~ "Medium", air_yards >= 20 ~ "Deep" ) ) %>% summarize( negative.attempts = sum(pass[dot == "Negative"], na.rm = T), negative.completions = sum(complete_pass[dot == "Negative"], na.rm = T), negative.percentage = (negative.completions / negative.attempts) * 100, short.attempts = sum(pass[dot == "Short"], na.rm = T), short.completions = sum(complete_pass[dot == "Short"], na.rm = T), short.percentage = (short.completions / short.attempts) * 100, medium.attempts = sum(pass[dot == "Medium"], na.rm = T), medium.completions = sum(complete_pass[dot == "Medium"], na.rm = T), medium.percentage = (medium.completions / medium.attempts) * 100, deep.attempts = sum(pass[dot == "Deep"], na.rm = T), deep.completions = sum(complete_pass[dot == "Deep"], na.rm = T), deep.percentage = (deep.completions / deep.attempts) * 100 )
You can see that I have broken down air yardages into 'Negative,' 'Short,' 'Medium,' and 'Deep' ranges and then summarised his completion percentages based on those ranges.
The resulting numbers are what you would expect, given the first graph from my Twitter:
There is a pretty significant dropoff in his completion percentages once he moves away from short air yard attempts. The drop is even more drastic once he gets into deep air yards.
How does this compare to the NFL average, though? That will give us a better understanding of how Roethlisberger is truly performing.
To do that, we simply use the same code as above, excluding Roethlisberger from the equation.
According to the data, Roethlisberger is slightly above average on negative and short air yard attempts. However, he started to fall behind on medium and deep attempts.
While not a significant difference, it does perhaps explain Roethlisberger's historically-low average depth of target (aDOT) of just 6.9 yards this season. That is, he is more accurate at shorter distances.