The Diggs Equation — Will Josh Allen Pass to Stefon Diggs?

Joe Alongi
14 min readOct 21, 2023

This season of the NFL (National Football League), I began playing Fantasy Football through the ESPN Fantasy Football League with some people from work. At first, I was not very intrigued, due mostly to the fact that I am not really a football fan but figured it would offer up some interesting weekly rivalries, conversations, and be an interesting experience all together.

When the draft began, I picked some of the players I knew, from overhearing names, NFL clips on YouTube, and local players I have heard are quite good. I picked who I liked, and then worked through the statistics offered on the platform trying to find players I thought would score points and play a majority of the season.

The team overall is a group of familiar names, faces, and numbers at various stages of their career and skill level, none the same, they are my team. Each week the matchup occurs, and I am presented with a ratio type progress bar under my team’s name, which at the beginning of the week, you see the teams projected points against your opponent's points, and throughout the forecasted versus actual points accrued.

Around two weeks ago, I was behind about four (4) points, I had two (2) players left to play, and the progress bar was telling me I had a ninety-nine percent (99%) chance of losing the week. I knew that it was the fourth quarter, the Bills had just had possession, and there was four (4) minutes left in the quarter. I did not understand how that would mean my odds of winning were at one percent (1%) for the week, when I assumed, the Bills would have another drive down the field in approximately a minute or two, and I figured, of course Allen would pass to Diggs, right? Some way somehow, my weekly win relied on Josh Allen throwing the ball to Stefon Diggs, and Stefon Diggs catching the ball far enough down the field, to rack up enough points to win; this moment for me, was the inception of “The Diggs Equation”.

Modeling the existing data

As a first point of understanding to model this equation, I started looking at the statistics available on ESPN for the two players, Stefon Diggs and Josh Allen. From the ESPN Fantasy Football League rules page, I can also begin to understand the value of the points gathered for each interaction.

From the statistics on Stefon Diggs’ page, we can see that for the 2020–2023 season he has played for the Bills, and for Josh Allen’ page we can see that from the 2018–2023 season he played for the Bills. The intersection of these statistics should appropriate in 2020–2023, granted Allen was the starting QB (Quarterback) those years and Diggs was a starting WR (Wide Receiver).

Stefon Diggs Career Stats — NFL — ESPN
Josh Allen Career Stats — NFL — ESPN

Existing ground truth:

  • We know that there are four (4) minutes left in the game
  • We know that there are four (4) downs in a possession
  • We know that the other team just received possession
  • We know that I need four (4) points

Season based statistics:

  • We know from reading the tables that they both played the same number of games over 2020–2023 so we can confirm that these seasons overlap between the two players
  • We can see that Stefon Diggs has a column for REC (Receptions) and a column for (TGTS) Receiving Targets, meaning we know how many times he caught the ball when it was thrown to him by Josh Allen
  • We can compare throws and catches, Diggs being the numerator and Allen being the denominator of how often Allen throws to Diggs and the percentage
  • We have a column for Diggs on the AVG (Yards Per Reception) so we can estimate how likely a point gap is to be filled for each throw
  • From the point gap we can approximate how many receptions of the average yardage Diggs would need to catch to meet our gap
  • We know that Stefon Diggs gets “1 pt per 10 yards rushing or receiving”
  • It appears that the ESPN Fantasy Football League gives Stefon Diggs an extra 1 pt per reception of 10 yards or greater

Obvious Potential noise:

  • We can see that Josh Allen has a column for CMP (Completions) and a column for ATT (Passing Attempts), meaning we know how many of his throws have been successfully caught
  • We know that if Stefon Diggs catches the ball for a touchdown, I get an extra “6 pts per rushing or receiving TD”
  • We know that if Josh Allen throws to Stefon Diggs for over forty (40) yards and gets a touchdown, I get a bonus “2 pts per rushing or receiving TD of 40 yards or more”

Researched potential noise:

Calculating the existing statistics

We have gathered the statistics and outlined the data points that we know can contribute to the understanding of this equation, now we need to calculate the gaps between those data points.

Frequency of the throw:

To figure out the frequency in which Josh Allen throws to Stefon Diggs or how many times he has thrown to Diggs we can ingest all of the data from Stefon’s (TGTS) Receiving Targets and Josh’s ATT (Passing Attempts) column and divide across the four years in total. For the sum of TGTS Stefon has 550 and for the sum of ATT Josh has 1990, so we divide 550 by 1990, which is 28%.

Twenty-eight (28) percent of the time Allen passes to Diggs, so we can assume that almost every possession, on average, Josh Allen passes to Stefon Diggs

Based on season statistics and convergence of all of the points in time during a game, we can take this percentage and work with it later to forecast it appropriately for the odds of an end-game dramatization.

Probability of the catch:

To figure out the probability that Stefon Diggs will catch the ball from Josh Allen we can ingest all of the data from Stefon’s REC (Receptions) and (TGTS) Receiving Targets column, once again dividing across the four years in total. For the sum of REC Stefon has 387 and for the sum of TGTS Stefon has 550, so we divide 387 by 550, which is 70%.

