Using Air Yards to Enhance Expected Fantasy Points

I’ve spend a lot of time recently messing around with the excellent air yards data you can pull from the API using the nflscrapR package in R. After the kickoff game last week, I used air yards to show that Alex Smith has, in fact, not morphed into a bomb throwing passer. But there are many more applications for air yards data. The most interesting being for receivers.

If we know where a player was targeted on the field, we build league-wide historical averages for anything from expected yards, touchdowns, and receptions. Then, we can compare those expected number to what was actually posted in the box score. The differences between expected and actual stats can help us identify receivers who may be under- or overvalued based on unsustainable levels of efficiency.

I’ll say this in bold letter: Receivers will not all regress to league-average numbers! I’m not foolish enough to think that equal opportunity will eventually lead to equal stats for Antonio Brown receiving passes from Ben Roethlisberger and an unheralded wide receiver playing with one of the most inefficient quarterbacks in the league.

That said, these numbers can give up an idea of receivers’ potential upside, or downside, if notoriously volatile efficiency moves in the other direction.

There are three main components to receiver expected fantasy points.

  • Expected receptions (expRec) based on average catch rate for a pass at the targeted air yards.
  • Expected yards (expYds) based on average receiving yards for a pass at the targeted air yards.
  • Expected touchdown (expTD) based on the the average touchdown rates for a pass at that travels to a particular yard line and at the targeted air yards.

Before I continue, I should make note that many others are doing excellent work with air yards and metrics similar to expected fantasy points, including Josh Hermsmeyer at and Scott Barrett at Pro Football Focus.

Here are a few graphs to illustrate the relationships with air yards and targeted yard line for the three components:

Expected receptions

I know it’s obvious, but worth pointing out that you shouldn’t expect the same likelihood of a reception at different targeted air yards. So rather than simply look at targets, our expected receptions calculation will give a much more accurate estimate of what particular targets will yield. This will be especially useful in PPR leagues where the number of receptions is huge important.

Expected yards

This relationship is a little more interesting. Yes, yards increase with target air yards. But, it’s not a one-to-one relationship, i.e. for pass of 40 air yards you shouldn’t expect twice the amount of receiving yards as a pass of 20 air yards. In fact, the amount of expected yards actually decreases for especially long – and rare – throw for more than 45 air yards.

Expected touchdowns

What this relationship really hammers home is the value of red zone targets. The chance of scoring a touchdown when targeted outside of the 15 yard line is negligible, and the rise in touchdown rate is exponential as you get closer to the goal line.

The expected fantasy point numbers: Week 1

Here they are. The below table can be sorted, searched and scrolled through to your heart’s content. What’s important to focus on is those with a larger difference in expected and actual fantasy points. Will those receivers remain at their Week 1 efficiencies? Or should we expect regression? Good luck!

All fantasy point calculations use PPR scoring.

[table id=11 /]


  1. I would love to have stats on this from last season.

    Are players with high neg difference like Tyreek Hill providing value above the average player? Or are these players that just got a fluke play like Austin Hooper, and will regress to the mean? Or do we look for players with a pos differential that should “bounce back”?

    Or finally, is it more useful to rank by Expected Fantasy points and see who the team is valuing most regardless of actual performance? Last years data would be really good in figuring out what is the “signal” in this dataset.

    • Sorry for the late response. It would be interesting to look at last year’s numbers. I’ll try to work on that soon. Then again, you probably don’t want to base too much on just one year.
      Not sure if you’ve seen the work that RotoDoc (Nick Giffen) and Josh Hermsmeyer has done with Air Yards on RotoViz. I believe they did more extensive testing.

  2. FYI – there is an error in the game center JSON which understates Diggs’ targets/rec. Box score says he actually had 7 rec on 8 targets, not 6 on 7. Unclear about his air yards.

  3. Hi Kevin – Great work as always! How do you account for the fact that Amari Cooper had three straight Red Zone targets, the second two which could not have occurred if he caught the first one. Obviously they aren’t useless, but something I am struggling to reconcile. Thanks!

    • Great question. I was struggling with that myself. I decided to go with an imperfect solution: I group the expected stats by drive first and limit the total expected TDs on any drive to 1. Now, it doesn’t lower it much for Amari because his expected TDs on that drive, despite the three end zone targets, ended up only being slightly higher than 1. Limited expected TDs to 1 will be more useful for rushing plays near the goal line, where expected TD rates are much higher. I plan to do that once I get a little time to add rushing to the mix.

      I thought about limiting the expected TDs to 0.8 or some lower number, but decided just to go with 1 since it’s impossible to score more than 1 TD per drive.

Leave a Reply