The method
How grading works
Every player grade on this site is computed the same, transparent way, from play-by-play data, not a human watching film and typing in a number. Here's exactly what goes into it.
Why not just use fantasy points or PFF grades?
Fantasy points reward volume — a running back who gets 25 carries for 80 yards on a bad offense scores higher than one who was far more efficient on fewer touches. They also don't care whether those yards came against a good defense, in the fourth quarter of a blowout, or in a tied game with the season on the line.
PFF-style grades try to fix that with manual, subjective grading: a human watches every play and assigns a score. That's more context-aware, but it's slow and expensive to produce, and opaque — nobody outside PFF can see why a player got the grade they got.
This site's grades are built entirely from public, play-level data using formulas anyone can inspect. Same inputs always produce the same grade — no film room, no house grader, no black box.
What a grade predicts, and what it doesn't
We tested the grading formula on the 2021–2025 seasons, which it was never tuned on. Each player was graded on his games up to week 8 only, exactly as this site would have shown him then, and compared with what he did over the rest of that season: 692 player-seasons in all.
| Pos | Rest-of-season fantasy points | How well he played the rest of the way | |||
|---|---|---|---|---|---|
| Grade | Points so far | Grade | Points so far | Raw EPA | |
| QB | 0.37 | 0.63 | 0.35 | 0.35 | 0.41 |
| RB | 0.26 | 0.63 | 0.30 | 0.04 | 0.23 |
| WR | 0.25 | 0.56 | 0.14 | 0.27 | 0.11 |
| TE | 0.24 | 0.52 | 0.30 | 0.28 | 0.28 |
Rank correlation: 1.00 means the order matched exactly, 0 means no relationship. The best in each group is in white. “How well he played” is his grade over the rest of the season, so that half is judged on our own yardstick; “raw EPA” is expected points added per play before any of our adjustments.
A grade is not a fantasy projection. Points per game so far predicted the rest of a season's fantasy points far better at every position, and adding the grade on top of them improved that prediction by less than 1%. Fantasy points follow volume — targets and carries — which holds steady from week to week. A grade measures what a player did with his chances.
Where it earns its keep is quality, most of all at running back. A back's points so far said almost nothing about how well he would run the rest of the season (0.04), while his grade did (0.30). It isn't the best tool everywhere: for quarterbacks, plain EPA per play did slightly better than our grade, and for receivers, points so far did.
Running back and receiver grades carry a lot of noise. Grade a player on the odd-numbered weeks and again on the even ones, and the two agree only 0.14 for backs and 0.13 for receivers, against 0.66 and 0.50 for their points per game. Quarterback grades are steadier (0.41). We tried pulling small samples toward the average to calm them down; it made no difference on seasons it wasn't tuned on, so we didn't ship it.
So use a grade to judge how well someone is playing, and use our fantasy projections to decide who to start. They are built for that, and they are tested the same way.
The building blocks
EPA (Expected Points Added)
How much a play changed the offense's expected scoring outcome, based on down, distance, field position, and time. A 4-yard gain on 3rd-and-3 helps the offense; the same 4 yards on 3rd-and-10 barely moves the needle. EPA captures that difference — raw yardage doesn't.
Success Rate
The share of plays with positive EPA — i.e., plays that actually helped the offense rather than just padding a stat line. Rewards consistency, not just occasional big plays.
CPOE (Completion % Over Expected) — QBs only
A quarterback's actual completion rate minus what's expected given the difficulty of each throw (depth, coverage, pressure). Separates accurate quarterbacks from ones padding completions with easy checkdowns.
WPA (Win Probability Added)
How much a play moved the team's chances of winning the game. Plays late in a blowout barely move win probability, so summing WPA naturally discounts garbage-time stats without needing an arbitrary 'ignore the 4th quarter of a blowout' rule.
Opponent adjustment
Raw EPA doesn't know if a defense is elite or terrible. Before grading, we calculate each defense's season-to-date EPA allowed per play (pass and rush, separately) versus the league average. A player's EPA on a given play is then adjusted up if it came against a stingy defense, or down if it came against a defense that lets everyone move the ball. Beating a top-5 defense counts for more than beating a bottom-5 one.
A defense is judged only on its games against other offenses, so a team's own performance never counts toward the strength of the defense it faced. Early in the season, when a defense has played only a game or two, its record is pulled most of the way back toward average, so the adjustment starts small and grows as the evidence builds up.
From raw numbers to a 0-100 grade
Opponent-adjusted EPA/play, success rate, CPOE (for QBs), and WPA are combined into a single composite score, weighted differently by position — for example, a quarterback's grade leans harder on opponent-adjusted EPA and accuracy (CPOE), while a receiver's leans on efficiency plus target share.
That composite score is then converted to a percentile rank against the players at the same position with a real workload that week or season. A grade of 85 means a player graded better than 85% of those peers over that sample — not an absolute score against some fixed ideal. The best qualified player at a position sits just under 100, and no two players with different performances share a grade. A real workload means, per game his team has played, at least 20 dropbacks for a quarterback, 6 carries and targets for a running back, or 4 targets for a receiver or tight end; a defender needs to have played in half his team's games. Players below that still get a grade, but they aren't ranked, and they aren't part of the crowd anyone else is measured against, so a few plays can't skew it.
Defense grading is different — and less confident
Known limitation
Public play-by-play data attributes EPA and WPA to the passer, rusher, or receiver on a play — not to individual defenders. There's no reliable public data source for "this cornerback's coverage caused this incompletion," which is the kind of judgment PFF pays human graders to make from film.
So instead, defensive grades (DL / LB / DB) use a simpler box-score "impact score": a weighted count of tackles, tackles for loss, sacks, QB hits, interceptions, passes defended, forced fumbles, and touchdowns, percentile-ranked the same way as offense. It rewards productive box-score performances but can't see missed assignments, coverage wins with no target, or a great pass rush that didn't get home. Treat defensive grades as a rougher signal than offensive ones.
Live ratings during games
While a game is in progress, the game page and player pages show a live rating from 1 to 99 next to the season grade. It's a different, simpler calculation, because the EPA and win-probability data behind the season grades isn't available until after the game.
The live rating is built from the running box score. Each player earns points above or below an average performance for their workload, and the total is squeezed onto a 1-99 scale where 50 means an average showing so far. Here's what counts:
Passing
Yards compared with a typical 6.5 per attempt, plus touchdowns, minus interceptions and sacks taken.
Rushing
Yards compared with a typical 4.2 per carry, plus rushing touchdowns.
Receiving
Catches, receiving yards and touchdowns add to a player's rating. Targets that aren't caught count slightly against.
Ball security
Lost fumbles count against a player, whatever position they play.
Defense
Tackles (solo count more than assists), tackles for loss, sacks, QB hits, passes defended, interceptions and defensive touchdowns, weighted like the defensive season grade. Forced fumbles aren't counted, because the game feed doesn't report them.
Kicking and punting
Made field goals and extra points add, and misses subtract more. Punters are compared with a typical 43-yard average, with credit for punts downed inside the 20 and a penalty for touchbacks.
Early in a game most players sit near 50 because they haven't done much yet. The rating moves as production adds up, and a turnover or a big play can swing it quickly.
What the live rating can't see
- It doesn't adjust for the opponent, the game situation or how much a play mattered. A 5-yard gain in a blowout counts the same as one on 3rd-and-4 in a tie game.
- It uses box-score stats only, so offensive linemen and anyone without a stat line aren't rated. Defenders get no credit for coverage that doesn't show up in the box score.
- The game feed runs about a minute or two behind the broadcast, so the numbers trail the action slightly.
The live rating is a snapshot of the game as it unfolds, not a replacement for the season grade. Once the play-by-play data is published, usually within a day, the EPA-based game grade described above appears alongside it and the season grade updates.
College football
College grades use the same method as the NFL: every play's expected points added, adjusted for how good the defense was, ranked against every other player at the position. The play data comes from CollegeFootballData.com, with ESPN's play feed saying who threw, ran and caught the ball. Four things are different.
- Only games against FBS teams count. A power-conference offense against an FCS defense tells us little about either, so those games show in the game log but aren't graded.
- Garbage time is left out: plays with a lead of more than 38 points in the 2nd quarter, 28 in the 3rd, or 22 in the 4th. Blowouts are common in college, and backups piling up numbers against backups would otherwise count like starters.
- No win probability or completion-percentage data. The college play feed doesn't have them, so grades rest on opponent-adjusted EPA and success rate (the share of plays with positive EPA).
- Grades and leaderboards use a minimum workload: every grade is a percentile among the players who meet it, so a few plays can't skew anyone else's. Per game against FBS teams, 14 dropbacks for quarterbacks, 10 touches for running backs, 5 targets for receivers and 3 for tight ends, counted over at least two games. Defenders need to have played in half their team's games.
Defensive grades use the same box-score impact score as the NFL's, minus forced fumbles, which the college box score doesn't record.
FAQ
Why did a player with big stats get a mediocre grade?
Usually garbage time or a weak opponent. A receiver who catches 8 balls for 90 yards in the fourth quarter of a 35-point blowout barely moves the WPA needle, and if it came against a bad defense the opponent adjustment pulls the EPA contribution down too.
Why did a player with modest stats get a good grade?
Efficiency and leverage. A QB who goes 12-for-18 for 140 yards but converts third downs, avoids negative plays, and delivers in a close game can out-grade someone who threw for 300 empty yards.
Are these grades final right after a game ends?
They're computed automatically as play-by-play data comes in and refresh through the week as any late data corrections arrive from the source. Season-to-date grades recompute after every game, and so do earlier game grades, a little: as the season goes on, we know more about how good each defense really is.
Why isn't the season grade just the average of a player's game grades?
The season grade pools every play a player has run so far and grades that total against the qualified players at his position over the same stretch. It isn't an average of game grades, and it will usually sit close to one without matching it exactly. Two things pull them apart. First, busy games count for more: 25 carries say more than 6. Second, a whole season varies less between players than a single game does, so a steady edge over several weeks earns a more extreme season grade than the same edge in one game.
Why is a player's live rating different from their grade after the game?
They measure different things. The live rating counts box-score production as it happens, while the game grade uses play-by-play EPA and win probability, adjusts for the opponent, and is ranked against other players at the same position. It's normal for the two to disagree, and the final game grade is the one that counts.
Where does the underlying data come from?
Season and game grades use public NFL play-by-play and roster data from the nflverse project, which sources from official NFL feeds. The advanced stats on QB, RB, WR and TE pages are NFL Next Gen Stats, also republished by nflverse after games finish. Live scores, plays and live ratings come from a live game feed.