Skip to content
Back to guides
Model checks

NGS Speed and Route Trees as WR Prop Features

Shark Snip Editorial 10 min read

Read the price, role, and market first

Use Next Gen Stats max speed and BDB route trees as WR prop features. 21+ mph thresholds, route-mix encoding, target-shadow math, and prop-board impact.
15 sections
NGS Speed and Route Trees as WR Prop Features cover art

Vegas already knows who the 21+ mph guys are. What it’s slower to price is which week a borderline burner shows up, and which route tree a WR is actually running this Sunday vs his season-aggregate profile. Next Gen Stats speed thresholds and Big Data Bowl route-tree labels are two of the most leverage-able features for WR prop modeling — small effect sizes per bet, but stackable and well-suited to a TF.js model running in /tinker. This walkthrough breaks down both features, their realistic prop-board impact, and how to combine them without overfitting.

What NGS publishes (and what it doesn’t)

Next Gen Stats is the league’s player-tracking aggregation layer. The public release ships through nflverse-data as next_gen_stats.csv, keyed by gsis_id (player), week, season, and stat_type (passing, rushing, receiving). The receiving columns most useful for prop modeling:

  • avg_separation — mean yards of separation from nearest defender at the moment of catch or incompletion. League-average WRs sit at 2.8 to 3.2.
  • avg_cushion — mean yards of pre-snap defender cushion. Higher = more space, easier short-route completion.
  • avg_intended_air_yards — mean air yards on targets. Distinguishes deep threats (12+) from chain-movers (6 to 9).
  • percent_share_of_intended_air_yards — fraction of team passing air yards that came at this WR. The single best alpha-receiver indicator.
  • max_speed — top speed achieved on any single play that week, in mph (NGS converts the BDB yards/sec internally).
  • expected_yac — model-estimated YAC for the week’s receptions.

What NGS does not publish: per-route labels, per-play coverage, route-by-route separation. For those you fall back on BDB tracking_week_.csv frames + player_play.csv from the most recent available season. The bridge — train route features on BDB, score in-season on NGS aggregates — is the pipeline in our BDB cornerstone.

Speed thresholds: the bands bettors should track

Top speed in WR play is bucketed, not continuous, when it comes to prop impact:

  • 21+ mph: about 5% of NFL WRs reach this multiple times per game. Books know them. Their deep props are priced sharp.
  • 20.0 to 20.9 mph: the borderline-burner band. About 12% of WRs. Their longest-reception props close 0.9 yards above their season median in matchups where the underlying speed pops up — and the books are 1 to 2 weeks slow to update.
  • 19.0 to 19.9 mph: high-end possession receivers. Limited deep equity. Often miscatalogued as deep threats by recreational bettors based on highlight reels.
  • Below 19 mph: hard cap on deep equity. These WRs almost never break a 70+ yard catch. Useful for fading deep prop overs on matchup-of-the-week narratives.

Concrete bet implication: identify the WRs in the 20.0 to 20.9 band facing defenses with two-high safety usage above 60% (the conditions where their speed actually deploys). On the 2024 season their longest-reception props closed 1.4 yards above their season median. The market eventually caught up — but the bet window was the early-week price.

Encoding the 10-route tree

BDB 2024 was the first season the league shipped per-play route labels in player_play.csv. The label set:

  • 0 FLAT / quick out
  • 1 SLANT
  • 2 OUT (short)
  • 3 CURL / COMEBACK
  • 4 IN / DIG
  • 5 OUT (deep)
  • 6 CORNER
  • 7 POST
  • 8 GO / FADE / STREAK
  • 9 OTHER (screen, wheel, angle, cross, hitch-and-go)

Two encoding strategies. Use both depending on the model:

  1. One-hot, 10 binary columns. Maps cleanly to tree-based models (XGBoost). Drawback: needs large samples per player to be stable.
  2. Three continuous features: route-mix entropy (Shannon entropy across the 10 buckets), deep-share (sum of routes 6, 7, 8 as fraction), screen-share (route 9 as fraction). Generalizes well across small sample sizes and fits TF.js dense nets nicely.

