Read The Report

Every number on this site comes from a real model trained on real NFL data. This page explains what everything means, in plain English, plus a full glossary of every column you'll see.

The four positions this site covers

QB = Quarterback, the player who throws (and sometimes runs) the ball. RB = Running Back, who mostly runs the ball and catches short passes. WR = Wide Receiver, who mainly catches passes, often downfield. TE = Tight End, a hybrid role that both catches passes and blocks. Every table on this site is organized around these four.

The two bands: Projected and Context

Every table on the site is split into two labelled bands, and they answer different questions.

Projected is the model's forecast for this game — fantasy points and the counting stats underneath them. These are shaded against the player's own recent pace. Blue means we expect more from him than he has been producing; red means less. Nobody else's numbers enter into it.

Context is everything that explains the forecast — snap share, matchup, touchdown probability, red-zone work, target depth, depth-chart spot. These are shaded against everyone else playing this week at his position. Blue means he ranks well among that group; red means poorly.

That distinction matters more than it sounds. A backup can be blue right across the Projected band — he is projected well above his own quiet recent pace — while being red right across Context, because compared with the rest of the league he is still a backup. Both readings are true, and the split is there so you can see both at once instead of one of them quietly overwriting the other.

Reading the colors

Inside the Projected band, shading is per stat, not per player — a QB can show blue for passing yards and red for interceptions in the same row. For interceptions specifically, blue means fewer projected than normal, since fewer turnovers is the better outlook.

Inside the Context band, the middle of the field is neutral and the colour builds out towards the edges: only players genuinely near the top or bottom of their position get strong colour.

FPTS carries the projection on the first line and the likely range under it, so the number and its uncertainty are read together rather than three columns apart.

The player's name is coloured too, and it means something different from every other colour on the page: it is how much history the trailing numbers rest on. White is a full season or more behind them. Grey is about half a season. Gold means only three to seven games — thin. A muted red means fewer than three, which is barely a sample at all. It is not a judgement of the player; it is a judgement of how much the numbers beside him are worth.

Best plays sits in each team's header card: the three players on that side most worth a look, ranked by projected points relative to their own position blended with Matchup Score, 60/40. Relative to position is what makes a mixed list possible — 17.8 points is an ordinary week for a quarterback and an enormous one for a tight end, so ranking raw points would just nominate three quarterbacks every week. A tight end at 5.9 can outrank a receiver at 11.7 for the same reason.

Two things worth being upfront about. The 60/40 split is a reasoned choice, not a backtested one; and Matchup Score already contains the player's own recent volume, so volume counts twice, softly, which tilts the list toward high-usage players. That is why the card shows the projection and the matchup score beside each name rather than one blended number — you can disagree with the order on the evidence.

Each position box shows the top twelve of whatever is sorted, not a fixed twelve reshuffled — change the column and the set of players changes with it.

Tap any row to open it. The detail panel carries the floor and ceiling, the sample size, his team's Vegas-implied total and pace, and the opponent's ranks — the numbers that matter sometimes, without spending permanent width on a table you already have to scroll sideways.

Understanding Matchup Score

A real 0-100 score for how favorable this specific player's opportunity is this week — not just “is the defense bad,” but “is this player actually positioned to exploit it.” Two players on the same team facing the same defense can have very different Matchup Scores if one of them barely plays.

It combines the defense's real difficulty (what they actually give up to this specific position — yards and touchdowns, not one overall rank) with the game's Vegas-implied scoring environment, then scales that by the player's own recent volume.

The weights aren't guesses. Tested across 17,348 real player-weeks, this version correlates 0.539 with actual fantasy points, up from 0.445 for the original formula — about 21% better. The biggest single finding was that volume matters roughly twice as much as originally assumed: a low-volume player in a great matchup deserves to be pushed well down, not held near the middle.

Understanding Anytime TD %