Seventy (70) percent of the time Diggs catches the pass thrown to him by Allen

Based on the pace of the game or opponent, Diggs may catch the ball more regularly than not, we can assume later and forecast this statistic that this percentage can mean more likely than not if fifty percent (50%) is the middle ground of catch or drop.

Points to the catch:

To figure out the distribution, or ratio of points provided by the pass from Josh Allen to Stefon Diggs, we can ingest all of the data from Stefon’s AVG (Yards Per Reception) column, sum those four (4) years of data, and then divide by the denominator of four (4) years to get a better moving average. For the sum of AVG we have 49.9, which we divide by 4, and amounts to 12.

Twelve (12) yards per catch is the average yardage with a return of 1.2 points plus the wide receiver point for greater than 10 yards, yielding 2.2 points per catch

Through this we can deduce that there are occurrences where these points may be actualized at a higher point distribution through touchdowns or higher than average receptions, but we can assume that this 2.2 point per reception is a reliable average for this equation.

Defining the unknown data points

Outside of the statistics that we know and the probabilities that we can forecast, are the underlying human versus environment considerations that play into the above metrics that are occurring. We need to find some statistics that support the underlying principles which drove me to consider this win to be more fathomable than 1%, something of an understanding of expectation behind probability having seen these outcomes occur in actuality through real life.

Time of possession:

The first point of the matter to tie to this box of formulas, is the idea that during a full American Football game, the teams spread their efforts across four (4) fifteen (15) minute quarters in which they trade on and off starting with possession of the football.

We need to find a statistic in which summarizes how often a team gains possession of the football over the course of a game, this can be represented by the time that the team had possession of the football across the game.

In the 2022 season the Buffalo Bills had possession of the football for an average of twenty-nine point three (29.3) minutes of the game, this means that we can divide the 29.3 by the whole game of 60 minutes to find the percentage of possession, which is 49%.

In addition to the percentage, we can use this number in correlation with another statistic to derive to probability of additional downs for the Buffalo Bills in this game.

Plays per game:

Finding a reliable denominator for a somewhat aggregated statistic makes creating these algorithms challenging but can be used as a basis for the hypothesis, and we need something to start with, so here it is.

A possible way to divide the possession of the Buffalo Bills time of possession, is by the effectual plays that occurred across that game, in which together with the whole can illuminate the time of possession within in game on average.

In the 2022 season the Buffalo Bills completed an average of 65.1 plays per game, which means that over the course of the 29.3 minutes of possession, they were able to complete that many plays.

Knowing that the average of plays to minutes we can divide the 65.1 plays by the 29.3 minutes to identify the approximate play per minute which is 2.22 which informs us that we may need to find the seconds per play or the plays per down, to estimate how many plays occur in a possession.

To find the seconds per play we multiply the 29.3 minutes by 60 to get the true seconds, then with that result, which is 1758, we divide by the number of plays which is 65.1 to get 27 seconds per play on average.

Occurrence of possession:

We previously calculated the TPP (Time Per Play) and the PPM (Plays Per Minute) which informed us of the quantity and quality relationship of possession within a given time frame.

What we need to understand is how frequently those plays or times can occur within a window of time, to estimate the possession a time has a certain given point within the game. As spectators we can assume these principles as we have seen time and time again, with minutes to seconds on the clock the game can completely change, if the score is close enough.

For the lack of better data points and efficiency of building this data model, what we can consider is the number of downs within a possession. These items would be better tuned from raw data, but we can consider that occurs in a different spectrum of this proof.

We know that downs are the allotments of progression given to a team, which they either pass or fail, converting to continue their possession or failing which forces a change of possession. We can naively assume that there are around 4 downs per possession, we can estimate that there are 6, and we can argue that there are about 8, depending on the team and conditions of the game. For this calculation we will assume that there are 4 downs, because the mental math I did here in the spur of the moment in that situation was starting at 4, then grounding myself with 6, and questioning at the 8.

We can calculate the time of possession simply by multiplying the average time per play, by the downs per possession and multiply 27 seconds by 4 to get 108 seconds, which we divide by 60 to get 1.8 minutes (1 minute and 40 seconds).

The average possession of a team lasts around 1 minute and 40 seconds, meaning that each team trades possession almost less than every two minutes with a naive assumption

Through these statistical concepts we now have a frame of reference for iterating the existing known data across the unknown data.

Modelling the algorithm

Now that we have all the parts and pieces we can combine these data points, percentages, minutes, and seconds to come to a more informed conclusion, that which one would, with human perception.

Naive Distributed Points Algorithm:

To recap, lets list the considerations and then approximate the percentage of success based on the algorithm available from online stat sites, quick napkin math, and potentially some fandom approximations.

  • There are four (4) minutes left in the game
  • I need four (4) points
  • Twenty-Eight (28) percent of the time Josh Allen passes to Stefon Diggs
  • Seventy (70) percent of the time Stefon Diggs catches the ball thrown to him by Josh Allen
  • On average Stefon Diggs receives for twelve (12) yards or two point two (2.2) points a catch
  • Each team has the ball for one (1) minute and forty-eight (48) seconds