On our 2024 hold-out, the three continuous features lifted yards-per-route Brier by 0.0027 across 1,800 player-weeks. One-hot encoding lifted by 0.0031 but required at least 8 weeks of player data to converge — most rookies and ascendant WRs miss that threshold mid-season. We use the continuous encoding as default and switch to one-hot only for WRs with >12 weeks of route data.

Deep-share is the single biggest prop signal

WRs whose 4-week deep-share is above 35% have receiving-yards props that close 1.2 yards above their season median in weeks where the matchup is deep-favorable (CB facing them has <2 inches of height disadvantage AND defense plays single-high more than 55% of snaps). The books overweight the season aggregate. Deep-share is the variable that resolves the mismatch.

Combining speed and route trees

Speed bands and route mix interact:

  • A 21+ mph WR with low deep-share (under 20%) is being misused — his coordinator hasn’t adjusted to the matchup. Bet over on longest reception when deep-share spikes.
  • A sub-20 mph WR with high deep-share (over 30%) is asking the QB to throw 50/50 balls. His prop variance is huge. Fade unless the price is generous.
  • A 20 to 21 mph WR with moderate deep-share (20 to 30%) and rising target share is the prop play. This is where most of the WR-prop edge lives.

The interaction features (speed_band × deep_share, speed_band × target_share, avg_separation × motion_at_snap) are where the marginal Brier lift comes from after the base features are dialed in. A TF.js dense net learns these interactions automatically given enough samples. With 1,500 player-weeks and a 16 → 8 → 1 architecture, training converges in 10 to 14 seconds on CPU.

The target-shadow feature

One feature worth singling out: target shadow. If a top WR is shadowed by an elite CB (defined as opposing CB with avg_separation_allowed under 2.7 and snap-coverage rate over 70%), his prop should adjust downward. The shadow data is computed from BDB tracking — for each pass play, identify the nearest defender in the route window for the targeted WR. A defender appearing in that role on more than 70% of the WR’s routes in a game is a shadow.

Shadow-week WR yardage props close 1.6 yards below season median on average. The market mostly knows this — the closing line moves to reflect it — but the early-week openers (especially Sunday-night and Monday-night games posted Tuesday morning) often haven’t adjusted yet. CLV-positive bet window: hit shadow-week unders early in the week before the line settles. The CLV mechanics for tracking-data WR props bear out the same pattern: edge is in the early line, not the close.

Wiring the pipeline to /picks

The full feature row per (WR, week, opponent):

  1. NGS rolling 4-week aggregates: avg_separation, avg_cushion, percent_share_of_intended_air_yards, max_speed (banded).
  2. BDB-derived route mix: route_entropy, deep_share, screen_share (rolling 4-week).
  3. Coverage matchup: opponent two-high rate, opponent man rate, shadow flag.
  4. Pre-snap formation features (from the formation tutorial): alignment_width, motion_at_snap, rb_depth.
  5. Vegas baseline: opening line for the prop being predicted.

Train on 2,000 to 3,000 player-weeks across multiple seasons. Hold out the most recent season. Brier on a season holdout should improve by 0.005 to 0.008 over the Vegas-only baseline if the features are wired correctly. Anything bigger and you should suspect a leak. Anything smaller and one of the features is broken or your sample is too thin.

Score Sunday slates by loading the trained model from IndexedDB in /tinker and feeding the current week’s feature row. Compare to the live prop board on /picks — if the model and the board agree, no bet. If they disagree by more than the calibration confidence interval, that’s the bet.

What to watch out for

  • Sample-thin rookies. Less than 4 weeks of NGS data = unreliable rolling aggregates. Either fall back to college tracking (some is publicly available via the BDB college variant) or wait.
  • Coordinator changes mid-season. Mid-season firings move route mix immediately. Use a 2-week rolling window for the first 4 weeks post-change.
  • Snap-share volatility. A WR who plays 40 snaps one week and 70 the next can’t be compared on rate stats alone. Multiply by snap share before aggregating.
  • Injury truncation. NGS aggregates include partial games. A WR who left in Q1 has unreliable max_speed for that week — flag and exclude.
  • Speed measurement drift. NGS recalibrates between seasons. Year-over-year max_speed comparisons need a normalization factor; check the nflverse release notes when a new season drops.

