clock menu more-arrow no yes mobile

Filed under:

Catch Rate and Other Stats I Hate

NFL: Indianapolis Colts at Los Angeles Rams Richard Mackson-USA TODAY Sports

This is the 7th in a series of articles I am writing to analyze some common NFL statistics, focusing on how much value they have relative to team wins. I want to acknowledge the work of Brian Burke, Chase Stuart, and even our own Matt Grecco, who inspired this analysis and whose methodologies I have leveraged, as well as Pro Football Reference, Armchair Analysis, NFL.com and the nflSCrapR project as the sources of my data.


I’ll start with a quiz. Since 2000, which Tight End with at least 75 career targets has the highest catch rate?

  • A) Tony Gonzalez
  • B) Antonio Gates
  • C) Rob Gronkowski
  • D) Jimmy Graham
  • E) Some TE whose last name does not begin with “G”

If you chose “E”, congratulations, you are correct. Catching 77% of all passes thrown his way, the TE with the highest catch rate this century is . . . Jack Doyle.

In fact, no need to limit it to TEs, he has a catch rate higher than any wide receiver. That’s right, Doyle rules catch rate. Unfortunately, he also rules a crap stat.

In a perfect world, where all things are equal, I would have no problem with catch rate, but we don’t live in that world. Instead, we live in a murky, shadow world, where Sense8 warranted a second season and people happily cheer for the Patriots. And in that world, variables beyond a receiver’s control impact his catch rate.

Now, to be fair, all stats suffer from similar “noise”, but catch rate (CR) is particularly susceptible.


WINS

Because CR is such a noisy stat, it doesn’t even clear the simple threshold of being moderately related to wins and if a stat isn’t measuring a skill that leads to wins then what is the point? You might as well just track who wins the opening coin toss . . . which I do.

If you read my post on passer rating, then the following data won’t be new to you.

