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?
| Player | Pos | Team | Earlier avg | Last 3 avg | Change | Wk 7 | Last 3 PPR avg |
|---|---|---|---|---|---|---|---|
| Omar Cooper Jr. | WR | NYJ | 7% | 73% | +66 | 64% | 22.4 |
| Germie Bernard | WR | PIT | 38% | 92% | +55 | 91% | 15.3 |
| Tyler Huntley | QB | BAL | 48% | 100% | +52 | 100% | 17.8 |
| Jalen Brooks | WR | ARI | 5% | 57% | +52 | 64% | 4.4 |
| Jalen Royals | WR | KC | 17% | 68% | +51 | 68% | 1.5 |
| Kyler Murray | QB | MIN | 58% | 100% | +42 | 100% | 14.6 |
| Brandin Cooks | WR | SF | 12% | 53% | +41 | 68% | 4.1 |
| Darius Cooper | WR | PHI | 39% | 79% | +40 | 92% | 6.6 |
| Zay Flowers | WR | BAL | 45% | 85% | +40 | 85% | 18.3 |
| A.J. Brown | WR | NE | 44% | 84% | +40 | 91% | 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?
| Player | Pos | Team | Earlier avg | Last 3 avg | Change | Wk 7 | Status today |
|---|---|---|---|---|---|---|---|
| Marvin Harrison Jr. | WR | HOU | 74% | 20% | -54 | 21% | Active |
| Isaiah Williams | WR | NYJ | 81% | 33% | -49 | 22% | Healthy |
| Terry McLaurin | WR | WAS | 77% | 34% | -43 | โ | Injury Reserve |
| Jameis Winston | QB | NYG | 96% | 54% | -42 | 8% | Active |
| Ladd McConkey | WR | LAC | 61% | 23% | -38 | โ | Questionable |
| Johnny Mundt | TE | PHI | 58% | 29% | -29 | 24% | Healthy |
| Ja'Marr Chase | WR | CIN | 94% | 65% | -29 | 87% | Healthy |
| Cam Skattebo | RB | NYG | 65% | 42% | -23 | 56% | 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.
| Player | Pos | Team | Status | Season snaps | Who gets the work |
|---|---|---|---|---|---|
| Davante Adams | WR | LAR | IR | 74% | Next by Wk 7 snaps: Konata Mumpfield (43%) |
| Emeka Egbuka | WR | TB | Out | 86% | Tez Johnson filled in: 34% to 65% in Wk 7 |
| Mike Evans | WR | SF | Out | 54% | Brandin Cooks filled in: 35% to 68% in Wk 7 |
| Deebo Samuel Sr. | WR | SF | Out | 58% | Brandin Cooks filled in: 35% to 68% in Wk 7 |
| Romeo Doubs | WR | NE | IR | 58% | A.J. Brown filled in: 60% to 91% in Wk 7 |
| Brian Robinson Jr. | RB | ATL | Out | 30% | Bijan Robinson filled in: 70% to 81% in Wk 7 |
| Dameon Pierce | RB | PHI | IR | 79% | Next by Wk 7 snaps: Elijah Mitchell (21%) |
| Cole Kmet | TE | CHI | IR | 61% | Next by Wk 7 snaps: Sam Roush (20%) |
| Tyquan Thornton | WR | KC | IR | 59% | 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.
| Player | Pos | Team | From | To | Detected |
|---|---|---|---|---|---|
| Calvin Ridley | WR | TEN | OUT | QUESTIONABLE | Monday, October 26 at 3:34 pm ET |
| Kylen Granson | TE | OUT | ACTIVE | Monday, October 26 at 3:34 pm ET | |
| Nicholas Singleton | RB | TEN | OUT | ACTIVE | Monday, October 26 at 3:34 pm ET |
| Tyjae Spears | RB | TEN | OUT | QUESTIONABLE | Monday, October 26 at 3:34 pm ET |
| Amon-Ra St. Brown | WR | DET | ACTIVE | QUESTIONABLE | Monday, October 26 at 3:38 pm ET |
| Eli Stowers | TE | PHI | IR | ACTIVE | Monday, October 26 at 4:14 pm ET |
| Grant Calcaterra | TE | PHI | IR | ACTIVE | Monday, October 26 at 4:14 pm ET |
| Dillon Gabriel | QB | CLE | IR | ACTIVE | Monday, October 26 at 4:46 pm ET |
| Christian McCaffrey | RB | SF | ACTIVE | QUESTIONABLE | Monday, October 26 at 6:16 pm ET |
| Deebo Samuel Sr. | WR | SF | DOUBTFUL | QUESTIONABLE | Monday, October 26 at 6:46 pm ET |
| Cole Payton | QB | PHI | ACTIVE | OUT | Monday, October 26 at 7:00 pm ET |
| Saquon Barkley | RB | PHI | QUESTIONABLE | ACTIVE | Monday, October 26 at 7:00 pm ET |
| Emari Demercado | RB | DAL | ACTIVE | OUT | Monday, October 26 at 7:10 pm ET |
| Aidan O'Connell | QB | LV | OUT | ACTIVE | Monday, October 26 at 7:25 pm ET |
| Carson Beck | QB | ARI | OUT | QUESTIONABLE | Monday, 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.
| Player | Pos | Team | Gap vs last 3 PPR avg | Games | Last 3 snaps | Status |
|---|---|---|---|---|---|---|
| Ladd McConkey | WR | LAC | +9.2 | 2 | 23% | Questionable |
| Bijan Robinson | RB | ATL | +7.7 | 3 | 80% | Healthy |
| A.J. Brown | WR | NE | +7.7 | 2 | 84% | Questionable |
| Justin Jefferson | WR | MIN | +7.6 | 3 | 91% | Healthy |
| Ja'Marr Chase | WR | CIN | +7.1 | 3 | 65% | Healthy |
| CeeDee Lamb | WR | DAL | +6.9 | 3 | 75% | Healthy |
| Cam Ward | QB | TEN | +6.6 | 3 | 100% | Active |
| Derrick Henry | RB | BAL | +6.2 | 3 | 55% | Healthy |
| Player | Pos | Team | Gap vs last 3 PPR avg | Games | Last 3 snaps | Status |
|---|---|---|---|---|---|---|
| Omar Cooper Jr. | WR | NYJ | -12.1 | 2 | 73% | Active |
| Jameson Williams | WR | DET | -9.8 | 3 | 91% | Healthy |
| Drake Maye | QB | NE | -8.4 | 3 | 100% | Healthy |
| Kyle Pitts Sr. | TE | ATL | -8.1 | 3 | 67% | Active |
| Keon Coleman | WR | BUF | -7.7 | 3 | 78% | Healthy |
| Tre Tucker | WR | LV | -7.6 | 3 | 76% | Healthy |
| Blake Corum | RB | LAR | -6.7 | 3 | 33% | Healthy |
| Braelon Allen | RB | NYJ | -6.7 | 3 | 84% | 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=...andGET /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.