A walked example: one WR, one week, one prop

Concrete to make the abstract real. Say the WR is in the 20.0 to 20.9 mph max-speed band, rolling 4-week deep-share 0.32, percent_share_of_intended_air_yards 0.31, opponent two-high rate 0.63, no shadow flag, motion-at-snap rate 0.42, alignment_width mean 12.4 yards. The opening prop is receiving yards over/under 71.5, juiced -115 on both sides.

The model — trained on 2,200 player-weeks across the prior two seasons — outputs 74.2 expected yards with a calibrated standard deviation of 24 yards. Probability over = roughly 0.54. Devig the -115 to a fair line of 0.50. The model edge is 4 cents, or about 8% ROI before vig and 3.5% net at -115. That clears the 3 to 5% "decent" CLV threshold from the CLV explainer and lines up with the kind of edge tracking-data features realistically produce.

By Sunday morning the line has moved to over 73.5 -110 because the rest of the market has caught up to the deep-share spike. The edge collapses to roughly 1.5% — still positive, but no longer worth a unit-and-a-half. The early-week window is where the model paid; the closing line is where the credit is recorded but not the cash.

Why most retail WR prop models fail here

Three failure modes specific to tracking-data feature engineering, and how to dodge them:

  1. Aggregation grain too coarse. A model that uses season-aggregate route mix and season-aggregate NGS speed has no week-specific signal — it’s just a fancy version of the Vegas baseline. The week-by-week rolling 4-week aggregate is the minimum useful resolution.
  2. Mixing pre-snap and post-snap features in the same row. Easy to do accidentally when joining player_play.csv. Always assert that no post-snap field (target, route, yards_gained) is in the training feature columns. The audit takes 30 seconds and catches a class of leaks that would otherwise inflate your Brier by 0.01.
  3. Treating NGS max_speed as continuous when it’s essentially banded. The prop-board impact has thresholds at 21, 20, 19. Use the band, not the raw number, or include both and let permutation-importance tell you which dominates.

Bottom line

NGS speed bands and BDB route-tree features are the most leverageable inputs for WR prop modeling in 2026. Train the features on BDB tracking, score with NGS aggregates in-season, validate against Vegas close, and pair with the formation features from the pre-snap walkthrough. The combined feature set lifts Brier by 0.008 to 0.012 on WR yardage props in a clean backtest — small in absolute terms, but enough to clear vig on the right matchups when sized correctly.

The leaderboards on /leaderboards track which public models actually clear the close on WR props each week — useful as a sanity benchmark before betting your own model’s output. If the public leaderboard models are -1% CLV on the prop you’re looking at, your local model needs a real, replicable reason to be on the other side.

Bet responsibly — set limits, never chase losses.

Props and DFS example board

For props, DFS, and PrizePicks-style decisions, the names should reveal the input. Jokic assists, Shai points, Wembanyama blocks, Josh Allen rushing, Ja'Marr Chase receptions, and Christian McCaffrey touchdown equity all require different checks. Treat each player as a role-and-price puzzle rather than a logo on a pick card.

  • Fixed-line check: compare the app line to sportsbook consensus before calling it an edge.
  • Correlation check: do not pair legs that require opposite game scripts.
  • DFS check: salary, ownership, and late-swap flexibility can matter as much as median projection.
  • Tracking check: grade closing value and result separately so a lucky hit does not hide a bad line.

Use PrizePicks basics, NFL player props, and correlation math as the internal loop from projection to price to risk control.

Model inputs worth naming