The real probability a player scores at least one touchdown this week — not a raw projected count. Converted from the model's projected TD mean via the Poisson distribution (the standard way to make this conversion): 1 minus e to the power of negative the projected mean. For running backs and wide receivers, rushing and receiving TD chances are combined into one number, since an anytime-TD bet doesn't care which way they got in. For quarterbacks, only rushing TDs count toward their own odds — a passing touchdown is thrown, not scored by the QB. The projected mean comes from his projected workload — carries and targets — times how often players at his position score per touch, which ranked players better than projecting touchdowns directly. Checked on 54 weeks of real results (2023–2025): take one player who scored and one who didn't, and it had the scorer higher about 71% of the time. From 20% up the numbers match how often players actually scored. Below 20% they run about 3 points high: players given 10–20% scored about 12% of the time, not 15%.

Since 10 October (Week 5, from the Sunday games on) two more things go into it. Goal-line work right now:a quarter of the goal-line part comes from his share of his team's runs inside the 5 over its last eight games, so the back getting those carries today counts for more than career history alone. The team's touchdown budget: each team's chances are nudged part of the way toward the touchdowns its Vegas total points to, up or down. On the same 54 weeks this improved the score against the base rate in every season (9.4% to 9.8% in 2025, the season it wasn't fitted on) and ranked scorers slightly better. The accuracy record grades it as its own line, never mixed with the earlier version.

The projection and the range (Low / High)

Every stat comes with a projection plus a Low and High. That range isn't a guess — it's built from how wrong this exact model has actually been, tested on real weeks it never saw during training.

In backtesting it was an 80% range — the result landed inside it about four times in five. This season it has caught between 61% and 72% of results a week through Week 4 (66%, 68%, 61%, 72%), so for now read it as closer to a two-in-three range. Until enough of the season has been scored to say, the range is labelled simply as the likely range rather than carrying a number it hasn't earned yet. The real figure goes back on the label once it is measured rather than assumed.

A tight range means the model has been reliably accurate for this type of player. A wide range is an honest “this could go either way” — often because the player is in a role with more inherent uncertainty (a backup, a rookie, a committee back).

First-quarter usage

The 1st Quarter tab on each matchup is deliberately the odd one out: it contains no projections at all. It is a record of how each offense has actually opened games and who has been on the field for it — plays run, pass rate, and each player's first-quarter touches.

The row that does the most work is Script gap: first-quarter pass rate minus full-game pass rate. A team well above zero opens through the air and settles down later; one well below opens on the ground. That is the scripted portion of the game plan, and it is not visible anywhere else on the site.

Q1 TD % is built from first-quarter volume and the league touchdown-per-touch rate, exactly the way Anytime TD % is built — not from how often a player has actually scored in a first quarter. That version looks more authoritative and is mostly noise: five first-quarter touchdowns in seventeen games reads as 29%, but the honest range around five-of-seventeen runs from roughly 10% to 56%.

The player columns on that tab are shaded the same way the Context band is — against everyone else at the same position, not against the other players in this game. So a receiver with 1.9 first-quarter touches can be a deeper blue than a running back with 2.0, because those are very different numbers for the two roles. All Touches is left unshaded on purpose: it is there as the denominator that makes Early Share readable, not as a verdict on anybody.

How accurate is this, really?

We track this openly. Every week, we compare projections against what actually happened and publish the real results — not cherry-picked good weeks.

How fantasy points are calculated

This site uses PPR scoring by default — short for “Points Per Reception,” meaning a player earns a real point just for catching a pass, not only for the yards or touchdown that follow. The full breakdown: 1 point per 25 passing yards, 4 per passing TD, -2 per interception; 1 point per 10 rushing/receiving yards, 6 per rushing/receiving TD; 1 point per reception.

Play a different scoring format? League Settings lets you match your real league's rules, and every FPTS number on the site updates automatically.

Other things you'll see

Status — this week's real injury designation. Out and Doubtful players are already zeroed out.

NEW badge — this player has zero career games logged (a genuine first-time call-up: practice-squad promotion, waiver signing, never-played rookie). Their row uses a real draft-capital debut-game baseline instead of the main model — treat with extra caution.