With four minutes left in the game, we can divide the 4 minutes by the possession time of 1.40 minutes which gives us 2.9 possessions left in the game.

  • 2.9 Possession Left

If there are 2.9 possessions left in the game that means that we can multiply them by the amount of downs or plays left in those possessions which is 4, so 2.9 multiplied by 4 is 11.6 plays left in the game.

  • 11.6 Plays Left

If there are 10.8 plays left in the game that means that the odds of Josh Allen passing to Stefon Diggs is 10.8 multiplied by .28 or 28%, which is 3.3 passes to Diggs.

  • 3.3 Passes To Diggs

If there are 3.3 passes to Diggs left in the game that means that there is a .7 or 70% chance of him catching them so we multiply the 3.3 passes to Diggs by .7 which gives use 2.31 caught passes.

  • 2.31 Caught Passes

If Stefon Diggs catches 2.31 passes that means that we can multiply the 2.31 by 2.2 to get 5.08 points.

  • 5.08 Points Earned

We take the naive algorithm approach, assuming that these are not end of the game touchdowns, but quick progression passes. Assuming that all percent of plays that are not passes to Diggs are passes or rushes from other players. Assuming that all of these passes are over ten yards so that we can carry the average points to each pass. All else equal it seems that the odds of winning are far greater, almost undeniably greater, unless the situation falls to uncommon circumstances.

We can assume the equation would be something like (((((Time Remaining / Avg. Time Of Possession) * Avg. Plays Per Possession) * Avg. Passes To Diggs) * Avg. Catches By Diggs) * Avg. Points Per Catch)

This algorithm gives us a forecast of the points we should earn based on the time remaining but to understand an approximate percentage of that point attainment occurring we need another naive algorithm.

Naive Percentage Algorithm:

If there is a 28% chance of Josh Allen passing to Stefon Diggs and 70% chance of Stefon Diggs catching that pass, then we multiply .28 by .70 and get .196 which we then multiply by 100 which gives us a 19.6% chance of winning.

  • 19.6% Chance Of Points Occurring On One Pass

The 19.6% is based on the probability of one pass, though in this instance with the time remaining we have three passes left in the game with this percentage of outcome, which should leave us with a naive assumption of a 20% chance of winning.

  • 20% Chance Of Points Occurring On Three Passes

Taking these assumptions and the isolated factors for a path to a win, with the exception of only being reliant on the outcome of Stefon Diggs, we can build a win algorithm of all these contributions together.

(((((Percent Avg. Passes To Diggs / 100) * (Percent Avg. Catches By Diggs / 100)) * 100) * Passes To Diggs Left In The Game) / (Passes To Diggs Left In The Game * 100))

The overall naive algorithm from this simple model would predict that if all goes as expected, my actual percentage of win would 20% instead of the 1% that the progress bar showed me.

The 20% chance of occurring points on three passes seems like a nice outcome, but we have to question, is it really that low, is it really that improbable that talented NFL players are 20% likely to achieve their objective?

Probability of Mutually Exclusive Events Algorithm:

One of my friends suggests that the best way to approach this problem is by measuring the probability of mutually exclusive events. Through the lens of the 19.6% of success on one pass and reception we can identify that there is a 80.4% chance of a missed pass and reception. We are taking this binomial distribution approach to concatenate the probability of failure and use the inverse to find the probability of success.

When we take the 80.4% and distribute that through multiplication, across the number of opportunities or single events, we find the most numerous outcome which is that of failing three (3) times. So, in evaluation we look at 0.804 and multiply that three 3 times to simulate the events and get to 0.52, which we then multiply by 100 which gives us a 52% percentage rate of failure.

  • 52% Chance Of No Passes Being Thrown And / Or Not Received

We know the percentage of failure is at 52% and so in being that all three attempts failed at that rate, the percentage of success is the inverse at 48%, meaning that if the probability of all three available passes failing is at one point, the inverse of that point is the opportunity for success.

  • 48% Chance Of Passes Being Thrown And Received

((((((((Percent Avg. Passes To Diggs / 100) * (Percent Avg. Catches By Diggs / 100)) * 100) -100) / 100 ) * Passes To Diggs Left In The Game) * 100 ) -100)

This evaluation of mutually exclusive events represents the outcome of one contingent event occurring over three consecutive events in a vacuum like fashion with the same probability. In this one event, there is a 48% chance that all chances are met, which returns in favor of a larger percentage, and helps us reach our fandom thinking, that ‘obviously’ in a regular set of events, we should at least be able to get a few more points, with almost a few more minutes.

This whole thesis is accepting that at the end of the game Josh Allen threw to Diggs as he did on average, maybe not even more to increase the odds, or less to reduce them. Potentially not of more yards to increase the points, or less to reduce them. Even accepting that what could occur but would probably not based on the human experience which would lead us to believe, that one of these passes was for a touchdown, and increasing the points by a larger factor. I believe a predictive model would perform on these statistics as well as the game time, and the odds of these considerations for making an estimate of my approximate win.

Thanks for Reading, Keep Calculating!

Looking for more Application Development advice? Follow along on Twitter, GitHub, and LinkedIn. Visit online for the latest updates, news, and information at