Methodology

Methodology / sources, formulas, and how to read the numbers

Every metric on this site, defined. What we source, how our house metrics are built, the principles that keep us honest, and a searchable dictionary of all 601 underlying fields.

Data & sources

The 2025 season is fully loaded. Player and team statistics come from Pro-Football-Reference; identities, the schedule, and weekly scoring come from nflverse. Prior seasons will load into the same structure.
Pro-Football-Reference2025 season totals — passing, rushing, receiving, defense, plus advanced charting (air yards, pressure, YAC, broken tackles, on-target %).
nflversePlayer ID crosswalk (PFR → gsis_id, 99.6% matched), 2025 schedule & results, and weekly half-PPR fantasy scoring.
GrainAll stats are full-season 2025 aggregates unless noted. Weekly arrays power the Consistency Lab.
ValidationReconciled against the site's canonical QB data: 250 of 250 field comparisons matched exactly. Mid-season trades use the combined (nTM) season row.

House metrics

Derived metrics we compute — the ones you won't find defined the same way elsewhere. Formulas are shown so you can audit every number.

WOPR — Weighted Opportunity Rating

1.5 × target share + 0.7 × air-yards share

Single number for a receiver's opportunity. Rewards both volume (targets) and quality (downfield involvement). The gold-standard usage metric.

USED INReceiver Usage Matrix, Player Compare

RACR — Receiver Air Conversion Ratio

receiving yards ÷ intended air yards

How many yards a receiver produces per air yard thrown his way. Separates yards earned (hands, YAC) from yards handed by scheme. Above ~1.0 = efficient.

USED INReceiver Usage Matrix

Target share / Air-yards share

player targets ÷ team targets · player air yards ÷ team air yards

Share of the team's opportunity a player commands. Air yards = ADOT × targets. Both computed against full-team totals (all positions).

USED INReceiver Usage Matrix, Matchup Edge

TDoe — Touchdowns Over Expected

actual TDs − (volume × league TD rate)

Regression signal. Positive = scoring above what volume predicts (sell-high / TD-regression risk); negative on high usage = buy-low. Computed on carries (RB) or air yards (WR/TE), within position.

USED INRB / Receiver regression flags

Edge Score (Matchup)

opponent difficulty rank + funnel + pressure(deep) + own-QB tier, clamped 0–100

How a player's profile meets a defense. Blends the defense's pass/run rank, funnel direction, pressure vs deep passers, and the quality of the player's own QB. 70+ = Smash, <30 = Avoid.

USED INMatchup Edge

Funnel

relative pass-D rank vs run-D rank (Δ ≥ 6)

Whether a defense forces offenses one way. Stout vs the run but soft vs the pass = 'Pass funnel' (WR-friendly); the reverse funnels work to the ground.

USED INTeam Defense, Matchup Edge

Archetypes

percentile buckets within position

Style labels from usage/efficiency percentiles. RB: Workhorse / Receiving Back / Grinder / Boom-or-Bust / Committee. WR-TE: Alpha / Deep Threat / YAC Weapon / Possession / Rotation.

USED INRB, Receiver dashboards

Consistency profiles

2×2 median split: startable-rate × boom-rate

Every-Week (safe + upside), Safe Floor, Boom/Bust, Volatile — split at each position's median so players are judged within position. Built from weekly half-PPR arrays.

USED INConsistency Lab

Floor / Ceiling / CV

avg of 3 worst / 3 best weeks · std dev ÷ mean

Weekly range. Floor = dependable week, Ceiling = upside week, CV = volatility (lower = steadier). Startable/boom/bust lines are position-specific.

USED INConsistency Lab

QB Tier

ANY/A percentile among team starters

Elite / Plus / Below-average, from Adjusted Net Yards per Attempt. Feeds the Matchup Edge QB-dependency adjustment for pass-catchers.

USED INMatchup Edge

Principles — signal vs noise

Three rules keep the dashboards from selling small-sample luck as insight:
Volume gatingArchetypes and regression flags only apply to qualified samples — RB ≥ 100 touches, WR ≥ 50 / TE ≥ 40 targets, QB ≥ 150 dropbacks, ≥ 8 games for consistency. Thinner samples are labeled, never scored.
Within-positionPercentiles, medians, archetypes and regression baselines are computed within position group — a TE is measured against TEs, not against WRs.
Transparent regressionEvery regression call shows its driver (e.g. TDs over expected) in plain language. We flag direction and reason, and never overwrite the site's canonical weekly data — PFR season totals are a validation layer.

Field dictionary

Every field in the underlying datasets, defined. Search a term or filter by dataset.
FieldDefinitionDataset