SIScoutIndexNFL Data

ScoutIndex models

Methodology

Every model is published in full and built from public nflverse data. A formula change ships as a new version — existing numbers are never edited after the fact.

The ScoutIndex Rating · scoutindex-rating-v1

One number, 20–99, per player per regular season. It is position-relative: every rating compares a player only to others at the same position that season. It is built entirely from public nflverse / nflfastR data — no proprietary charting. The backbone is EPA (expected points added), blended with volume and a few position-specific rate stats.

The scale

overall = clamp( 60 + 13 · composite_z , 20 , 99 )

RatingMeaning
~60league-average qualified starter
~75clear starter, fringe Pro Bowl
85+All-Pro tier
95+historically dominant season
below ~45replacement level

How a component becomes a number

  1. Aggregate the player's weekly regular-season rows into season totals and rates.
  2. Shrink each rate toward the cohort mean by sample size: x_adj = (n·x + k·μ) / (n + k). This stops a backup QB with 12 great throws from topping the list. Volume stats aren't shrunk.
  3. z-score across the cohort. Stats where lower is better (INTs, fumbles) are negated.
  4. Weighted-average the z-scores. A component whose stat doesn't exist for a player (e.g. CPOE before 2006) is dropped and the rest renormalized.

QB — qualify: 8 games & 224 attempts

ComponentMetricWeight
Dropback efficiency(passing EPA + rushing EPA) / dropbacks0.34
Total EPApassing EPA + rushing EPA0.24
AccuracyCPOE — completion % over expected (2006+)0.12
Ball security− interceptions / dropbacks0.12
Conversion(passing first downs + ½ passing TD) / dropbacks0.08
Volumedropbacks (attempts + sacks)0.10

RB — qualify: 8 games & 100 carries

ComponentMetricWeight
Rush efficiencyrushing EPA / carry0.24
Total EPArushing EPA + receiving EPA0.24
Yards per carryrushing yards / carry0.12
Conversion(rushing first downs + ½ rushing TD) / carry0.10
Receivingreceiving EPA / target + reception volume0.14
Ball security− fumbles lost / touch0.06
Volumecarries + receptions0.10

WR / TE — qualify: 8 games & 40 / 30 targets

ComponentMetricWeight
Target efficiencyreceiving EPA / target0.30
Total receiving EPAreceiving EPA0.22
Yards per targetreceiving yards / target0.12
Hands & conversioncatch rate × (first downs + ½ TD) / reception0.10
Roletarget share0.14
Volumetargets0.12

K — qualify: 8 games & 15 FG attempts

ComponentMetricWeight
FG make ratefield goals made / attempted0.55
Long rangeseason-long field goal0.15
PAT reliabilityPAT made / attempted0.10
VolumeFG + PAT attempts0.20

DEF — an impact score, not a true rating

ComponentMetricWeight
Pass rushsacks + ½ tackles for loss0.30
Ball skills2 × interceptions + passes defended0.25
Run defensetackles for loss + 0.05 × tackles0.20
Splash3 × defensive TD + 1.5 × forced fumbles0.15
Availabilitygames played0.10

Box-score stats catch splash plays but miss coverage, gap discipline, and snap share. Treat DEF as 'how much did this player show up in the box score', pending Phase 2 participation data. All metrics per game.

Known limitations (v1)

  • Defense is box-score only.
  • No opponent adjustment — a strong performance vs. a weak defense looks the same as vs. an elite one.
  • No aging curve, no multi-year prior — each season stands alone.
  • QB ceilings run lower (~92) than skill positions (~99) because QB stats vary less within their cohort. Honest, not a bug.
  • Pre-2006 receivers lose the CPOE / air-yards components.
  • No team-defense or special-teams rating yet.

Source: etl/scoutindex_etl/ratings.py. Roadmap — v1.1 weekly game scores; v2 opponent adjustment and per-position calibration.

Win probability & projections

Three prediction models, all transparent. Full write-up: nflverse data in, published formulas out.

Team Elo & win probability · scoutindex-winprob-v1

A standard NFL Elo model (FiveThirtyEight style): K-factor 20, a 55-point home-field bonus, the margin-of-victory multiplier with the autocorrelation fix, and a 40% between-season regression to 1500. Win probability is the logistic function of the Elo gap; projected margin is the gap divided by 25.

Across ~7,300 games since 1999 it picks the straight-up winner ~64% of the time (Brier ~0.22) — in line with published NFL Elo models. ~66–67% is roughly the ceiling for any pregame model.

Playoff simulation · scoutindex-playoffs-v1

A Monte-Carlo simulation of the season, ~20,000 runs. Each run plays out every remaining game (margin drawn from a Normal around the Elo projection, SD ~16), seeds each conference, and plays the bracket. Aggregating gives each team's odds to make the playoffs, win its division, get the #1 seed, and reach / win the Super Bowl.

Simplified tiebreakers (win% → head-to-head → division record → point diff); Elo is static through the sim; injuries and trades aren't modelled.

Player projections · scoutindex-projection-v1

  1. Recent form — the player's per-game average last season.
  2. Regress toward a position baseline by sample size (heavy prior — 6–8 games).
  3. Adjust for what the opponent allowed to that position, clamped to ±30%.
  4. Distribution — Poisson for counts (receptions, TDs), Normal for yardage. Output is a mean, the 10th–90th percentile range, and P(stat > line).

Preseason projections lean entirely on last year — no new-team fits, rookies, or injuries yet. Players with under 4 games last season are skipped; no OL, defense or kicker projections.

Not for wagering

Win probabilities and projections are informational estimates with real uncertainty — not advice for betting, daily fantasy, or any decision where an error costs money. See the Terms of Service.

Ratings leaderboard · This week's predictions · Playoff picture