Prop notes

Week 8 player prop notes: usage trends through Week 7

Quick answer: Over each team's last 3 games through Week 7, 58 skill players gained 10+ points of snap share on their earlier average and 24 lost that much. Biggest roles on the rise: A.J. Brown (44% to 84%), Zay Flowers (45% to 85%) and Germie Bernard (38% to 92%). With a teammate out, re-check Konata Mumpfield (LAR) and Tez Johnson (TB). These are usage trends to compare with your book's number, not picks.

Players compared
323
Trending up (+10 pts)
58
Trending down (โˆ’10 pts)
24
Out or Doubtful with a role
9

How did we measure it?

Player props are priced on roles, and roles move before box scores do. Over the last 3 games through Week 7, 58 players gained a real share of their team's snaps and 24 lost one. Here's the usage data to set against the number you're shown before Week 8 kicks off.

Snap share is the percentage of a team's offensive plays a player was on the field for, and it's the usage number that moves before the box score does. For every QB, RB, WR and TE we compared his average share over his team's last 3 games through Week 7 with his average in the games before them. Byes don't count, and a game he missed is left out rather than counted as 0%, so an injury doesn't read as a demotion. Trending up means he gained at least 10 points and averaged 40% or more in the last 3; trending down means he averaged 50% or more before and lost at least 10.

Every number comes from the GridIron API: /players, /snaps, /stats and /projections, with injury statuses as of Friday, October 30 at 3:24 pm ET. Projections appear only as a gap against recent output, never as a raw number. Nothing here is a pick: it's usage data to set against the number you're looking at. CAR and GB already played Week 8, so their players are left out.

Whose snap share is trending up?

Snap share trending up: last 3 games vs earlier, through Week 7 (2026)
PlayerPosTeamEarlier avgLast 3 avgChangeWk 7Last 3 PPR avg
Omar Cooper Jr.WRNYJ7%73%+6664%22.4
Germie BernardWRPIT38%92%+5591%15.3
Tyler HuntleyQBBAL48%100%+52100%17.8
Jalen BrooksWRARI5%57%+5264%4.4
Jalen RoyalsWRKC17%68%+5168%1.5
Kyler MurrayQBMIN58%100%+42100%14.6
Brandin CooksWRSF12%53%+4168%4.1
Darius CooperWRPHI39%79%+4092%6.6
Zay FlowersWRBAL45%85%+4085%18.3
A.J. BrownWRNE44%84%+4091%6.8

What it means for a prop model

  • A.J. Brown's snap share climbed from 44% to 84% across the last 3 games. He's averaged 6.8 PPR points in that stretch. That's a usage trend to compare with your book's number, not a pick.
  • Zay Flowers (WR, BAL) has played 85% of snaps over his team's last 3 games, up from 45% before that. He's averaged 18.3 PPR points in that stretch. A number set on his earlier role may not reflect this one.
  • Germie Bernard's snap share climbed from 38% to 92% across the last 3 games. He's averaged 15.3 PPR points in that stretch. That's a usage trend to compare with your book's number, not a pick.
  • Omar Cooper Jr. (NYJ) went from 7% to 73% of snaps over the last 3 games. He's averaged 22.4 PPR points in that stretch. Check whether the number you're shown has caught up with the role.

Whose snap share is trending down?

Snap share trending down: last 3 games vs earlier, through Week 7 (2026)
PlayerPosTeamEarlier avgLast 3 avgChangeWk 7Status today
Marvin Harrison Jr.WRHOU74%20%-5421%Active
Isaiah WilliamsWRNYJ81%33%-4922%Healthy
Terry McLaurinWRWAS77%34%-43โ€”Injury Reserve
Jameis WinstonQBNYG96%54%-428%Active
Ladd McConkeyWRLAC61%23%-38โ€”Questionable
Johnny MundtTEPHI58%29%-2924%Healthy
Ja'Marr ChaseWRCIN94%65%-2987%Healthy
Cam SkatteboRBNYG65%42%-2356%Questionable

What it means for a prop model

  • Ja'Marr Chase's role shrank: 94% of snaps earlier, 65% over the last 3 games. Listed Healthy today.
  • Cam Skattebo's role shrank: 65% of snaps earlier, 42% over the last 3 games. Listed Questionable today.
  • Ladd McConkey's role shrank: 61% of snaps earlier, 23% over the last 3 games (he missed 1 of them). Listed Questionable today.

Whose role grows because a teammate is out?

When a starter sits, his snaps don't disappear: someone at his position plays them, and that player's volume is the number most likely to be stale. The table lists fantasy-relevant players who are Doubtful, Out or on a reserve list for Week 8 after playing in at least one of their team's last 3 games, and the teammate in line for the work, from Week 7 snap share.

