The Home of Fantasy Sports Analysis

Introduction xFP for Receivers: Biggest Over- and Under-achievers

For the Wide Reciever position in fantasy football, the name of the game is opportunity. However, opportunity can be measured in several different ways. Analysts have always focused mainly on targets and target share but in recent seasons the importance of Air Yards or target depth has become more important. For fantasy purposes, we know that deeper throws have greater chances of high yardage totals as well as a greater chance of going for a touchdown. However, these throws also have a lesser chance of being caught. It is a trade-off, ideally, we want our WR1s to be getting a mix of high probability completions mixed with high upside deep targets.


More fantasy goodness for NFL Week 8: Michael Florio’s Week 8 Rankings | Week 8 IDP Sleepers | Week 8 Flex Rankings | Scott Engel’s ROS Rankings | Mick Ciallela’s Week 8 Rankings | Week 8 FAAB Guide | Week 8 Waiver Wire


Introduction To xFP

Knowing this and wanting a reason to experiment with the fantastic play-by-play data from the nflscrapr package, I decided I wanted to try to create an expected fantasy points model, xFP, myself. There are a number of different models that try to do this and I know that I am not the first to do something along these lines, however, I have yet to see a model built in the way I had planned to do it.

To begin, I downloaded all of the play-by-play data the package contained, which spanned form 2009-2018 and would update each week. I then split all plays by actual attempted passes and runs and removed two-point conversions attempts. For the pass set, I took all of the factors contained within the data that I felt would have an impact on fantasy points earned for the given play. This contained things like air yards, down and distance, pass location, and field position. Using this as a sample data set I calculated fantasy points per play for the WR using half-PPR scoring.

Then I did the same preprocessing for the 2019 data up to that point and prepared the data to run through a K-Nearest Neighbors model. This uses a measure of distance to determine a set number of most similar or closest matches for each point in my test set compared to the sample. To do this I used Mahalanobis distance which is one of my favorite distance measures to use. While Mahalanobis distance is useful for distance calculations where there may be correlated variables, which is something that is important to take note of in our model. So using this distance calculation I found the 1,000 closest historical plays for each pass in 2019 and using a weighted average calculated the expected points for each given pass. Then I summed up the totals for each intended receiver and found my leaderboard.

To simplify what is happening within the model, each attempted pass this season has been compared to every pass that occurred between 2009 and 2018. Each of the historic passes was assigned a half-PPR value based on what actually happened. Then based on the top 1,000 most similar passes to one that occurred this season, I was able to derive an expected half-PPR value for that particular pass. Then by summing all of the plays where a particular reciever was the target I am able to get the total expected fantasy points for that player.

Below is the top 10 based on the xFP model thus far:

PlayerTargetsFPxFP
M.Thomas78125.3100.3
K.Allen7096.499.3
C.Kupp76106.796.3
M.Evans5583.993.2
J.Edelman6784.190.5
J.Jones6210088.6
D.Hopkins6893.386.8
T.Boyd7275.684.7
C.Sutton5492.479.6
C.Godwin54123.779.3

As you can see at the top end, there seems to be a fairly large discrepancy between the actual results and the expected. First of all, this is to be expected as all models tend to struggle with the extremes, but this also fails to take into account the player themselves. Michael Thomas is one of the best WRs in football so we would expect him to outperform his expected results due to his impressive hands.

The bottom ten (min 30 targets):

PlayerTargetsFPxFP
R.Freeman3130.231.1
K.Drake3328.431.6
D.Freeman3252.433
A.Humphries3135.434
E.Elliott3029.635
D.Amendola3141.235.4
D.Johnson3143.636.6
L.Bell363837.6
K.Johnson3323.637.8

Here we see mostly RBs- again this is only their expected points from their receiving numbers- which shows the low value of their targets. Freeman has an insane number of receiving TDs already which helps to explain his large over-performance. Humphries and Amendola being on this list show the low value of their slot roles for fantasy purposes.

There are a number of other things that we can look at using the model like seeing the players with the highest value targets (min 30):

PlayerxFP/Target
T.McLaurin1.7
M.Evans1.7
M.Valdes-Scantling1.6
M.Jones1.6
D.Robinson1.5
D.Chark1.5
B.Cooks1.5
C.Ridley1.5
N.Agholor1.5
K.Golladay1.5

It is an interesting list but it also one that supports the breakouts of two young WRs in DJ Chark and Terry McLaurin as is a reason to be optimistic if you are a Calvin Ridley owner.

How Does This Help Me?

For fantasy owners, it may be hard to directly see how anything I have shown so far can be actionable or usable for you. However, this can be extremely useful in showing us whether or not to invest in that WR on waivers or if to sell your stud WR before it all falls apart. One simple way would be to look at the biggest over and underperformers and work from there.

PlayerFPxFPxFP/TargetDifference
C.Godwin123.779.31.5-44.4
A.Cooper111.168.61.4-42.5
A.Hooper105.667.31.2-38.3
A.Ekeler97.359.61.1-37.7
S.Diggs94.8591.4-35.8
D.Chark104.673.61.5-31.0
A.Thielen8959.81.5-29.2
T.Lockett95.569.91.5-25.6
D.Johnson70.545.31.1-25.2
M.Thomas125.3100.31.3-25.0

Here are the players exceeding their xFP by the most and below is the reverse.

