Explainer Quick Hits:

  • The model uses differentiated play-by-play data of greater volume and depth than widely available game-level aggregates for more insightful expected outcomes.
  • It balances observed data and projected data across four key areas: team values, player baselines, player participation on both sides of the ball and defensive matchup adjustments.
  • The projections are scheduled to update here throughout the week: first release Tuesday, second Thursday, final Sunday.

Turn back the clock: We’re entering Week 4 of the 2021 NFL season. The fantasy season, that is.

Cooper Kupp has 25 catches for 367 yards and five touchdowns from 33 targets in three games. Mike Williams has 22 catches for 295 yards and four TDs on 31 targets. DJ Moore has 22 catches for 285 yards and a TD on 31 targets.

As for Kupp and Williams, both came into the league in 2017. Both are sitting on one 1,000-yard receiving season. Neither to this point has a 1,200-yard receiving season. Both have had one 10-touchdown season but look like locks for a second.

That’s where the similarities end. One has never had 50 catches but has averaged over 15 yards per catch for three straight seasons. The other has had two 90-catch seasons, but in the last he didn’t crack 1,000 yards and finished with three TDs.

In the context of early October football, both wideouts are thriving under quarterbacks that will put up similar season numbers in offenses that are moving the ball, scoring points and winning football games. With second-year QB Justin Herbert coming off a 30-24 Week 3 win at Kansas City, Williams is getting the volume he’s needed all his career to be a trustworthy fantasy asset rather than a poor man’s DeSean Jackson. With Matthew Stafford replacing Jared Goff and coming off a 34-24 home win over Tampa Bay, Kupp is putting up numbers no longer limited by short depth of target that can be compared to 2010 Danny Amendola.

Jump ahead to January: Both had career years, but one was historic. Looking back now, it seems obvious which would be which. But entering the season, Kupp was ESPN’s 22nd-ranked standard-scoring receiver behind teammate Robert Woods at No. 14. Going into Week 1 of 2021, his expert consensus ranking on Fantasy Pros was WR17. We had him at WR6.

Our projections also got plenty wrong. We had Jonathan Taylor as a potential usage risk with key concerns in the pre-Week 1 2021 Indianapolis offense. Any model that claims to be infallible to considerations such as coaching decisions is overhyping its realistic utility. There’s only so much that can be forecasted in an NFL season at the player level, but the purpose of this explainer is to give some insight into how our model focuses on the aspects of the game we can actually study and the advantages we believe it gives. Plenty of it has to do with a balance between observed and projected data across four categories:

  • Team values
  • Player baselines
  • Player usage
  • Defensive matchup adjustments

That’s not out of the ordinary for a fantasy model. But by utilizing our detailed play-by-play and participation data, the hope is for a more insightful outcome. With data, depth and volume matter, and widely available game-level data isn’t sufficient for certain kinds of modeling.

Here’s the process and an explanation of why the advanced data matters.


Regardless of Position, It All Starts with Your Projected Fantasy Player’s Quarterback

It’s referred to as the most important position in sports, and that also applies to modeling fantasy outcomes for skill players. The first thing we consider in determining all player projections regardless of position is how often one of the following outcomes occurs for a specific quarterback: pass, rush, scramble or sack. Instead of doing this at a team level, it’s done at a player level to account for scenarios involving backups.

Some starter-backup pairs have reasonably similar rates, such as the Arizona Cardinals entering the 2022 season with Kyler Murray (55.3% pass, 35.8 rush, 4.7 scramble, 3.2 sack) and backup Colt McCoy (53.3/40.6/3.3/2.6).

And some are used much differently when in the game like Buffalo’s Josh Allen (62.3/30.4/4.9/2.4) and Case Keenum (48.3/45.3/3.6/2.8).

These are still just observed results, but they will of course impact the outcomes for their running backs, wide receivers and tight ends. It sets the stage for a team’s game-level scaling.

The next question we ask is how many passes and how many rushes will occur per team game? This is entirely dependent on the quarterback that will play. The model may allocate the Chicago Bears 31 passes per game, the New Orleans Saints 36 and the Buffalo Bills 42. If we change the QBs on those teams, those numbers also move, as do the number of total offensive plays.

The other baselines are derived from key statistical categories for QBs, pass catchers and rushers. For QBs, it’s fairly obvious stuff like completion percentage, interception percentage, passing TD percentage, yards per completion attempt, yards per carry, yards per scramble and rushing TD percentage. For pass catchers: catch percentage, receiving TD percentage and yards per reception. Rushers: yards per carry and rushing TD percentage.

That’s all observed data. Time for expected data.

Play-by-Play Context Balances Player History with Expectation

On top of those baselines comes a model that considers play-by-play outcomes using variables such as score, time, down, distance and field location. This is the foundation of a predictive model to determine an expected result for given scenarios. This helps bring game state – a huge driver of accurately projecting weekly fantasy outcomes – into play and allows us to better understand average expected positional outcomes, as well as over and underperformance for individuals within team scenarios.

This is done by going back to those initial observed values for each QB against expected results to determine adjusted projections for each category. It’s applicable to every player, filtering down from QBs to their targeted teammates.

If we consider wide receivers, balancing observed and predictive data should allow us to come to more accurate projections for fantasy-relevant categories like catch percentage, yards per reception and TDs per reception rather than using straight historical game-level data.