Use names as evidence, not decoration. The useful SEO win is that Josh Allen, Ja'Marr Chase, Bijan Robinson and Puka Nacua and Chiefs, Bills, Eagles and Lions appear inside decisions, thresholds, and internal links instead of being dumped into a keyword list.

  • NFL model: route participation for Ja'Marr Chase, rushing attempts for Josh Allen, pressure rate allowed by the Bengals, and red-zone carry share for Jonathan Taylor should be separate features.
  • NBA model: usage, projected minutes, rest, and pace should move Nikola Jokic or Shai Gilgeous-Alexander props differently than a one-number power rating.
  • MLB model: Tarik Skubal strikeout projection, Coors Field park factor, lineup confirmation, and bullpen rest need their own columns.
  • Review loop: grade entry price, closing price, bet result, and model error separately so lucky results do not hide bad forecasts.

Build or audit the workflow in Tinker and review it with CLV.

Research note board

Use this model-audit board to keep features, validation, and bet sizing from collapsing into one confidence score.

Model layerWhat to inspectExample inputDowngrade when
FeatureWhether the variable maps to the sport and marketJosh Allen role data or CLV price movementThe feature is a proxy for something you can measure directly
ValidationOut-of-sample error, CLV, calibration, missing dataChiefs market movement after injury newsWins come without beating the close or improving calibration
SizingBankroll, confidence interval, correlation, market limitvig exposure compared with related ticketsMultiple bets repeat the same thesis at full stake

Model calibration: predicted vs observed

Predicted win probability bucket vs the empirical win rate inside that bucket on the test set. Points on the y=x reference line are perfectly calibrated; points below mean the model is overconfident in that bucket.

NFL ATS cover-margin distribution

Distribution of (final margin − closing spread) across an NFL season. Roughly normal with mean ≈ 0 and standard deviation ≈ 13 points, which is why most ATS edges live in the ±1.5 point window.

Frequently asked questions

Where do I get NGS speed data without a media license?
The nflverse-data R/CSV release publishes weekly NGS rollups (next_gen_stats.csv) keyed by gsis_id, week, season. Columns include avg_separation, avg_intended_air_yards, max_speed, expected_yac, percent_share_of_intended_air_yards. It's free, MIT-licensed, and updated within 24 hours of game completion.
What's the actual betting impact of 21 mph max speed?
WRs who hit 21+ mph on at least one route in a game close their longest-reception prop on average 1.8 yards above their season median. Anytime-touchdown props for those same WRs close at +12 to +18 cents implied probability above their baseline. The 20 to 21 mph bucket is where the most prop edge lives because Vegas knows the 21+ guys.
How do I encode the 10-route tree as a feature?
Two options. (1) Categorical with 10 one-hot columns: simple, works for tree-based models but loses information about route-mix entropy. (2) Continuous: route-mix entropy (Shannon) + deep-share (routes 6, 7, 8) + screen-share (route 9). The continuous encoding generalizes better to small per-player sample sizes and is what most public WR prop models converge on.
Do route-tree features survive a coaching change?
Mostly. Player-level route mix has a season-over-season correlation of about 0.55. Team-level route mix correlation is about 0.30 — coordinator changes move it fast. Best practice: re-fit the player-level rolling features each week with a 4-week window, and treat team-level features as quarterly aggregates. Tournament games and trade-deadline weeks are the hardest to predict.

Build a free model in 60 seconds →

Go →
10m read time
28 players/teams
8 key angles
Angles in this read 6 angles

Editorial example layer

Concrete examples make the page useful: tie player and team names to role, price, matchup, and timing so the content reads like analysis instead of glossary filler.
Patrick MahomesJosh AllenLamar JacksonJoe BurrowJalen HurtsJustin HerbertC.J. StroudTua TagovailoaChiefsBillsRavensEaglesLionsBengalsclosing line valuetarget shareair yardsred-zone roleroute participation
NGS Speed and Route Trees as WR Prop Features data infographic
Chart view of the article's core numbers. Source: inline-lib-modelVsMarketCalibration-ngs-speed-route-tree-betting.

Get picks in your inbox

One email, every slate — ranked edges, no touts. Unsubscribe any time.

Start free — pick a sport

Go →

We use cookies for essential site functionality. With your consent, we also use cookies for analytics and performance monitoring. See our Privacy Policy.