PlayerFPxFPxFP/TargetDifference
M.Williams46.5651.518.5
K.Johnson23.637.81.114.2
P.Williams48.960.41.411.5
T.Cohen35.246.61.111.4
R.Woods61.5711.29.5
Z.Ertz63.973.31.39.4
M.Evans83.993.21.79.3
Ro.Anderson39.949.21.39.3
N.Agholor55.965.21.59.3
T.Boyd75.684.71.29.1

As you can see the model struggles with elite over-performance more than it struggles with under-performance. However, this does not mean we can’t generate actionable results. To do this I built two more similar models, one for Catches and one for YAC. I think this will help us to pinpoint two important facts. Catches over expected, I largely anticipate being a function of elite talent at the WR position or with the QB throwing him the ball.

xCatches

PlayerCatchesxCatchesCatch_Diff
M.Thomas6249.312.7
D.Waller4432.611.4
T.Lockett4028.711.3
A.Ekeler4938.810.2
C.Godwin4333.49.6
A.Hooper4636.49.6
A.Cooper3829.18.9
J.Brown3325.17.9
D.Hopkins4941.77.3

Here are the players most exceeding their expected catch totals. Unsurprisingly, several of these names populate the over-performance list. More catches lead to more yards than anticipated and as a result more fantasy points. I tend to believe that the players who are high on this list, as well as the over-performance list, will be able to maintain their elite performance.

Conversely, here are the bottom ten.

PlayerCatchesxCatchesCatch_Diff
Ro.Anderson1721.3-4.3
K.Johnson1720.6-3.6
O.Beckham2932.3-3.3
T.Boyd4548.2-3.2
D.Westbrook3235.1-3.1
M.Evans2730.1-3.1
Z.Ertz3538.0-3.0
J.Gordon2022.8-2.8
J.Ross III1618.5-2.5
T.Cohen2931.1-2.1

For these names, if they appear on the under-performance list, this may be what to expect going forward. Evans is a prime example as he is a great fantasy WR due to his elite target depth and high upside, but he is drop-prone and does not get to every ball he should. His under-performance as shown by the model is justified. In a similar vein, so is Robbie Anderson’s.

On the other hand, the yards after the catch model will show something very different.

xYAC

YAC, or yards after the catch, shows how much the WR is able to do on his own once the ball is in his hands. While there may be exceptions, I tend to view YAC as very flukey and something that tends to be hard to repeat. High YAC totals anecdotally are due to poor tackling or a breakdown in defensive coverage and often are not the doing on the WR himself. However, as with everything, there are outliers.

PlayerYACxYACYAC_Diff
A.Ekeler477263.5213.5
S.Watkins207104.4102.6
A.Kamara289195.793.3
C.Godwin235149.785.3
C.McCaffrey303218.284.8
D.Waller251171.979.1
J.Landry190113.876.2
C.Thompson242173.468.6
J.Ross III15588.266.8
C.Kupp280218.461.6

Above are the ten players most exceeding their expected YAC totals. This list contains several RBs which makes sense as most of their receiving yards are YAC based, to begin with.  Godwin finding himself on this list is something to be concerned about as he is the player outperforming his xFP by the most in 2019. While he has been an absolute star in the making, I do not believe his YAC totals will stay incredibly high and this may lead to some regression for him. While you likely are not selling the young stud, I would be fielding offers to see if there is someone willing to pay an insane price to acquire him.

Watkins is a prime example of the usage of this model as his massive week 1 was tied to some big YAC numbers and was a sign that this may not be sustainable in the long run. Kupp is a player who has a reputation of being elite after the catch and is a player I intend on looking deeper into.

As for the laggards in this metric.

PlayerYACxYACYAC_Diff
A.Robinson89160.1-71.1
Z.Ertz88153.5-65.5
T.Quinn52110.6-58.6
T.Cohen148204.0-56.0
K.Allen132186.9-54.9
K.Johnson4094.4-54.4
C.Ridley52105.8-53.8
M.Evans79131.4-52.4
T.Ginn2468.7-44.7
D.Robinson61104.0-43.0

The top of the list contains who players who I would be actively trying to acquire. Robinson has been great despite his poor QB play and has posted big games in two straight. If an owner is scared about a WR tied to the Bears offense, jump on it and acquire him. Similarly, Ertz has not been the stud many expected him to be and many of his owners are trying to sell while he still has name value. If you are TE needy, jump on the opportunity and take full advantage.

Calvin Ridley has shown up twice in this analysis, once due to his high-value target total and now due to his low YAC numbers. With those two things combined he seems to be the perfect example of a player to target based on this model. He has not been the player his owners were hoping for and many will be likely to move him for a more stable or better-performing player. As a result, I would be reaching out to that owner and trying to buy him now, especially off the news of the Mohammed Sanu trade. Ridley is the type of player I hope to identify using this model.

Going Forward

Week to week these charts will not change much but my intention is to do a review of the top performances of the week prior and to see which appear to be sustainable or not. These will hopefully be published on Wednesday mornings going forward but I can try to push them to a Tuesday publish (likely sans MNF results) to help with potential waiver wire adds. This is just the start of my analysis as I will be fine-tuning the data and the model as I go forward and hopefully will be able to expand into both QB play as well as rushing numbers.

If you have any questions, concerns, or suggestions feel free to reach out on twitter.


Fantrax is one of the fastest-growing fantasy sites of 2019. With multi-team trades, designated commissioner/league managers, and drag/drop easy click methods, Fantrax is sure to excite the serious fantasy sports fan – sign up now for a free year at Fantrax.com.

Leave A Reply

Your email address will not be published.