EPA / play
EfficiencyExpected Points Added: how much a play moved the team’s expected score, given down, distance and field position before and after.
- How it’s computed here
- nflfastR’s expected-points model per play, aggregated from play-by-play over scrimmage plays only — kneels, spikes and two-point tries excluded. League average sits near +0.015 per offensive play.
- How to read it
- The best offenses live above +0.10; the worst below −0.10. Defensive EPA is points *allowed* per play, so lower is better there.
- Caveat
- Not adjusted for opponent on stat sheets. The model’s Net Rating is the opponent-adjusted version.
Appears in: Stats · Team pages · Explore · Matchup edges
Success rate
EfficiencyShare of plays that were successful — kept the offense on schedule.
- How it’s computed here
- nflfastR’s indicator: a play is a success when its EPA is positive. League average ≈ 44%.
- How to read it
- A consistency measure. High success with low explosive rate = methodical; the reverse = boom-or-bust offense.
Appears in: Stats · Team pages · Explore
Explosive-play rate
EfficiencyShare of plays gaining chunk yardage.
- How it’s computed here
- Passes of 20+ yards and rushes of 10+ yards, over all scrimmage plays.
- How to read it
- Explosives correlate with scoring more than steady gains; defenses that prevent them force long drives.
Appears in: Stats · Team pages
CPOE
EfficiencyCompletion Percentage Over Expected — accuracy adjusted for throw difficulty.
- How it’s computed here
- Actual completion minus nflfastR’s expected completion probability per throw, averaged over attempts.
- How to read it
- Positive means completing throws harder than the average QB completes. One of the more stable QB skill signals.
Appears in: Stats · Passing · QB form in the model
PROE
EfficiencyPass Rate Over Expected — play-calling intent versus what the situation predicts.
- How it’s computed here
- Actual pass/rush choice minus nflfastR’s expected pass probability per snap, averaged.
- How to read it
- Positive = passes more than situations suggest. Identity, not quality — pair it with EPA to see if the identity works.
Appears in: Stats · Passing · Explore
Pace (sec / snap)
EfficiencyHow quickly the offense snaps the ball.
- How it’s computed here
- Clock elapsed between consecutive snaps of the same possession, keeping only 0–60 second gaps (filters kneel-outs, quarter breaks, two-minute chaos). 2025 spans 26.6 (fastest) to 31.9 (slowest).
- How to read it
- The totals bettor’s tempo stat: fast pace = more plays = more scoring chances for BOTH teams. Lower number = faster.
Appears in: Stats · Offense · Explore
Pressure rate (proxy)
EfficiencyHow often the QB was hit or sacked per dropback.
- How it’s computed here
- (sacks + QB hits) ÷ dropbacks. Labelled a proxy because true pressure charting (hurries) is not in the public feed.
- How to read it
- On defense, higher is better. On offense (allowed), it is a pass-protection read.
- Caveat
- Undercounts pressures that produce neither hit nor sack.
Appears in: Stats · Defense · Matchup edges
Points / drive
EfficiencyScoring output per possession — efficiency with the game’s natural unit.
- How it’s computed here
- Drive outcomes valued (TD ≈ 6.95 with the average conversion, FG 3, safety −2), divided by drives.
- How to read it
- League-best offenses exceed 2.5; best defenses hold under 1.6.
Appears in: Stats · Matchup edges
Spread / line
BettingThe market’s handicap: expected margin between the teams.
- How it’s computed here
- Historical lines are closing spreads from the nflverse schedule, home-team convention (DEN −9.5 = Denver favoured by 9.5).
- How to read it
- Covering means beating your own number, not winning the game.
Appears in: Everywhere a game is shown · Edge
ATS record
BettingAgainst The Spread: wins-losses-pushes when results are settled against the closing line.
- How it’s computed here
- Team margin minus its own spread per game; positive covers, zero pushes. League-wide ATS wins always equal losses — this product asserts that invariant in its test suite.
- How to read it
- 52.38% is break-even at standard −110 juice. Descriptive, not predictive — last year’s cover rate does not persist.
Appears in: Stats · Against the spread · Team betting profile · Game rivalry block
Key numbers
BettingMargins where NFL games disproportionately land, because scoring comes in 3s and 7s.
- How it’s computed here
- Fitted from 6,967 games since 1999: a margin of exactly 3 occurs 15.0% of the time — 9× more than margin 9. The model re-weights a smooth curve by these factors (w(3)=2.79, w(7)=1.85, w(9)=0.50).
- How to read it
- Half a point around 3 or 7 is worth several times more than around 5 or 9.
Appears in: Game pages · the lattice chart · Edge · spread board
Push probability
BettingChance the game lands exactly on the spread, refunding spread bets.
- How it’s computed here
- The model’s probability mass on the whole-number line. At a spread of exactly 3, observed pushes run ≈8.7%; this model prices 7.3%; a smooth normal says 2.7%.
- How to read it
- Only whole-number lines can push. High push mass is the argument for buying the half point.
Appears in: Game pages · Edge
½-point at risk
BettingHow much outcome probability flips if the line moves half a point against you.
- How it’s computed here
- On a whole number: the push mass that becomes a loss. On a half number: the win mass that becomes a push. NOT the change in cover probability — that is zero on whole numbers, which is precisely where the half point matters most (a bug this product shipped and documented).
- How to read it
- Highest on key numbers. 7%+ at 3; near 2% on numbers like 5.5.
Appears in: Edge · spread board · Game pages
Vig / hold
BettingThe bookmaker’s margin baked into prices.
- How it’s computed here
- Sum of implied probabilities minus 100%; ≈ 4.5% on a standard −110/−110 pair. Removed multiplicatively before any model-vs-market comparison.
- How to read it
- The tax you must beat. It is why 50% ATS loses money.
Appears in: Edge · Methodology
Over/Under (total)
BettingThe market’s expected combined score.
- How it’s computed here
- Closing totals from the schedule feed; team O/U records settle actual combined points against them.
- How to read it
- Pace and points-per-drive are the underlying drivers; weather suppresses.
Appears in: Game cards · Stats · betting splits
Model margin
ModelThis product’s expected final margin, home perspective.
- How it’s computed here
- Opponent-adjusted net EPA difference × 15.1 points, + era-fitted home field (1.71 pts for the 2020s, down from 2.56 in the 2000s), + QB adjustment, + rest. Every constant fitted walk-forward — no game predicted with data from its own future.
- How to read it
- Always shown with an (est.) marker. The component breakdown on game pages shows where the number comes from.
- Caveat
- The closing line beats this model (10.26 vs 11.06 MAE). Where they disagree, the market is usually right — stated on the Edge page, measured over 5,067 games at 49.93% ATS.
Appears in: Game cards · Game pages · Edge
Net EPA rating
ModelA team’s opponent-adjusted strength in EPA per play.
- How it’s computed here
- Offense and defense solved jointly by iterative adjustment (who you played matters), recency-weighted with a 6-week half-life, regressed toward a 45% carry-over of last season by sample size.
- How to read it
- +0.10 is elite; the rating × 15.1 is roughly the point-spread value of the team.
- Caveat
- Preseason ratings are pure carry-over priors and are labelled as such.
Appears in: Team pages · Stats · Overview · Model margin
QB adjustment
ModelLine movement for who is actually starting at quarterback.
- How it’s computed here
- Starter-vs-established EPA/dropback gap × 32 points, after each QB is regressed to league average by dropback volume (small samples span −0.99 to +0.74 EPA/db — four times the spread of real signal). Clamped at ±10.
- How to read it
- The single largest routine shock to a line; a star-to-backup swap is worth about a touchdown.
- Caveat
- Not covered by the backtest — testing it honestly would require week-by-week QB form the archive does not carry. Stated on the methodology page.
Appears in: Game pages · component breakdown · QB watch
Win probability
ModelChance of winning at any moment of a game.
- How it’s computed here
- nflfastR’s in-game model per play (score, time, field position, timeouts), drawn as the game-flow chart.
- How to read it
- The area between the line and 50% is dominance; sharp cliffs are the season-turning plays.
Appears in: Game pages
Playoff odds
ModelProbability of making the field, winning the division, or earning each seed.
- How it’s computed here
- 10,000 simulations of every remaining game — sampling full scores, not just winners, because the tiebreakers need points — with the complete cascade applied in every simulated season.
- How to read it
- A team “at 62%” misses in 4 of 10 simulated futures. Preseason odds are priors and move fast.
Appears in: Standings · Team pages · Division pages
PPR / Half / Standard
FantasyThe three scoring formats: 1, 0.5 or 0 points per reception on top of yardage and touchdowns.
- How it’s computed here
- Points come from nflverse directly, never re-derived — so they cannot drift from the reference. Half-PPR is exact: PPR minus standard equals receptions.
- How to read it
- Format changes player order materially; the board re-ranks per format.
Appears in: Fantasy board · Player pages · Compare
VOR
FantasyValue Over Replacement — points above the player you could have started instead.
- How it’s computed here
- Per-game points minus the last starter’s at the position in a 12-team league (QB12 / RB24 / WR36 / TE12 / K12), times games played.
- How to read it
- Why a top TE outranks a better-scoring WR: scarcity at the position is the value.
Appears in: Fantasy board
Tiers
FantasyGroups of players separated by real production gaps, not adjacent ranks.
- How it’s computed here
- A new tier opens where the per-game drop to the next player exceeds 2.2× the average drop (and at least 0.6 points).
- How to read it
- Draft by tier boundary: missing #7 costs little if #8 shares the tier, a lot if he does not.
Appears in: Fantasy board
Target share / WOPR
FantasyShare of team targets; WOPR blends target share and air-yards share into one opportunity number.
- How it’s computed here
- From nflverse weekly data. WOPR = 1.5 × target share + 0.7 × air-yards share.
- How to read it
- Usage is far stickier week to week than production — the most reliable forward signal in fantasy. Rising target share over the last 3 games flags the trend arrows.
Appears in: Fantasy board · Player pages · Compare
Startable / boom / bust
FantasyShare of games above a startable line, at ceiling, or at dud level.
- How it’s computed here
- Position-specific PPR lines, stated so you can disagree: startable QB 18 / RB 12 / WR 12 / TE 9; boom QB 25 / RB‑WR 20 / TE 16; bust QB 12 / RB‑WR 6 / TE 4. Only games with real involvement count — a healthy scratch is not a bust.
- How to read it
- Two players with equal averages can be a weekly anchor and a coin flip. This is the difference.
Appears in: Fantasy board · Player pages
Defense vs position
FantasyFantasy points a defense allows to each position, per game.
- How it’s computed here
- Every player-week grouped by the defense that faced it; rank 1 = stingiest of 32.
- How to read it
- The matchup grid behind props and start/sit calls.
- Caveat
- Schedule-dependent — a defense that faced three elite TEs looks leaky to TEs.
Appears in: Stats · props section
Seeds & tiebreakers
StandingsPlayoff order: four division winners then three wild cards per conference (since 2020).
- How it’s computed here
- The league’s full cascade as written: head-to-head, division record, common games (min. 4), conference record, strength of victory, strength of schedule — with wild cards selected iteratively and the sweep rule for 3+ teams. Validated against ground truth: reproduces the actual playoff field in 27 of 27 seasons since 1999.
- How to read it
- The small grey note under a team names the exact rule that decided its position.
Appears in: Standings · Division pages
Strength of victory
StandingsCombined record of every team you beat.
- How it’s computed here
- Win percentage across beaten opponents’ full seasons; a late-cascade tiebreaker.
- How to read it
- Why beating good teams matters twice.
Appears in: Tiebreaker notes
The (est.) marker
Reading the productThis number is modelled, not observed.
- How it’s computed here
- Attached to every derived figure: model margins, ratings, playoff odds, win probability.
- How to read it
- An unmarked number happened; an (est.) number is an estimate with error bars in spirit.
Appears in: Everywhere
Percentiles & distribution strips
Reading the productWhere a value ranks — and the league’s shape around it.
- How it’s computed here
- Ranked against the teams or players that actually played that season (31 teams before 2002, never a hardcoded 32). The histogram strips show whether a 78th percentile sits in a pack or on an island.
- How to read it
- No games yet = no percentile shown, never a fake “0th”.
Appears in: Team pages · Player pages
Prior-season fallback
Reading the productBefore kickoff, player pages and the board show last season’s production under a visible banner.
- How it’s computed here
- Identity (team, headshot) from this season’s roster; production from last season; ratings carry 45% of last season as a labelled prior.
- How to read it
- Carry forward what is known, label it, never present absence as zero.
Appears in: Fantasy board · Player pages · Preseason standings
Model vs market disagreement
Reading the productThe gap between this model’s margin and the closing line — shown as analysis, never as a tip.
- How it’s computed here
- Backtested directly: sides the model preferred covered 49.93% over 5,067 games; 52.38% is break-even. An earlier version flagged “value bets” from this gap; it fired on 91.7% of selections and lost money, so it was removed.
- How to read it
- A model disagreeing with a sharper market is usually evidence the model is wrong. This product says so on its own betting page.
Appears in: Edge · Game cards · Methodology