Week 8: who is out, and whose role grows (2026)
PlayerPosTeamStatusSeason snapsWho gets the work
Davante AdamsWRLARIR74%Next by Wk 7 snaps: Konata Mumpfield (43%)
Emeka EgbukaWRTBOut86%Tez Johnson filled in: 34% to 65% in Wk 7
Mike EvansWRSFOut54%Brandin Cooks filled in: 35% to 68% in Wk 7
Deebo Samuel Sr.WRSFOut58%Brandin Cooks filled in: 35% to 68% in Wk 7
Romeo DoubsWRNEIR58%A.J. Brown filled in: 60% to 91% in Wk 7
Brian Robinson Jr.RBATLOut30%Bijan Robinson filled in: 70% to 81% in Wk 7
Dameon PierceRBPHIIR79%Next by Wk 7 snaps: Elijah Mitchell (21%)
Cole KmetTECHIIR61%Next by Wk 7 snaps: Sam Roush (20%)
Tyquan ThorntonWRKCIR59%Jalen Royals filled in: 43% to 68% in Wk 7

What it means for a prop model

  • Davante Adams is on a reserve list; Konata Mumpfield played 43% of snaps in Week 7 and is next in line for the work.
  • With Emeka Egbuka out, look at Tez Johnson: the last time Emeka Egbuka sat (Week 7), Tez Johnson went from 34% to 65% of snaps.
  • Mike Evans is out. When he sat in Week 7, Brandin Cooks took the work, 35% to 68% of snaps.
  • Deebo Samuel Sr. is out. When he sat in Week 7, Brandin Cooks took the work, 35% to 68% of snaps.
  • Romeo Doubs is on a reserve list. When he sat in Week 7, A.J. Brown took the work, 60% to 91% of snaps.

Still Questionable for Week 8: Christian McCaffrey (SF, 69% of snaps this season), Saquon Barkley (PHI, 36% of snaps this season), George Pickens (DAL, 81% of snaps this season), A.J. Brown (NE, 70% of snaps this season), Jeremiyah Love (ARI, 48% of snaps this season), DeVonta Smith (PHI, 87% of snaps this season), Cam Skattebo (NYG, 55% of snaps this season), Carnell Tate (TEN, 82% of snaps this season). Their status settles closer to kickoff; if one sits, the same teammate math applies.

What changed on the injury report this week?

118 status changes were recorded between Monday, October 26 at 3:25 pm ET and Friday, October 30 at 3:25 pm ET, from the Pro /injuries/changes feed. Each one can move a teammate's role.

Injury status changes this week, Week 8
PlayerPosTeamFromToDetected
Calvin RidleyWRTENOUTQUESTIONABLEMonday, October 26 at 3:34 pm ET
Kylen GransonTEOUTACTIVEMonday, October 26 at 3:34 pm ET
Nicholas SingletonRBTENOUTACTIVEMonday, October 26 at 3:34 pm ET
Tyjae SpearsRBTENOUTQUESTIONABLEMonday, October 26 at 3:34 pm ET
Amon-Ra St. BrownWRDETACTIVEQUESTIONABLEMonday, October 26 at 3:38 pm ET
Eli StowersTEPHIIRACTIVEMonday, October 26 at 4:14 pm ET
Grant CalcaterraTEPHIIRACTIVEMonday, October 26 at 4:14 pm ET
Dillon GabrielQBCLEIRACTIVEMonday, October 26 at 4:46 pm ET
Christian McCaffreyRBSFACTIVEQUESTIONABLEMonday, October 26 at 6:16 pm ET
Deebo Samuel Sr.WRSFDOUBTFULQUESTIONABLEMonday, October 26 at 6:46 pm ET
Cole PaytonQBPHIACTIVEOUTMonday, October 26 at 7:00 pm ET
Saquon BarkleyRBPHIQUESTIONABLEACTIVEMonday, October 26 at 7:00 pm ET
Emari DemercadoRBDALACTIVEOUTMonday, October 26 at 7:10 pm ET
Aidan O'ConnellQBLVOUTACTIVEMonday, October 26 at 7:25 pm ET
Carson BeckQBARIOUTQUESTIONABLEMonday, October 26 at 7:25 pm ET

Where does the Week 8 projection disagree with recent output?

We compared each player's Week 8 projection with his PPR average over his team's last 3 games and kept the gaps of 4 points or more (165 players had a weekly projection and at least 2 recent games). Only the gap is shown; the projection itself is one call away in /projections/8.

Week 8 projection above recent output
PlayerPosTeamGap vs last 3 PPR avgGamesLast 3 snapsStatus
Ladd McConkeyWRLAC+9.2223%Questionable
Bijan RobinsonRBATL+7.7380%Healthy
A.J. BrownWRNE+7.7284%Questionable
Justin JeffersonWRMIN+7.6391%Healthy
Ja'Marr ChaseWRCIN+7.1365%Healthy
CeeDee LambWRDAL+6.9375%Healthy
Cam WardQBTEN+6.63100%Active
Derrick HenryRBBAL+6.2355%Healthy
Week 8 projection below recent output
PlayerPosTeamGap vs last 3 PPR avgGamesLast 3 snapsStatus
Omar Cooper Jr.WRNYJ-12.1273%Active
Jameson WilliamsWRDET-9.8391%Healthy
Drake MayeQBNE-8.43100%Healthy
Kyle Pitts Sr.TEATL-8.1367%Active
Keon ColemanWRBUF-7.7378%Healthy
Tre TuckerWRLV-7.6376%Healthy
Blake CorumRBLAR-6.7333%Healthy
Braelon AllenRBNYJ-6.7384%Healthy

