Every game, every stat category, and what the board says. 19.71 points per game in 2025, an ADP of 104, usage worth 17.9.
26 years old · 4 seasons of experience · 2022 draft class
| SLEEPER | 113.1 |
| ESPN | 105.4 |
| YAHOO | 98 |
| UNDERDOG | 102 |
| CBS | 99.5 |
| FFA | 101 |
| Goes around | Round 9, pick 8 in a 12-team draft |
| Positional rank | QB13 |
| Bye week | 8 |
| ADP standard deviation | 6.9 picks |
Our board has him at 324.3 points, 19.3 per game — 4,604 passing yards, 28 passing TDs, 267 rushing yards. That is QB3, 101 overall.
The range runs from a floor of 15.5 points per game to a ceiling of 25.9, with the median at 19.3. Boom rate 35%, bust rate 20%. The spread is the actual bet, not the middle number.
He goes at 104 on consensus and our board has him 101. We rank him 3 picks better than the room drafts him, so the market is underpricing him — that is the disagreement worth acting on.
consistently productive for three straight years but has also gotten hurt somewhat more than his mobility level alone would predict — read as bad luck, not a durability pattern tied to playing style, distinguished from a genuinely reckless, high-contact running QB. Adding a proven, high-red-zone-value receiver (Mike Evans) opens a real, provable path to more scoring efficiency without needing any change in overall passing volume.
buy · medium conviction · 2026-08San Francisco 49ers returns 5 of 6 continuity slots, replacing wr1. Brock Purdy at quarterback, Kyle Shanahan as head coach, Klay Kubiak calling it. The offense projects to 33.7 pass attempts a game at high confidence and 27.7 rushes.
In: Mike Evans (wr1), De'Zhaun Stribling (wr2), Christian Kirk (wr4), Jacob Cowing (wr7), Kaelon Black (rb2). Out: Jauan Jennings (wr1), Kendrick Bourne (wr3), Brian Robinson Jr. (rb2).
The projected target split across the offense:
| De'Zhaun Stribling | 16.1% |
| Mike Evans | 11.8% |
| George Kittle | 11.5% |
| Ricky Pearsall | 10.4% |
| Christian Kirk | 9.2% |
| Christian McCaffrey | 8.9% |
Key additions: Signed WR Mike Evans from Bucs in free agency. Signed WR Christian Kirk in free agency. Drafted WR De'Zhaun Stribling in the 2nd round from Ole Miss. Drafted RB Kaelon Black in the 3rd round.
Key departures: WR Brandon Aiyuk (who did not play all of 2025 due to injury) is gone. WR Jauan Jennings is also gone. He has functioned as 49ers WR 1/2 for the past two seasons. RB Brian Robinson Jr left to ATL in free agency.
Notes: Stribling round 2 has opportunity to break out early. Mike Evans signing in free agency. Should be alpha WR1 but aging & injury risk. Potential sell high but should produce in 2026. Drafted RB Kaelon Black round 3 from Indiana. Black was not even invited to the NFL combine, but 49ers LOVE him. Could assume RB2 role immediately if he beats out Jordan James. Ricky Pearsall has an opportunity to break out as a WR2 but needs to stay healthy enough to do so. Signed Christian Kirk in offseason, veteran with no fantasy value but will take away targets. Kittle recovering from torn achilles. Drafted Wills the TE. Tonges should function as primary TE2, Wills will be TE3. CMC is a potential sell high candidate but know if healthy he is the number 1 overall RB in 2026.
How the volume number was reached: Same QB Brock Purdy returning — anchor to 2025 actuals (33.7 att/g); Regressed 30% toward league mean 33.5, floored at 30 → 33.6 att/g.
Base case 247.4 PPR points, with a bear case of 194.8 and a bull case of 293.7, and a comp mean of 239.7. The model puts 50% probability on him beating this and 50% on falling short. Drawn from 20 comparable quarterback seasons.
| Comparable season | What he actually scored | Distance |
|---|---|---|
| Dak Prescott 2022 | 373.5 | 0.5 |
| Jon Kitna 2010 | 3.3 | 0.5 |
| Jay Cutler 2013 | 255.6 | 0.6 |
| Marcus Mariota 2015 | 259.9 | 0.6 |
| Lamar Jackson 2021 | 236.1 | 0.6 |
Cross-check against the dynasty market: his production ranks in the 38th percentile and his value in the 59th, which the engine reads as above production. Players with a similar production-against-value gap saw dynasty value move -19.6% over the following year, across 24 cases — a dynasty signal, not a 2026 scoring one.
Offensive environment: SF rates 25.4 against a league average of 23, 2.4 points above it on opponent-adjusted least squares (multi-capture merge).
Opponent-adjusted pass defense faced, against 2025 ratings. Positive is an easier slate.
| Full season | -2.6 · harder |
| Weeks 1–6 | +1.9 · easier |
| Weeks 12–17 | -8.4 · harder |
| Fantasy playoffs (15–17) | -15.3 · harder |
Read this narrowly. Our own testing found that season-long strength of schedule does not survive as a draft input — defensive quality is among the least stable team properties year to year, and a preseason slate is built on last year's identities. The playoff-weeks column is the only one we would let break a tie, and even then it is a tiebreaker rather than a reason. The finding.
From the absence record rather than a depth chart — who actually gained when he was out.
| Season | Games missed | Main beneficiary | Their PPR gain |
|---|---|---|---|
| 2025 | 5 | Mac Jones | +15.8 |
| 2024 | 2 | Brandon Allen | +9.5 |
Everything in this section is about his dynasty trade value — what he is worth as a long-term asset in the trade market. It is not a forecast of his 2026 fantasy scoring. A player can be a fine redraft pick while his dynasty value falls, and the reverse. The redraft read is above; this is a different question with a different answer.
His dynasty value has moved +3.7% over the last twelve months. The market cycle classifies him as stable.
For context on how long this lasts at the position: the average career at his position produces 2.8 elite seasons and 3.1 startable seasons.
Matched on production profile — production-driven (pedigree ignored). The last column is how that player’s dynasty value moved the following year — a market outcome, not a scoring one.
| Player | Season | Their PPG | Similarity | Next year |
|---|---|---|---|---|
| Kirk Cousins | 2023 | 18.7 | 69% | -24.4% |
| Russell Wilson | 2024 | 15.7 | 69% | -68.2% |
| Trevor Lawrence | 2024 | 14.5 | 68% | +31.6% |
| Joe Burrow | 2023 | 14.7 | 67% | +17.9% |
| Geno Smith | 2024 | 15.6 | 66% | -37.7% |
Of the 5 with a following season on record, 2 gained value, 3 lost it and 0 held roughly flat.
| Drafted | 2022, round 7, pick 262 by SFO |
| College | Iowa St. |
| Age at draft | 22 |
| Height | 6′1″ |
| Weight | 212 lb |
| 40-yard dash | 4.84s |
| Vertical | 27″ |
| 3-cone | 7.21s |
| Shuttle | 4.45s |
| Career PPR per game | 18.6 |
| Week-to-week variation | 0.4 |
| Boom rate | 27% |
| Bust rate | 16.2% |
| Games missed per season | 1.8 |
| Injury history | Right Shoulder, Right Elbow, Shoulder, Toe |
| Correlation between his posted line and his actual score | 0.43 |
That correlation is how closely the books’ posted line tracked what he actually scored, week to week. A higher number means the market has him figured out and there is less to exploit; a lower one means his weeks are harder to price.
Injury type matters more than games missed. Measured across our injury database, knee and foot returns stay below a player’s pre-injury baseline for all three of the first games back, while hamstring returns over-recover by the third.
His best game was Week 17 against CHI — 36.92 PPR on 0 targets and a 0% target share, in a game that finished 42-38. His worst was Week 18 against SEA at 5.18, on 0 targets, final score 3-13. Across 9 games he cleared 20 points 3 times and came in under 8 points 2 times. In the 3 games decided by 8 points or fewer he averaged 23.8; in the 6 decided by more, 17.7. He scored more when the game was live.
His usage that season was worth 17.9 points per game. He scored 19.71, 1.3% above it. The engine classified the season as neutral.
| Wk | Opp | Score | PPR | Yds | Car | Rush | TD | Tgt% | Snap% |
|---|---|---|---|---|---|---|---|---|---|
| 1 | SEA | 17-13 | 16.78 | 0 | 5 | 17 | 2 | 0% | 100% |
| 4 | JAX | 21-26 | 17.66 | 0 | 2 | 13 | 2 | 0% | 100% |
| 11 | ARI | 41-22 | 19.3 | 0 | 1 | -7 | 3 | 0% | 91% |
| 12 | CAR | 20-9 | 7.32 | 0 | 6 | 16 | 1 | 0% | 100% |
| 13 | CLE | 26-8 | 17.12 | 0 | 2 | 4 | 2 | 0% | 94% |
| 15 | TEN | 37-24 | 26.2 | 0 | 7 | 44 | 3 | 0% | 100% |
| 16 | IND | 48-27 | 30.9 | 0 | 2 | 11 | 5 | 0% | 95% |
| 17 | CHI | 42-38 | 36.92 | 0 | 6 | 28 | 5 | 0% | 100% |
| 18 | SEA | 3-13 | 5.18 | 0 | 2 | 21 | 0 | 0% | 100% |
| Carries | 33 |
| Rushing yards | 147 |
| Touchdowns | 23 |
| Points per game | 19.71 |
| Yards per carry | 4.45 |
| Snap share | 97.78% |
| Target share | 0% |
| Air-yards share | 0% |
| Receiving EPA per game | 0 |
| Rushing EPA per game | 1.8 |
| Red-zone targets | 0 |
| Red-zone target share | 0% |
| End-zone target share | 0% |
| Red-zone carry share | 6.7% |
| Goal-line carry share | 7.4% |
| Expected receiving TDs | 0 |
| Actual receiving TDs | 0 |
| Receiving TD luck | 0 |
| Expected rushing TDs | 1.1 |
The offense threw it 574 times. 2 team-mates cleared the competing-target threshold.
| Christian McCaffrey | 24.76% |
| Jauan Jennings | 17.27% |
| George Kittle | 13.24% |
| Kendrick Bourne | 10.17% |
| Ricky Pearsall | 10.17% |
| Jake Tonges | 8.83% |
3 of his 9 games were blowouts, 38% of his snaps coming in them. He averaged 22.44 in those and 23.79 in close games — his scoring did not depend on garbage time.
His best game was Week 17 against DET — 30.28 PPR on 0 targets and a 0% target share, in a game that finished 34-40. His worst was Week 13 against BUF at 2.16, on 0 targets, final score 10-35. Across 15 games he cleared 20 points 7 times and came in under 8 points 2 times. In the 8 games decided by 8 points or fewer he averaged 19.4; in the 7 decided by more, 15.9. He scored more when the game was live.
His usage that season was worth 17 points per game. He scored 17.79, 4.7% above it. The engine classified the season as neutral.
| Wk | Opp | Score | PPR | Yds | Car | Rush | TD | Tgt% | Snap% |
|---|---|---|---|---|---|---|---|---|---|
| 1 | NYJ | 32-19 | 10.34 | 0 | 1 | 11 | 0 | 0% | 99% |
| 2 | MIN | 17-23 | 13.96 | 0 | 2 | 12 | 1 | 0% | 100% |
| 3 | LA | 24-27 | 25.78 | 0 | 10 | 41 | 3 | 0% | 100% |
| 4 | NE | 30-13 | 14.62 | 0 | 5 | 11 | 1 | 0% | 100% |
| 5 | ARI | 23-24 | 13.06 | 0 | 4 | 33 | 1 | 0% | 100% |
| 6 | SEA | 36-24 | 24.1 | 0 | 4 | 19 | 3 | 0% | 100% |
| 7 | KC | 18-28 | 17.18 | 0 | 8 | 27 | 2 | 0% | 100% |
| 8 | DAL | 30-24 | 26 | 0 | 8 | 56 | 2 | 0% | 100% |
| 10 | TB | 23-20 | 23.82 | 0 | 4 | 17 | 2 | 0% | 100% |
| 11 | SEA | 17-20 | 18.36 | 0 | 5 | 40 | 2 | 0% | 100% |
| 13 | BUF | 10-35 | 2.16 | 0 | 2 | 4 | 0 | 0% | 100% |
| 14 | CHI | 38-13 | 22.1 | 0 | 5 | 11 | 2 | 0% | 93% |
| 15 | LA | 6-12 | 3.98 | 0 | 1 | 3 | 0 | 0% | 100% |
| 16 | MIA | 17-29 | 21.12 | 0 | 4 | 26 | 2 | 0% | 100% |
| 17 | DET | 34-40 | 30.28 | 0 | 3 | 12 | 4 | 0% | 92% |
| Carries | 66 |
| Rushing yards | 323 |
| Touchdowns | 25 |
| Points per game | 17.79 |
| Yards per carry | 4.89 |
| Snap share | 98.93% |
| Target share | 0% |
| Air-yards share | 0% |
| Receiving EPA per game | 0 |
| Rushing EPA per game | 1.28 |
| Red-zone targets | 0 |
| Red-zone target share | 0% |
| End-zone target share | 0% |
| Red-zone carry share | 14.3% |
| Goal-line carry share | 17.9% |
| Expected receiving TDs | 0 |
| Actual receiving TDs | 0 |
| Receiving TD luck | 0 |
| Expected rushing TDs | 2.86 |
The offense threw it 533 times. 3 team-mates cleared the competing-target threshold.
| Jauan Jennings | 23.44% |
| George Kittle | 19.5% |
| Deebo Samuel | 16.8% |
| Brandon Aiyuk | 9.75% |
| Ricky Pearsall | 9.54% |
| Christian McCaffrey | 3.94% |
3 of his 15 games were blowouts, 14.6% of his snaps coming in them. He averaged 12.96 in those and 19.41 in close games — his scoring did not depend on garbage time.
His best game was Week 13 against PHI — 29.46 PPR on 0 targets and a 0% target share, in a game that finished 42-19. His worst was Week 16 against BAL at 2.4, on 0 targets, final score 19-33. Across 16 games he cleared 20 points 8 times and came in under 8 points 2 times. In the 3 games decided by 8 points or fewer he averaged 11.7; in the 13 decided by more, 20. He scored more when the game was not close.
His usage that season was worth 14.4 points per game. He scored 18.48, 25.3% above it. The engine classified the season as very_lucky.
| Wk | Opp | Score | PPR | Yds | Car | Rush | TD | Tgt% | Snap% |
|---|---|---|---|---|---|---|---|---|---|
| 1 | PIT | 30-7 | 16.8 | 0 | 3 | 20 | 2 | 0% | 97% |
| 2 | LA | 30-23 | 14.74 | 0 | 3 | 5 | 1 | 0% | 100% |
| 3 | NYG | 30-12 | 20.3 | 0 | 4 | -1 | 2 | 0% | 95% |
| 4 | ARI | 35-16 | 21.32 | 0 | 2 | 0 | 2 | 0% | 98% |
| 5 | DAL | 42-10 | 26.08 | 0 | 0 | 0 | 4 | 0% | 85% |
| 6 | CLE | 17-19 | 7.7 | 0 | 3 | 7 | 1 | 0% | 100% |
| 7 | MIN | 17-22 | 12.78 | 0 | 5 | 19 | 1 | 0% | 100% |
| 8 | CIN | 17-31 | 18.3 | 0 | 6 | 57 | 1 | 0% | 100% |
| 10 | JAX | 34-3 | 23.84 | 0 | 0 | 0 | 3 | 0% | 79% |
| 11 | TB | 27-14 | 26.72 | 0 | 4 | 14 | 3 | 0% | 100% |
| 12 | SEA | 31-13 | 10.46 | 0 | 3 | 1 | 1 | 0% | 100% |
| 13 | PHI | 42-19 | 29.46 | 0 | 2 | 9 | 4 | 0% | 93% |
| 14 | SEA | 28-16 | 21.42 | 0 | 2 | 7 | 2 | 0% | 100% |
| 15 | ARI | 45-29 | 25.68 | 0 | 0 | 0 | 4 | 0% | 82% |
| 16 | BAL | 19-33 | 2.4 | 0 | 1 | 2 | 0 | 0% | 73% |
| 17 | WAS | 27-10 | 17.6 | 0 | 1 | 4 | 2 | 0% | 93% |
| Carries | 39 |
| Rushing yards | 144 |
| Touchdowns | 33 |
| Points per game | 18.48 |
| Yards per carry | 3.69 |
| Snap share | 93.44% |
| Target share | 0% |
| Air-yards share | 0% |
| Receiving EPA per game | 0 |
| Rushing EPA per game | 0.71 |
| Red-zone targets | 0 |
| Red-zone target share | 0% |
| End-zone target share | 0% |
| Red-zone carry share | 6.8% |
| Goal-line carry share | 5% |
| Expected receiving TDs | 0 |
| Actual receiving TDs | 0 |
| Receiving TD luck | 0 |
| Expected rushing TDs | 1.22 |
The offense threw it 491 times. 4 team-mates cleared the competing-target threshold.
| Brandon Aiyuk | 23.13% |
| George Kittle | 19.82% |
| Deebo Samuel | 19.6% |
| Christian McCaffrey | 18.28% |
| Jauan Jennings | 7.27% |
| Ray-Ray McCloud | 3.3% |
8 of his 16 games were blowouts, 56.1% of his snaps coming in them. He averaged 20.73 in those and 11.74 in close games — a meaningful share of his scoring came with the game already decided.
His best game was Week 14 against TB — 21.7 PPR on 0 targets and a 0% target share, in a game that finished 35-7. His worst was Week 5 against CAR at -0.1, on 0 targets, final score 37-15. Across 9 games he cleared 20 points 1 time and came in under 8 points 3 times.
His usage that season was worth 10.1 points per game. He scored 11.81, 22.9% above it. The engine classified the season as lucky.
| Wk | Opp | Score | PPR | Yds | Car | Rush | TD | Tgt% | Snap% |
|---|---|---|---|---|---|---|---|---|---|
| 5 | CAR | 37-15 | -0.1 | 0 | 1 | -1 | 0 | 0% | 1% |
| 7 | KC | 23-44 | 0.74 | 0 | 1 | 1 | 0 | 0% | 13% |
| 11 | ARI | 38-10 | 0.3 | 0 | 3 | 3 | 0 | 0% | 12% |
| 13 | MIA | 33-17 | 14.3 | 0 | 4 | -1 | 2 | 0% | 90% |
| 14 | TB | 35-7 | 21.7 | 0 | 2 | 3 | 3 | 0% | 83% |
| 15 | SEA | 21-13 | 16.48 | 0 | 4 | -2 | 2 | 0% | 100% |
| 16 | WAS | 37-20 | 15.96 | 0 | 1 | 6 | 2 | 0% | 100% |
| 17 | LV | 37-34 | 17.06 | 0 | 2 | -3 | 2 | 0% | 100% |
| 18 | ARI | 38-13 | 19.82 | 0 | 4 | 7 | 3 | 0% | 82% |
| Carries | 22 |
| Rushing yards | 13 |
| Touchdowns | 14 |
| Points per game | 11.81 |
| Yards per carry | 0.59 |
| Snap share | 64.56% |
| Target share | 0% |
| Air-yards share | 0% |
| Receiving EPA per game | 0 |
| Rushing EPA per game | -1.16 |
| Red-zone targets | 0 |
| Red-zone target share | 0% |
| End-zone target share | 0% |
| Red-zone carry share | 6% |
| Goal-line carry share | 8.1% |
| Expected receiving TDs | 0 |
| Actual receiving TDs | 0 |
| Receiving TD luck | 0 |
| Expected rushing TDs | 1.64 |
The offense threw it 512 times. 3 team-mates cleared the competing-target threshold.
| Brandon Aiyuk | 23.7% |
| Deebo Samuel | 19.54% |
| George Kittle | 17.88% |
| Christian McCaffrey | 13.51% |
| Jauan Jennings | 11.64% |
| Ray-Ray McCloud | 5.2% |
He caught passes from 2 quarterbacks that season, and the splits are not close.
| QB | Games | Targets | PPG | Y/T | Tgt% |
|---|---|---|---|---|---|
| Brock Purdy | 6 | 0 | 17.55 | — | 0% |
| Jimmy Garoppolo | 3 | 0 | 0.31 | — | 0% |
6 of his 9 games were blowouts, 55% of his snaps coming in them. He averaged 9.74 in those and 16.77 in close games — his scoring did not depend on garbage time.
Ask the Coach about Brock Purdy →