SF depth chart — 2026
all 32 charts · published order beside measured opportunity
2025 regular-season opportunity (18 weeks)
first non-fallback render after 2026-09-24
why this ordering is not this season
There is no 2026 measured usage. The nflverse stats_player release has no 2026 weekly asset yet (HTTP 404 for https://github.com/nflverse/nflverse-data/releases/download/stats_player/stats_player_week_2026.parquet); the first regular-season file is expected ~2026-09-14. This ordering is 2025 data against the 2026 published depth chart, which is a real comparison and is NOT a claim about this season.
what this order rests on8 statements
- opportunity = carries + targets, from nflverse stats_player_week. It is NOT a snap count: that file carries 150 columns and none of them is one. A player who ran routes and saw no target and a player who never left the sideline are indistinguishable in this number.
- The ordering is NOT 2026 data. There is no 2026 measured usage. The nflverse stats_player release has no 2026 weekly asset yet (HTTP 404 for https://github.com/nflverse/nflverse-data/releases/download/stats_player/stats_player_week_2026.parquet); the first regular-season file is expected ~2026-09-14. This ordering is 2025 data against the 2026 published depth chart, which is a real comparison and is NOT a claim about this season. The first non-fallback render is after 2026-09-24, which is seventeen days after the draft.
- The published depth chart is NOMINAL. This snapshot is preseason and has never been read against a played game; no row here says who was actually on the field.
- Position appears twice and the columns are not interchangeable. `chartPosition` is where the team lists him and `scoredPosition` is what he is scored as; 2 of the 909 skill rows disagree (Jackson Meeks, chart TE / crosswalk WR; Velus Jones Jr., chart RB / crosswalk WR).
- A null opportunity means UNOBSERVED, never zero. 365 of 909 players carry one. A player absent from the DynastyProcess crosswalk is not absent from the NFL: 115 of 909 skill rows (12.7%) are absent from it at deep ranks, and no key choice touches that — the miss is a property of the crosswalk, not of the key. This counts rows with NO crosswalk entry, which is not the same population as rows with no gsis id: one player IS in the crosswalk and carries no id, so that second count is one higher. The sentence above is the first of the two.
- `posRank` is PER-POSITION, not per-slot. A `posRank <= 2` filter on WR excludes the WR3.
- 137 of the 544 players carrying a 2025 opportunity earned most of it for a team other than the one they are listed under here — QB 20, RB 32, WR 60, TE 25. 32 of the 32 teams carry at least one, so there is no clean page and no "nothing to see here" state to reach for. THIS IS NOT A DATA GAP; IT IS THE READING. A number printed under a team that did not earn it, with nothing on the row saying so, is the defect. `priorTeam` on every player is the correction, and it is never defaulted to the team the row is listed under.
- 19 players on this chart appeared for more than one team in 2025, so the single number beside the name is a sum of two rooms rather than a count from one. 9 of them have a primary team EQUAL to the team they are listed under, so a marker that fires only when the team changed says nothing at all about them. The largest: Jakobi Meyers is listed under JAX showing 115, of which 66 was earned in that room — the printed number is 74% larger than what he did here. The split is therefore carried for all 19 of them on each team's `multiTeam`, not only for the ones a change-marker catches, and an arm at zero opportunity is carried too (4 of them have one): he was on that sheet for those weeks and saw nothing, which is an observation and not a gap. The rule that picks the primary team has three clauses — most opportunity, then most weeks, then the team code ascending — and on this artifact only the first is ever reached: no player here has two arms level on opportunity, so nothing on this file depends on the other two.
what moved, 2026-08-18 to 2026-08-258 changes
what moved, 2026-08-18 to 2026-08-25
7 days of the published 2026 chart, both endpoints present. Checked again against 2026-08-26.
The filter is a rank cut — QB, RB and TE to 2, WR to 3 — and it is the whole of it: it takes 90.9 changes a week down to 24.0, and counting one event for one event takes that to 16.7 a week (skill positions (pos_abb QB/RB/WR/TE), in-season Tuesday-to-Tuesday, 2025 asset, 16 spans from 2025-09-09 to 2025-12-30, measured 2026-08-28). Depth-1 confirmation removes none of it — it is a label, and if it filtered it would move only 4.7% of the rows. Some reverts survive both: a change that holds for a day and flips on the second is marked confirmed and reverted anyway, and a depth that caught it would suppress real reversals to do it.
1 — a name that was not in a top slot is in one
- SF
- RB2Jordan JamesthenKaelon Black
0 — the same names, in a different order on the SF chart
No group kept its names and changed their order on the SF chart over this span.
what this feed does not establish
- WHAT A DEPTH-CHART CHANGE MEANS IS NOT MEASURED HERE. This feed reports that a team moved a name between published slots. Whether that helps or hurts anyone is a judgement nothing in this artifact made, and there is no arrow and no colour on the screen that supplies one.
- A CONFIRMED CHANGE CAN STILL REVERT, AND THE RATE IS UNESTABLISHED. Measured over the 2025 asset, the share of cut-rank changes whose previous player returns to the same slot within seven snapshots reads 16.1% over the whole file and 21.3% over the in-season window alone, against the roadmap's recorded 17.1% and 13-07-PLAN.md's correction of 13.7%. Four readings, no recorded definition for the first two. The phenomenon is confirmed; the magnitude is not.
- A SUMMER FEED IS NOT AN IN-SEASON FEED. Measured on the 2026 asset at this cut: 3.7 events a week in April to June and 5.6 in July and August, against 16.7 in season. This artifact carries 8 events over 7 days ending 2026-08-25. WHICH BASELINE APPLIES IS NOT DERIVED ANYWHERE: the depth-chart asset carries no season column, no week column and no date beyond `dt`, so nothing here can say whether a given Tuesday was a regular-season one, and a hardcoded kickoff date would be a guess wearing a field name.
- `pos_rank` IS PER-POSITION, NOT PER-SLOT. A rank-2 cut on WR excludes the WR3, who is the slot receiver and is startable in a 12-team league. That is why the cut is mixed, and the mixed volume was measured before it was chosen rather than picked as a middle.
- THE SPAN IS TUESDAY TO TUESDAY AND IT IS A NET DIFF. A slot that changed on Wednesday and changed back on Friday appears here as nothing at all, and a slot that changed after the later Tuesday is not here yet. The two `dt` endpoints on this artifact are the only statement of how old it is; there is no clock anywhere in the code that wrote it.
- ANALYST CHARTS ARE NOT DIFFED AND MUST NOT BE. FantasyPros-style depth charts are ECR-derived, so diffing them measures an analyst changing his mind rather than a team changing its plan. This reads the team-published chart nflverse republishes.
SF
10of 19
measured rows sit at a different rank than the team published. The published chart is the only order the free sites can show, because they are it.
30 published11 with nothing measured to rank them by
backfield — unestablished
The shares below are measured. The classification is not, and this screen does not supply one.
Christian McCaffrey — 95.7% of the room, earned in SF · Khalil Herbert — 4.3% of the room, earned in NYJ
Not all of the 2025 opportunity these two backs carry was earned in SF — the room each of them earned it in is named beside his share.
why no band was derived
No handcuff band is established. Deriving one from the 2025 distribution was attempted and refused: across the 32 teams the RB1 share of the room's 2025 opportunity runs 38.9% to 95.7% with a largest interior gap of 7.6 pp, and 32 points drawn uniformly on that range produce a gap that large 29.3% of the time (100,000 trials). The distribution is not bimodal, so there is no trough to put a threshold in, and a round number would be a guess wearing a measurement's clothes. The shares below are measured; the verdict is not. NOTE the population: they are the 2026 room's 2025 opportunity, so a back who changed teams carries his old volume into his new room and this describes no backfield that existed in 2025.
- Mac JonesQBdrafted 2021published QB2by opportunity QB11 slot higher3.3/wk36 opportunities over 11 weeks
- Brock PurdyQBdrafted 2022published QB1by opportunity QB21 slot lower3.7/wk33 opportunities over 9 weeks
- Adrian MartinezQBdrafted 2023published QB4by opportunity QB31 slot higher1.0/wk1 opportunities over 1 weeks
published order only — no 2025 stat row to rank them by1
- Kurtis Rourkedrafted 2025published QB3published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Christian McCaffreyRBdrafted 2017published RB1by opportunity RB1same slot25.9/wk440 opportunities over 17 weeks
- Khalil HerbertRBdrafted 2021published RB6by opportunity RB24 slots higher4.0/wk20 opportunities over 5 weeksall of this 2025 opportunity was earned in NYJ
- Isaac GuerendoRBdrafted 2024published RB4by opportunity RB31 slot higher0.0/wk0 opportunities over 7 weeks
published order only — no 2025 stat row to rank them by3
- Kaelon Blackrookie, drafted 2026published RB2published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Jordan Jamesdrafted 2025published RB3published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Sincere McCormickdrafted 2022published RB5published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Deebo SamuelWRdrafted 2019published WR2by opportunity WR11 slot higher7.3/wk116 opportunities over 16 weeksall of this 2025 opportunity was earned in WAS
- Mike EvansWRdrafted 2014published WR1by opportunity WR21 slot lower7.8/wk62 opportunities over 8 weeksall of this 2025 opportunity was earned in TB
- Ricky PearsallWRdrafted 2024published WR14by opportunity WR311 slots higher6.1/wk55 opportunities over 9 weeks
- Christian KirkWRdrafted 2018published WR4by opportunity WR4same slot4.7/wk52 opportunities over 11 weeksall of this 2025 opportunity was earned in HOU
- Demarcus RobinsonWRdrafted 2016published WR5by opportunity WR5same slot2.6/wk36 opportunities over 14 weeks
- KhaDarel HodgeWRdrafted 2018published WR12by opportunity WR66 slots higher1.3/wk10 opportunities over 8 weeksall of this 2025 opportunity was earned in ATL
- Jordan WatkinsWRdrafted 2025published WR6by opportunity WR71 slot lower1.5/wk3 opportunities over 2 weeks
- Malik TurnerWRdrafted 2018published WR8by opportunity WR8same slot0.5/wk1 opportunities over 2 weeks
published order only — no 2025 stat row to rank them by6
- De'Zhaun Striblingrookie, drafted 2026published WR3published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Jacob Cowingdrafted 2024published WR7published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Trenton Irwindrafted 2019published WR9published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Wesley Grimesdraft year not found — this player is in no crosswalk rowpublished WR10published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Will Paulingdraft year not found — this player is in no crosswalk rowpublished WR11published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- Brandon Aiyukdrafted 2020published WR13published order only — no measured opportunity to rank him bynot matched to a 2025 stat row
- George KittleTEdrafted 2017published TE1by opportunity TE1same slot6.4/wk70 opportunities over 11 weeks
- Jake TongesTEdrafted 2022published TE2by opportunity TE2same slot4.6/wk46 opportunities over 10 weeks
- Luke FarrellTEdrafted 2021published TE3by opportunity TE3same slot1.1/wk14 opportunities over 13 weeks
- Brayden WillisTEdrafted 2023published TE4by opportunity TE4same slot0.2/wk1 opportunities over 6 weeks
- Hayden RucciTEdrafted 2025published TE5by opportunity TE5same slot0.0/wk0 opportunities over 1 weeksall of this 2025 opportunity was earned in MIA
published order only — no 2025 stat row to rank them by1
- Khalil Dinkinsrookie, drafted 2026published TE6published order only — no measured opportunity to rank him bynot matched to a 2025 stat row