Receiving yards, yards per catch and catch rate aren’t very good stats because they aren’t good descriptors of how games are won (low correlation to wins). Of course, those are the 3 most common receiving metrics in use today, so there’s that (#shadow_world).

On the other hand, Yards Per Target (YPT), which is just receiving yards divided by the number of targets (attempts) is a good stat, but let’s put a pin in that for now.


QB NOISE

QBs have variable skill levels and develop different relationships with their receivers that impact CR. Here is a sample of receivers who had at least 100 targets with 2 different QBs.

Catch Rate by QB

Player QB Cmp Att Catch Rate Difference
Player QB Cmp Att Catch Rate Difference
Eddie Royal Kyle Orton 98 181 54.1%
Jay Cutler 130 186 69.9% 15.7%
Jeremy Shockey Eli Manning 206 363 56.7%
Drew Brees 139 198 70.2% 13.5%
Kenny Stills Ryan Tannehill 59 124 47.6%
Drew Brees 95 133 71.4% 23.8%
Larry Fitzgerald Derek Anderson 49 102 48.0%
Carson Palmer 364 519 70.1% 22.1%
Tony Gonzalez Tyler Thigpen 74 128 57.8%
Damon Huard 120 174 69.0% 11.2%

Those are some big, cherry-picked-to-make-a-point, differences. There is probably a lot going on there outside of just the QB, but you get the idea. Without a change in skill, the same receiver can have very different CR numbers under different QBs.

The mere fact that QBs have varying completion rates is evidence of that. In 2017, Drew Brees completed 72% of his passes while DeShone Kizer notched less than 54%.


AIR YARD NOISE

But perhaps the biggest confounding factor of CR is how each receiver is used. Is he running deep routes or is he primarily a check down?

This takes us into the realm of air yards, which is the total distance that a football is thrown past (or short of) the line of scrimmage to the point of reception (or where the reception would have been if incomplete).

The following chart breaks out average NFL catch rate by air yards (aY).

Clearly, length matters.

Uh, phrasing

There is a near perfect linear drop-off in CR the further down the field the receiver is. In fact, the relationship is so strong that statistically speaking, around 98% of the average catch rate is explained by air yards (1), leaving only 2% for other factors . . . like ball pressure (#shadow_world).

Divide a receiver’s total air yards by the number of times he was targeted and you get what we stat nerds call the average depth of target (aDOT). In simpler language, it is the receiver’s average route depth on plays where he is targeted.

I only have air yard data going back to 2009, but since then, of the top 50 TEs by targets, Doyle ranks #1 in catch rate but dead last in average depth of target (4.7yds). That is not a coincidence. He has a high catch rate because he catches short passes.


ALTERNATIVES

The bottom line is catch rate is a bad stat and it can’t be used to compare receivers. So, is there a good receiving stat? Well, there’s good news and bad news.

Remember YPT? <imagine the sound of one item being unpinned>. The good news is that yards per target explains wins very well (high correlation) and is predictive of wins. Also, since YPT is just yards per catch multiplied by CR (YPT = rYds/Ctch * Ctch/Tgt), it encompasses all the information of CR as well. Ironically, combining two not so good stats make a single good one (Oooh mathemagic).

The bad news is that YPT it is heavily biased by air yards. When comparing YPTs, Doyle’s wee 6.56 pales in comparison to Gronk’s massive 9.93, primarily because Gronk’s aDOT is about 6 yards longer.

Seriously, are we not doing phrasing anymore?

And it gets worse. Receiving yards can be deconstructed into completed air yards and total yards after the catch: rYds = cmp_aY + ttl_YAC

And just like catch rate, YAC is also dependent on air yards, as illustrated below.

It’s not a linear function like CR, but YAC is clearly not just receiver skill. My guess is that this represents defensive choke-points about 10 yards downfield, but that is an analysis for another day.

So, while YPT is a good stat to measure a receiver’s impact on wins, it is still not something you can use to compare them directly. Frankly, I don’t believe you can legitimately compare receivers with any of the standard receiving stats. There are just too many variables.

However, there’s nothing stopping me from creating my own rating stat.


EXPECTATIONS

What follows is a fun exercise (yes this is fun for me) demonstrating how a comparison stat could be made. I’ll apologize up front because this section is going to get a bit mathy. For the algebraic milksops, you should skip to the results section.

Okay, are all the wussies gone? If you look back at the CR chart, you’ll notice Doyle’s 4.7 aDOT equates to an NFL average CR of about 71%, which he is outperforming (77%).

Using regressions, I can calculate CR and YAC for each receiver given the air yards of their targets. Then I just use those expected values to adjust an existing stat and determine a performance over expectations. And since CR is a crap stat, I will use YPT.

I showed you earlier that YPT is just CR multiplied by receiving yards per catch:

YPT = CR * rYds / Ctch

and also that total receiving yards can be deconstructed into completed air yards and total YAC:

YPT = CR * ( cmp_aY + ttl_YAC) / Ctch

And since total YAC per catch is just YAC then:

YPT = CR * (cmp_aY/Ctch + YAC)

And if I swap actual values with expected values, then it becomes expected YPT:

xYPT = xCR * (cmp_aY/Ctch + xYAC)

And finally, the difference between actual YPT and expected YPT is YPT over expectations:

YPToe = YPT - xCR * (cmp_aY/Ctch + xYAC)

For the expected data, I used equations other than the trend lines in the graphs(2) to calculate xCR and xYAC, but Doyle’s numbers look like this:

YPToe = 6.56 - 63.9% * (723 / 174 + 5.0)

That comes to 0.68 which is a measure of how many more yards than expected he is producing with every ball thrown his way(3). And since YPToe uses air yards as a variable that number can be directly compared to other receivers.


RESULTS

If this is a stat that actually captures a player skill that is related to wins and not already captured by standard YPT, then the correlation to wins (especially predictive correlation) should increase.

And it does. So, after crunching all of those numbers, I finally have an apples to some-other-fruit-that-is-closer-to-apples-than-it-was-before-all-of-this comparison of receivers. However, this is a rough draft of a stat, so treat this as more chainsaw than scalpel.

Taking the 50 top TEs and 50 top WRs by targets since 2009, here are the top 10 players in YPToe.

Top 10 YPToe

Player Cmp Att pY YAC cmp_aY aY/C ttl aY aDOT CR xCR YAC xYAC YPA xYPA YPAoe
Player Cmp Att pY YAC cmp_aY aY/C ttl aY aDOT CR xCR YAC xYAC YPA xYPA YPAoe
Travis Kelce 307 429 3900 2037 1863 6.1 3093 7.2 71.6% 63.4% 6.64 5.1 9.1 7.1 2.02
Rob Gronkowski 474 723 7178 2917 4261 9.0 7404 10.2 65.6% 61.6% 6.15 4.4 9.9 8.2 1.70
Zach Miller 146 205 1631 783 848 5.8 1392 6.8 71.2% 63.3% 5.36 4.6 8.0 6.6 1.34
Fred Davis 159 245 2016 934 1082 6.8 1878 7.7 64.9% 60.5% 5.87 4.7 8.2 6.9 1.28
Golden Tate 537 790 6413 3449 2964 5.5 6735 8.5 68.0% 62.7% 6.42 5.5 8.1 6.9 1.23
Jermichael Finley 217 311 2711 1130 1581 7.3 2818 9.1 69.8% 64.1% 5.21 4.5 8.7 7.6 1.14
Brent Celek 355 557 4502 2227 2275 6.4 4114 7.4 63.7% 60.5% 6.27 5.1 8.1 7.0 1.10
Randall Cobb 432 614 5141 2615 2526 5.8 4659 7.6 70.4% 66.0% 6.05 5.2 8.4 7.3 1.06
Jordan Reed 275 363 2813 1341 1472 5.4 2268 6.2 75.8% 67.0% 4.88 4.7 7.7 6.7 1.02
Julio Jones 585 927 9054 3225 5829 10.0 11398 12.3 63.1% 59.9% 5.51 4.7 9.8 8.8 0.99

Of the 50 TEs, Doyle ranks 43rd in standard YPT, but improves to 11th place using YPToe. TY Hilton has the opposite journey. His YPT ranks 5th among WRs, but drops a few spots to 9th in YPToe.

Adding in running backs, here are the Colts receivers numbers for 2017 (at least 30 targets). Negative YPToe numbers indicate a receiver who did worse than expected .

Colts 2017

player Cmp Att pY YAC cmp_aY aY/C aY aDOT CR xCR YAC xYAC YPA xYPA YPAoe
player Cmp Att pY YAC cmp_aY aY/C aY aDOT CR xCR YAC xYAC YPA xYPA YPAoe
Ty Hilton 57 109 966 304 -424 11.6 1390 12.8 52.3% 54.8% 5.33 4.3 8.9 8.7 0.12
Jack Doyle 80 108 690 337 157 4.4 533 4.9 74.1% 64.0% 4.21 4.9 6.4 5.9 0.46
Donte Moncrief 26 47 391 79 -250 12.0 641 13.6 55.3% 54.3% 3.04 4.1 8.3 8.7 -0.40
Kamar Aiken 15 44 133 47 -284 5.7 417 9.5 34.1% 58.7% 3.13 4.3 3.0 5.9 -2.85
Frank Gore 29 38 245 275 271 (1.0) -26 (0.7) 76.3% 73.4% 9.48 8.0 6.4 5.1 1.35
Chester Rogers 23 37 284 104 -61 7.8 345 9.3 62.2% 56.8% 4.52 4.8 7.7 7.2 0.51
Marlon Mack 21 33 225 283 288 (2.8) -63 (1.9) 63.6% 72.9% 13.48 9.2 6.8 4.7 2.13

And here are all teams ranked by their 2017 receiver’s weighted YPToe(4). Robert Woods, Todd Gurley and Cooper Kupp all had very strong results leading the Rams to a #1 spot.


FOOTNOTES

1) R-squared of 0.9835 for linear regression of league average catch rate by air yards for attempts between 1 and 30 yards. This strictly linear trend does not extend to shorter or longer passes and have been excluded for illustrative purposes.

2) All regressions utilized individual play data and not the averages displayed in the charts. The dependent variable for CR is aDOT as that includes all passes but for YAC only completions matter and so avg completed air yards was used.

The trend lines do not display a universal trend and so they were broken into separate ranges to better fit the data. The CR trend had 4 ranges: <0 aDOT (positive linear), 0 aDOT (point estimate), 1 - 30 aDOT (negative linear) and >30 aDOT (negative linear). For YAC, 3 different ranges applied: <-5 (pos. linear), -4 to 25 (cubic) and >25(neg linear).

3) One additional adjustment I made was to account for QB accuracy. Receivers of highly accurate QBs (Brees, Rodgers) should be penalized a bit and receivers of the Gabbert/Sanchez persuasion should get a bump. I didn’t go into the math here, but using a similar methodology of completion rate over expectations, I created a weighted QB adjustment for each receivers’s xCR before calculating his final xYPT.

4) Receivers with less than 30 targets were assigned a YPToe of 0. YPToe for each receiver was multiplied by attempts and totaled to get a team YPToe. This was then divided by team attempts to get a weighted avg YPToe.