On bye — named beside the matchups at the top of the page. Teams with no game this week are left off the board entirely, so their players don't appear in any table, ranking or color, and they aren't counted in the accuracy record for that week.

Full column key

Every stat and column you'll see on the site, grouped by what it's telling you.

Player Info
Status
Real, current availability from the NFL injury report, refreshed several times a week. Healthy, Questionable, Doubtful or Out, plus DNP and Limited from the practice report with the reason beside them. Out and Doubtful zero a projection -- since 2023, 1 in 93 fantasy-relevant players listed Doubtful actually played. Questionable does not: about 70% of them play, and a player who sat out practice without a designation usually plays. Players on a season-long reserve list -- injured reserve, PUP, non-football injury, suspended -- are left off the board entirely rather than listed at 0.0.
Depth marker
The small DEPTH 1 / 2 / 3 badge under a player's name: where his own team lists him at his position on the latest published depth chart. DEPTH 1 is the listed starter, and nothing is shown past third or for a player his team has not listed. It is a listing, not a workload -- Buffalo lists Ray Davis ahead of Ty Johnson while Johnson plays more of the snaps, which is what Snap % is for. Rebuilt from the live feed each week rather than carried over from the model export.
Backup (quarterbacks)
A quarterback who is not expected to start this week. His row stays on the board but in grey, below the players who are expected to play, and he is left out of positional ranks, colours and the league-wide lists. The number shown is his projection IF he starts -- the model projects every player as though he will play, and in Week 2 only 9 of 51 backup quarterbacks took a snap. The starter is decided from the depth chart, who started the team's last game, and the injury report, and it is re-checked every three hours from Wednesday evening to Monday night: if a starter is ruled out, his backup's row turns back to full colour on the next update, tagged STARTING (for example, STARTING · Daniels out). His projection stays his own, built from his history rather than the injured starter's workload.
Greyed-out rows
Two kinds of player are shown in grey instead of blue and red: backup quarterbacks (see Backup above) and players ruled Out or Doubtful. Their projection is shown as 0.0, and colouring those zeroes against his usual average would paint the row deep red -- which reads as a bad play, when the truth is he is not playing. The status itself stays in bold red, and those rows sit at the bottom of each table.
NEW STARTER EST and STARTER EST tags
On a starting quarterback the model has mostly seen as a backup. NEW STARTER EST: two or fewer career starts -- an undrafted rookie thrown in, a third-stringer promoted. STARTER EST: up to four career starts, or a starter who has started two or fewer of his last five games (a backup returning to the job). The model projects him from his own recent history, which is mostly mop-up snaps, and on 2023-2025 it under-rated such starters by about 5 points a game. So his projection -- points, stat line, range and Any TD % -- puts 65% of the weight on a better base: for NEW STARTER EST, what quarterbacks from the same draft tier have scored in their first starts (Round 1 about 15, Round 2 about 15, Round 3 about 11, Round 4-7 or undrafted about 12); for STARTER EST, his own average in his past starts. Across 216 such starts that cut the average miss from 7.1 to 6.1 points, better in every season.
ROLE UP tag
Shown on the running back or wide receiver next in line when a starter at his position is ruled Out or Doubtful, or has just been moved to injured reserve. His projection is raised by a share of the starter's recent scoring -- the top two remaining backs 15% and 13%, the top two remaining receivers 15% and 12% -- and the stat line and Any TD % scale with it. Measured on 2023-2025, the players who inherited a starter's role beat their projections by 2 to 3.5 points on average; a lead back's replacement ran about 3 more times than projected. Checked on the 2025 season, which the rule was not fitted on: of the start/sit calls it changed, the bumped player won 59%. Tight ends were tested and are not adjusted -- it made those calls worse. It applies only when the starter has been playing (after two missed games the backup's own recent numbers already show the bigger role), and it disappears if the starter is upgraded.
Projection Type
'model' is the real trained model's output. 'draft_baseline_new_player' means the NEW badge applies -- see above.
Age
Real age, computed from birthdate.
Name colour
How many games sit behind this player's trailing numbers. White = a full season or more. Grey = about half a season. Gold = three to seven games, thin. Muted red = under three, barely a sample. It rates the evidence, not the player.
Verdict Scores (0-100 scale)
Matchup
This player's own real opportunity this week -- see "Understanding Matchup Score" above.
Any TD %
Anytime touchdown probability: the real chance of scoring at least one TD this week -- see "Understanding Anytime TD %" above.
Matchup Context
Game log
At the bottom of a player's panel (tap or click his row): his last 5 regular-season games, game by game -- the same 5 games his pace and recent averages on the board come from, so you can see what an average is made of. Snap % is averaged over his last 5 games on the field, so a game where he played but recorded no stats (shown as its own row) counts toward it, and the average row shows the board's exact figure. Early in the season those reach back into last year; last season's games sit under their own divider, with his old team named if he has moved. Weeks he missed get their own row, so a gap never reads as a zero. Once he has played more than 5 games this season you can show all of them. Stats only, updated every Tuesday, with last season's per-game averages underneath.
Snap %
Share of his own offense's snaps he has been on the field for, trailing. The first thing to check on any row: a great matchup is worth nothing to a player who plays a third of the downs.
Opp Def Rank
1-32, position-specific: how this opponent defends players at this exact position. 1 = toughest defense, 32 = easiest, the way a rank is read everywhere else in football. Shown in each position table's own header, because it differs by position.
Vegas Total
His own team's Vegas-implied score for this game. Shown once per team in the game header rather than repeated down every row, since it is identical for the whole team.
Team Pace
Plays run per game by his own offense, trailing. Also in the game header, for the same reason.
Opp Total/Run/Pass Def Rank
1-32, team-level, independent of position: this opponent's overall, run, and pass defense, on the same scale -- 1 = toughest. In the row detail panel and on the Defense Tendencies tab.
Head-to-Head Avg
This player's own real career average vs. this exact opponent, with real career meetings in parentheses.
Average starter
In each position table's header: the average projection of the top 12 QB, 24 RB, 36 WR or 12 TE this week -- the pool a 12-team league actually starts from. A projection above it is a starter-level week at that position.
Recent Form & Trends
Low / High
The likely range for a projection, built from the model's real past errors -- see above. On the desktop tables it is also drawn as a small bar under FPTS: the blue band runs from low to high and the white tick is the projection, on one scale per table, so a wide bar really is a wider range of outcomes.
vs Pace
This week's projection against the player's own pace -- his average fantasy points over his last 5 games played (games he missed are skipped; games he left early count). Shown as an arrow and a percentage, capped at 50%+ either way: past that point a bigger gap told us nothing more. The colour is not the size of the gap but how often a gap that size came true, measured on 2023-2025 (did he score more than his pace?): projected 50%+ above, about 65% did; 15-50% above, 55-57%; within 5%, 42%; 15-30% below, 30%; 30%+ below, 20%. Grey where it was close to a coin flip, and for any projection within 5% of his pace. The down arrows are the stronger calls, and the shading says so. Why 'within 5%' still leans below: fantasy scores are lopsided, a few big games pull an average up, so a typical week lands a little under it. Why not drop games he left early: tested on ten seasons, the pace with them left in was the better forecast every season -- players do not, on average, bounce back to their full-game level. Read it as context for the projection -- how far the model is departing from his recent form -- not as a second forecast. Not shown for a pace under 5 points, rookies without games, backup quarterbacks or players ruled out.
Touches
Projected carries + targets this week, for backs, receivers and tight ends -- the first column in the stat line and on every phone card. Volume is what a lineup decision turns on. Shaded against his own recent carries + targets, like the rest of the Projected band.
Share
Season-to-date share of his team's work: carry share for a running back, target share for a receiver or tight end. Coloured by rank within his position. Season-to-date, so early in the year it rests on only a few games.
xFP/g
Expected fantasy points per game (PPR) from the opportunities he has actually had: what an average player would have scored from the same carries and targets -- carries by where on the field they came, targets by field position and how far downfield they were thrown. It is what his usage is worth, independent of how the dice fell -- a player whose real points sit well below his xFP/g has been unlucky rather than bad. Season-to-date, coloured by rank within position.
TGT SHARE tag
On the phone cards: his share of team targets over recent games is 3 or more points above (▲) or below (▼) his season rate, shown once he has three games. It is context, not a signal -- on its own this trend has not predicted next week's points, so the projection does not use it.
aDOT
Average Depth of Target: real average air yards per target, trailing -- separates possession receivers from deep threats. Abbreviated on the board to keep the column narrow.
Trend
Share Trend: the real percentage-point swing in this player's share of team targets, rising or falling, not just a flat average.
RZ Tch
Red Zone Touches: real red zone carries + targets, trailing -- distinguishes goal-line workhorses from players with volume everywhere except the red zone.
1st Quarter tab
Plays run in the 1st quarter
Offensive plays this team has run in first quarters, per game.
Pass rate, 1st quarter / full game
Pass attempts as a share of plays, first quarter and then all game.
Script gap
First-quarter pass rate minus full-game pass rate. Positive means this offense opens through the air relative to how it finishes; negative means it opens on the ground.
Games with a 1st-quarter TD
Share of games in which this offense scored a first-quarter touchdown. An observed rate, not a derived one -- a team gets one such trial per game, so a season is a usable sample.
Q1 Touches
Carries + targets in first quarters, per game.
Q1 Share
His share of everything his offense ran in the first quarter.
Early Share
What fraction of his own full-game work arrives in the first quarter. Four quarters means roughly 25% is neutral. Read it as a description of games already played, not a forecast — tested on the 2025 season, a player's early share in one half of a year barely relates to his other half, and at low volume it degenerates completely: one touch, taken early, reads as 100%. Q1 Touches is the reliable number on that tab.
Q1 TD %
Probability of a first-quarter touchdown, derived from first-quarter volume and the league touchdown-per-touch rate -- not from how often he has actually scored in a first quarter, which is far too small a sample to publish.
Defense Tendencies tab (the opponent's real numbers)
Blitz Rate (per play)
How often this defense sends extra pass rushers, measured per play with runs included. That is why it reads lower (league average about 13%) than blitz rates published per dropback, which usually sit around 25-35%. Compare it with the league average beside it, not with a figure from another site.
Box Count
Average defenders in the box against the run.
QB Forced Out of Pocket
How often the opposing quarterback ends up outside the pocket against this defense, per play with runs included (league average about 10%). A pass-rush signal, but NOT the 'pressure rate' published elsewhere, which counts hurries, hits and sacks per dropback and runs around 30-35%. Shown as 'QB out of pocket' in the DST outlook.
Red Zone TD Rate Allowed
Real rate that opponent trips inside the 20 end in a touchdown.
3rd Down Rate Allowed
Real third-down conversion rate allowed.
Yards Per Play Allowed
A pace-normalized version of total defense.
Explosive Play Rate Allowed
Real rate of 20+ yard plays given up.
Sack Rate
Real sacks per real dropback.
DST outlook
The top of the Defense tab, and the Defenses this week list on the home page: should you start this defence? Every defence is ranked by the points the offence it faces is expected to score (its Vegas-implied total), lowest first -- the biggest single driver of a defence's fantasy week. Beside it: how often it forces the quarterback out of the pocket, how often the opposing quarterback ends up there, sack rate, takeaways, yards per play allowed, the opposing quarterback (tagged when he has two or fewer starts for his team) and the wind. In that block blue favours the defence. Ranks 1-8 are marked Strong start, 9-16 Streamable, the rest Tough week. It is context, not a projection -- there is no DST points model on this site, because defensive scoring varies too much from league to league to publish one number.
Offense Tendencies tab (this team's own real numbers)
Play-Action Rate
How often this offense uses play-action.
Motion Rate
How often this offense uses pre-snap motion.
QB Forced Out of Pocket (allowed)
How often this team's own quarterback ends up outside the pocket, per play with runs included -- a pass-protection signal, and not the same as a published pressure rate (see the Defense tab entry).