What it means: a projection well above recent output expects something to change: a bigger role, a softer matchup or a teammate's absence. If the snap trend above doesn't show the bigger role, the projection is leaning on something else, and that's worth knowing before you compare any number. Gaps below the average work the other way. Either way it's a question to ask, not an answer.

How can I pull this data myself?

Everything on this page is a few API calls away, so you can run the same numbers through your own model. /players returns every player's weekly snap share, so one paginated sweep gets the whole league and the trend math runs locally. This reproduces the trending-up table:

import requests
from collections import defaultdict

API = "https://api.gridirondata.com/api/v1"
H = {"x-api-key": "YOUR_KEY"}
SEASON, THROUGH, WINDOW = "2026", 7, 3

players, cursor = [], None
while True:                                   # about 18 requests for the whole league
    params = {"limit": 100, **({"cursor": cursor} if cursor else {})}
    body = requests.get(f"{API}/players", headers=H, params=params).json()
    players += body["players"]
    cursor = body.get("next_cursor")
    if not cursor:
        break

def snaps(p):
    return p.get("seasons", {}).get(SEASON, {}).get("snap_counts", {}).get("weekly", {})

team_weeks = defaultdict(set)                 # weeks each team played; byes drop out
for p in players:
    for wk, row in snaps(p).items():
        if int(wk) <= THROUGH:
            team_weeks[row["team"]].add(int(wk))

def avg(xs):
    xs = [x for x in xs if x]                 # a missed game is left out, not a 0
    return sum(xs) / len(xs) if xs else None

trends = []
for p in players:
    rows = snaps(p)
    last = rows.get(str(THROUGH))
    if p["position"] not in ("RB", "WR", "TE") or not last:
        continue
    weeks = sorted(team_weeks[last["team"]])
    share = lambda ws: avg([(rows.get(str(w)) or {}).get("offense_pct") for w in ws])
    recent, earlier = share(weeks[-WINDOW:]), share(weeks[:-WINDOW])
    if recent and earlier:
        trends.append((recent - earlier, earlier, recent, p["player_id"]))

for delta, before, after, pid in sorted(trends, reverse=True)[:10]:
    print(f"{delta:+5.0f}  {before:3.0f}% -> {after:3.0f}%  {pid}")

Then go player by player, or pull the rest of the week's inputs:

  • GET /snaps/{player_id}?trend=3: one player's weekly snap rows plus his recent and season averages, in one call.
  • GET /projections/8?source=weekly&position=WR: the week's projections by position; the gap table above compares them with recent PPR output from /stats.
  • GET /injuries/changes?since=... (Pro): just the players whose status flipped since a timestamp, so a teammate's role change reaches your model the same morning.
  • GET /props?player_id=...&stat=rec_yds&line=... and GET /defense?position=WR (Pro): turn a stat line into P(over/under) and a fair price, and rank matchups by what each defense allows.

/props (the probability a player goes over or under a stat line, with a fair price) and /defense (what each defense allows by position) are on the Pro plan ($29/month or $249/year), along with game lines on /schedule, per-stat projections on /projections and the injury-change feed. Free and Basic keys get a 403 pro_required answer for them.

The sweep is about 18 requests and runs on Basic ($5/month, 5,000 a month); the prop, defense and injury-change endpoints are part of Pro. A free key covers player lookups and this week's projections. See the snap share guide for the details of the snap data.

Frequently asked questions

Are these picks?

No. They're usage trends computed from actual NFL data: snap share, role changes when a teammate is out, and how far a projection sits from recent output. Nothing here says which side of any number to take. Compare the trend with the number you're shown and make your own call.

Why does snap share matter for player props?

Because volume comes from playing time. A receiver on the field for 85% of his team's plays has more chances at catches and yards than one at 50%, and snap share shifts before the box score does when a coach changes a role.

Why the last 3 games?

One game is noisy: a blowout, an early injury or one game plan can swing it. 3 games smooth that out while staying recent enough to catch a real role change. Byes and missed games are left out of the average.

Where does the injury data come from?

Statuses come from /players, which refreshes on a schedule through the week, and status flips from the Pro /injuries/changes feed. This page shows them as of Friday, October 30 at 3:24 pm ET and isn't updated after it's published.

Can I use this data in my own model?

Yes. Every number here comes from the GridIron API. The snap and stats data behind it takes Basic ($5/month, 5,000 requests a month), where a full-league /players sweep is about 18 requests. The /props and /defense endpoints, game lines on /schedule and per-stat projections are on Pro ($29/month or $249/year). A free key covers player lookups and this week's projections.