NFL PREDICTOR — HOW IT WORKS
======================================================================================
Every projection here is a forecast for one player in one upcoming game,
produced by a model trained only on games that happened before that game.
READING A PROJECTION
A typical receiving row looks like this:
J.Jefferson (WR MIN) ▃▅▂▇▆ 78 [ 61– 95] 8.0 1.0 18.4
L5 YDS [p25–p75] REC TD FP
YDS The headline projection: the model's median (p50) estimate.
Half the time the real result lands above it, half below.
[p25–p75] The confidence band. The true result falls inside this range
about half the time. A wide band = a hard-to-call player.
L5 Sparkline of the player's last 5 games, scaled to their own
high/low so you see the trend, not the size of the numbers.
REC/TD/… Category-specific projections (receptions, touchdowns, etc.),
each the model's median for that stat.
BOOK The sportsbook consensus line for that stat, when available,
a real-world sanity check against the model. '—' if none.
FP Projected fantasy points under the chosen scoring (see below).
Indented italic notes under a player are the biggest reasons the model
landed where it did, e.g. 'avg 312 pass yds last 3' or 'soft pass D'.
THE DEFENSE SECTION
Team defenses get their own row: projected SACK, INT, and PA (points
allowed), plus FP from standard D/ST scoring (fewer points allowed and
more sacks/turnovers = more fantasy points).
HOW THE NUMBERS ARE MADE
The model is gradient-boosted decision trees (LightGBM). For each stat
it learns three separate predictors: one for the low end (p25), one
for the middle (p50), one for the high end (p75). That's where the
median and the confidence band come from.
It reads roughly 40 signals per player, all of which were known before
kickoff (no peeking at the result it's trying to predict):
Recent form rolling last-3 / last-5 / season-to-date production
Usage snap share and target share: how involved they are
Opponent what that defense has allowed to the position lately
Injuries current-week injury + practice status, live
Game script Vegas spread & total → how many points/plays to expect
Environment home/away, dome, wind, temperature, surface, rest days
Role depth-chart rank and draft pedigree (matters for rookies)
Scheme the offense's pass/run tendencies (see next section)
THE SCHEME SIGNALS
Built from play-by-play data to capture how a team actually plays:
PROE Pass-Rate-Over-Expected. Compares a team's pass rate to what
a league-average team would do in the same situations (down,
distance, score, time). Positive = pass-happier than the
situation calls for; lifts passing, dampens rushing.
Committee The lead back's share of carries. A low share flags a
committee backfield where touches are split, which caps any
single running back's ceiling.
Coach prior When a play-caller changes teams, their known tendencies nudge
early-season volume before the new team has a track record.
ROOKIES & PLAYERS WITH NO HISTORY
A Day-1 starter with zero NFL games has no recent form to read. The
model falls back to the typical profile of past rookies at the same
position and depth-chart role, then self-corrects as real games post.
These rows are baseline estimates and carry no per-stat reason notes.
WHY THE BANDS ARE HONEST
Raw model bands tend to be overconfident (too narrow). We measure the
real hit-rate on held-out games and widen the band until it actually
contains the result ~50% of the time. So a [p25–p75] band means what
it says. That's calibration, checked on the /accuracy page.
FANTASY POINTS
FP rolls the projected stats into one number under your chosen ruleset:
PPR (1 pt per reception), HALF (0.5), or STD (0). Switch with ?scoring=
ppr|half|std. Yards, TDs, and turnovers are scored the standard way.
THE DRAFT COMPANION (/draft)
A fantasy-draft helper built on these projections. It ranks every
draftable player by value over replacement (VOR): not raw points, but
points above the last starter at the position. That prices in scarcity,
so an elite RB outranks a higher-scoring but easily-replaced QB.
A player's base value is its projected per-game fantasy points. QBs are
valued on a median-plus-ceiling blend (passing output is upside-driven),
while RB/WR/TE use the plain median, which ranks those positions best.
Backups are discounted for playing time (a strong QB2 won't see the
snaps), and history-less rookies lean on their draft capital instead.
Tell it your roster slots and it recommends the best pick for your
needs, then the next-best the moment a player is taken. Give it your
snake draft position and it also flags who won't last until your next
pick and which positions to grab now versus safely wait on.
Each row also shows ECR (FantasyPros expert-consensus positional rank)
and Δ — consensus rank minus ours. A positive Δ means we rank the
player higher than the field (a value pick); negative means a fade.
Click any player for a DRAFT VALUE breakdown — the step-by-step math
from raw projection to board value, the drivers, and that ECR/Δ.
Value is projected points per game (every starter plays ~17 games, so
per-game value tracks season value). The board is a preseason snapshot
from Week 1 projections — last year's form plus this year's rosters.
HOW GOOD IS IT?
Accuracy is measured walk-forward: train on past seasons only, then
score a season the model never saw, with no hindsight. We report error
(MAE, in the stat's own units) against a tough baseline: the player's
own last-3-game average. Beating that consistently is the whole game.
See it all broken down by stat and season on /accuracy.
REFRESH CADENCE
Data refreshes daily (rosters, trades, injuries, depth charts, Vegas
lines). The model retrains when new game stats post, and game-day
inactives update every 30 minutes.
--------------------------------------------------------------------------------------
back to projections · accuracy · draft companion · light mode