Methodology

Drops is the NFL counterpart to Whiffs, applying Tom Tango's projection-evaluation principles the same way Bricks does for basketball.

Separate playing time from rate stats

Passing, rushing, and receiving are separate pools. A player can appear in more than one. Passing volume is attempts. Rushing volume is carries, including quarterback rushes. Receiving volume is targets.

Rates use the narrowest denominator on which the event can happen. Passers are scored on completion percentage, yards per completion, touchdowns per completion, and interceptions per attempt. Rushers are scored on yards per carry and touchdowns per carry. Receivers are scored on catch rate, yards per reception, and touchdowns per reception. Yards and touchdowns sit on completions and receptions, so those rates stay separate from completion percentage and catch rate. An interception does not require a completion, so interceptions stay per attempt. The NFL.com leaderboards do not publish games played, so games are not a volume stat.

Adjust for league context

Drops subtracts the opportunity-weighted league average from each projected and actual rate before measuring error, then reports raw, league-adjusted, and opportunity-weighted league-adjusted MAE and RMSE.

Weight by opportunity

An error for a 12-carry back matters less than the same error for a 300-carry back. Weighted league-adjusted metrics use actual attempts, carries, or targets as weights.

Include unprojected players at league average

If a player appears in actuals but not in a projection system, Drops assigns 30 attempts, 10 carries, or 8 targets, and league-average rates. Each figure is about the average volume among players who recorded that stat and were absent from the projection.

Actuals

Season totals come from the NFL.com passing, rushing, and receiving leaderboards. Those pages repeat after the second screen, so each sortable column is collected in both directions and each player is kept once. Each player is stored under the nfl_slug from the player link.

Projections

ESPN, Sleeper, FFToday, and FantasyPros season-long projections are scored when that season's actuals exist. Each file is football/projections/{prefix}_{season}.csv (for example espn_2024.csv for ESPN). Joins use nfl_slug from ffb_ids, translated from each site's player id. An older id that is missing from the crosswalk is filled in when the player name matches one slug. A stat the system does not publish is left out of that comparison. FFToday and FantasyPros do not publish targets, so they are not scored on targets or catch rate, but they are still scored on yards and touchdowns per reception.

Fantasy pages

The fantasy pages ask a narrower question: how accurate were projections for players who actually played a lot? The cuts are 300 pass attempts, 100 carries, and 50 targets. The stats are the same rates, not fantasy points.