But that doesn’t matter all that much if we can’t get usage rates right.

Player Usage

How do we actually decide what percentage of targets or touches are going to a specific player? We start with two different baselines. The first is a snap baseline of how often someone is on the field. The second is a target baseline: When they’re on the field, how often are they targeted? This uses observed data, but it’s also very much related to the participation of available personnel because we’re ultimately trying to project a snap percentage for the next game.

Consider the Atlanta Falcons. Let’s say Calvin Ridley is immediately reinstated from suspension. If we play god and make Ridley available, the model will give him snap and target rates and change the values for other Atlanta pass catchers. It would be significant because of Ridley’s high target percentage when he’s on the field, but it would be of different impact for receivers and running backs. Running backs wouldn’t see much of a change in their snap rate, but their target percentage would likely still dip because we’ve put a player on the field who is going to command a higher percentage of targets than other wide receivers that would have been on the field without Ridley.

We’re able to do this rather well because we have differentiated participation and positioning data.

It’s a combination of these first three parts – QB-led team values, adjusted player baselines and player usage – that allowed us to better predict how Matthew Stafford would fit into Sean McVay’s offense for the Los Angeles Rams and ultimately impact our projections for players like Kupp. The result was we were able to confidently refer to Kupp in the 2021 preseason as the player “most undervalued in all of fantasy football.”

That said, fantasy is also a matter of whether the player you’re picking for your lineup can succeed against the defense – and individuals – they’re up against that week.

Defensive Matchup Adjustments

This works at a team and player level, and the player level is similar to the participation model on the offensive side of the ball.

Say J.J. Watt gets hurt. The model will change the share of pass rushes for other defensive tackles on his team. That impacts Arizona’s team pressure rate. At the start of 2022, that means going from not great to slightly worse for the Cardinals and their sack percentage goes down, which means whichever QB is playing them has a higher percentage of plays not resulting in sacks.

That comes full circle to the QB-dependent team values introduced above. Let’s say Stafford has a season-long projected sack rate of 2.5%. Because of Arizona’s pass rush, that might be 2.3% when the two teams play in Week 3. If Watt were to be injured, let’s say that falls to 2.0%. That means the projected offensive plays for the Rams would increase, and the share of touches for Stafford’s targets could also increase.

That level of differentiated player-level data also works its way into the model for defensive backs with the way individual open percentages impact team defense. Consider the Falcons. If Casey Hayward is out of the lineup, Atlanta’s projected open rate against goes from 10th to near the bottom of the league. In Week 2 against the Rams, the thread of impact in our fantasy projections would similarly benefit Stafford and ultimately Kupp.

Because we have specific player rates for individual defensive players, it can drastically change how a team’s defense matches up against an offense, and it ultimately comes through in the projections of every player we project to have a snap against that defense. It eliminates a subjective step of fantasy manager decision-making for selecting a lineup. The idea is to allow a manager to simply look at a projection rather than needing to also look at an injury report. Most fantasy models will have some sort of defensive adjustment built in, but it’s not as common for those to be inclusive of predictive data.

As a fantasy player, you’ve repeatedly been fed statements like:

Team X has given up the second-fewest fantasy points to wide receivers.

That’s observed data, and from that it’s presumptive to conclude:

Team X has given up the second-fewest fantasy points to wide receivers, which means they’ll give up the second-fewest fantasy points to wide receivers this coming week.

We’re not always going to be right, but by going to this level of detail with the model, we’re at least a step closer to being able to make that claim.


Back to 2021. Cooper Kupp and Mike Williams are flying and DJ Moore isn’t far behind. For Kupp, it makes plenty of sense within the model. He’s had great production in his career despite not-so-great quarterback play. For Williams, it makes less sense. He’s got an emerging QB, but there are a few red flags. You probably don’t need a fancy fantasy model to tell you his four TDs in three games won’t be sustainable, but you might need it to tell you his target share in the Chargers offense through three games just doesn’t make sense. The optimist may have accepted that rate as career progression for a QB-WR duo maturing in its second year, but the model wasn’t buying it.

The reality is Week 4 was the worst fantasy week of the season for both Kupp and Williams. But it was worse for one more than the other, and it was more of a sign of things to come for one and an acceptable outlier for the other. Kupp was still targeted 13 times but only caught five for 64 yards without reaching the end zone. Our model went on loving him the next week and even more than it had at the start of the season. Williams caught one of four targets for 11 yards and went on to have six or fewer targets in six of his seven games from Week 4 on. The big games became the outliers as the model expected.

Moore’s stellar start only got better in Week 4, through which he amassed 30 catches, 398 yards and three TDs on 43 targets. They were impressive all-around numbers, and Moore was a different case than Williams in that he wasn’t one to peg as a TD-dependent deep threat due for serious regression. But even after that convincing start, the model didn’t warm up to him.

The targets weren’t the issue. It was catch rate and QB values the model didn’t trust. Moore had Sam Darnold and Co. throwing to him, so his catch rate was inherently going to be lower because of inaccurate QBs. The industry was discussing whether Darnold had been fixed, but because we use longer-term baselines we were less likely to overreact. Through four games, Moore caught 30 of his 43 targets (69.8%). For the rest of the season, he caught 63 of 120 (52.5%). And when catch rates regress to expectation, so does everything else. Fantasy managers and experts may have bit on this one. The model didn’t.