Week 4 · Sunday 16:25
DEN
at
SF
Levi's Stadium · outdoors · grass
DEN moneyline+140
SF moneyline-166
SpreadSF -3
Total48.5
Denver Broncos at San Francisco 49ers
Every game this week on Leo’s Week 4 card →
This is a pre-game analysis page. Every stat above the Final result comes from games played before this one (through Week 3), and Leo’s numbers were frozen before kickoff. Market numbers are the closing line. Nothing here is a wager — the pick gate stays closed until Leo shows it can beat that line.
Leo’s read
What the model expected, frozen before kickoff (Oct 4, 3:45 PM ET). Each player projection is rate × volume × opponent adjustment — the columns show every input. None of this is a wager.
Leo win chanceSF 76%chance to win; information, not a pick
Leo total45.4points, both teams
Leo marginSF by 9.3expected winning margin
Passing yards
| Player | yds/att | att | opp adj | games | Leo |
|---|
| Brock Purdy SF QB1 |
8.7 | 29.2 | 1 | 3 |
257 |
| Bo Nix DEN QB1 |
6.5 | 33 | 1 | 3 |
200 |
Rushing yards
| Player | yds/carry | car | opp adj | games | Leo |
|---|
| Christian McCaffrey SF RB1 |
4 | 13.4 | 1.1 | 3 |
62 |
| J.K. Dobbins DEN RB1 |
4.6 | 12.8 | 1 | 3 |
60 |
| Kaelon Black SF RB2 |
4.4 | 8.5 | 1.1 | 3 |
43 |
| RJ Harvey DEN RB2 |
3.8 | 4.8 | 1 | 2 |
19 |
Receiving yards
| Player | yds/tgt | tgt | opp adj | games | Leo |
|---|
| Mike Evans SF WR1 |
9.3 | 6.4 | 1 | 3 |
65 |
| Jaylen Waddle DEN WR1 |
6.1 | 7.3 | 1 | 3 |
46 |
| Jordan Watkins SF WR3 |
20.6 | 1.8 | 1 | 1 |
42 |
| Courtland Sutton DEN WR2 |
5.7 | 6.3 | 1 | 3 |
38 |
| Deebo Samuel Sr. SF WR2 |
5.5 | 5.7 | 1 | 3 |
36 |
| Pat Bryant DEN WR3 |
9.1 | 3.3 | 1 | 3 |
33 |
Get Leo’s NFL card by email
Every game, Leo’s winner and total, and the most likely touchdown scorers, before kickoff. Free. Unsubscribe anytime.
Injury report
The official Week 4 report for each side, as captured Mon, Oct 5, 5:46 PM ET. Teams file game statuses on the last practice day; anyone not listed is expected to play. Final inactives come 90 minutes before kickoff.
DEN
Game status
1 out
- Out
Dondrea TillmanLB
Hamstring
SF
Game status
3 out · 4 questionable
- Out
Mykel WilliamsDE
Knee
- Out
Nick BosaDE
Knee / Calf
- Out
James Thompson Jr.DT
Ankle
- Questionable
Mike EvansWR
Ribs
- Questionable
Keion WhiteDE
Hamstring
- Questionable
Dre GreenlawLB
Quadricep
- Questionable
Jaden DuggerLB
Shoulder
Leo ratings — head to head
Each rating is 0–100 against the league this season, built from efficiency rather than record: 50 is average, every 15 points is one standard deviation. These describe the teams — they are not used to price the game.
DEN
This season
SF
45
QuarterbackEPA, accuracy, giveaways
79
46
Offenseefficiency, explosives, ball security
73
62
DefenseEPA allowed, pressure, takeaways
40
54
Overall
57
QB 52 · OFF 52 · DEF 68
Last season
QB 63 · OFF 56 · DEF 35
The turnover battle
Interceptions thrown against interceptions caught, and the same for fumbles. Bold is the better side of each line.
DEN |
Per game, this season |
SF |
| 1.00 | Interceptions thrown | 0.33 |
| 1.33 | Interceptions caught | 0.33 |
| 0.33 | Fumbles lost | 0.00 |
| 0.00 | Fumbles forced | 1.00 |
| 1.33 | Takeaways | 1.33 |
| 1.33 | Giveaways | 0.33 |
| 0 | Net turnover margin | +1 |
Efficiency detail
The inputs behind the ratings above, shown raw so you can check the work.
DEN |
Offense |
SF |
| +0.007 | EPA per dropback | +0.350 |
| -2.1 | Completion % over expected | +5.4 |
| 2.5% | Interception rate | 2.2% |
| 4.3% | Sack rate taken | 2.6% |
| -0.052 | Rush EPA per carry | -0.006 |
| 5.1% | Explosive play rate | 6.0% |
DEN |
Defense |
SF |
| -0.035 | EPA allowed per play | +0.047 |
| 5.29 | Yards allowed per play | 5.37 |
| 5.3% | Sack rate | 2.5% |
| 1.4% | Interception rate forced | 0.5% |
Team comparison
Season totals on both sides of the ball. Left column is DEN, right is SF.
DEN |
This season |
SF |
| 3 | Games | 3 |
| 201.7 | Pass yards/g | 263 |
| 81 | Rush yards/g | 136.3 |
| 4 | Passing TD | 9 |
| 3 | Interceptions thrown | 1 |
| 254.3 | Pass yards allowed/g | 215 |
| 143.7 | Rush yards allowed/g | 105.7 |
| 4 | Interceptions forced | 1 |
DEN |
Last season |
SF |
| 228.6 | Pass yards/g | 250.2 |
| 114.1 | Rush yards/g | 105.3 |
| 29 | Passing TD | 36 |
| 13 | Interceptions thrown | 19 |
| 209.2 | Pass yards allowed/g | 231.7 |
| 98.5 | Rush yards allowed/g | 113.1 |
This season
Starting quarterback, lead backs and top receivers, by actual usage this season — games before this one only.
DEN
2026
Quarterback
Leo QB45
| Player | G | C/ATT | Comp% | Yards | Y/G | TD/INT | Y/A |
| Bo Nix | 3 | 56/93 |
60.2% | 605 | 201.7 |
4 / 3 | 6.5 |
Running back
| Player | G | Car | Yards | Y/C | TD |
| J.K. Dobbins | 3 | 35 |
121 | 3.5 | 0 |
| Jonah Coleman | 2 | 10 |
39 | 3.9 | 1 |
Receivers
| Player | G | Rec/Tgt | Catch% | Yards | Y/G | TD |
| Jaylen Waddle WR1 | 3 |
11/20 | 55% | 150 |
50 | 0 |
| Courtland Sutton WR2 | 3 |
8/16 | 50% | 82 |
27.3 | 0 |
| Evan Engram TE | 3 |
5/8 | 62.5% | 60 |
20 | 1 |
SF
2026
Quarterback
Leo QB79
| Player | G | C/ATT | Comp% | Yards | Y/G | TD/INT | Y/A |
| Brock Purdy | 3 | 60/83 |
72.3% | 789 | 263 |
9 / 1 | 9.5 |
Running back
| Player | G | Car | Yards | Y/C | TD |
| Christian McCaffrey | 3 | 35 |
166 | 4.7 | 3 |
| Kaelon Black | 3 | 25 |
107 | 4.3 | 0 |
Receivers
| Player | G | Rec/Tgt | Catch% | Yards | Y/G | TD |
| Mike Evans WR1 | 3 |
12/16 | 75% | 137 |
45.7 | 2 |
| Deebo Samuel Sr. WR2 | 3 |
9/11 | 81.8% | 159 |
53 | 2 |
| George Kittle TE | 3 |
12/16 | 75% | 174 |
58 | 3 |
Last season
The same players' full prior season, for a baseline the early-season sample cannot give you.
DEN
2025
Quarterback
Leo QB52
| Player | G | C/ATT | Comp% | Yards | Y/G | TD/INT | Y/A |
| Bo Nix | 18 | 414/658 |
62.9% | 4210 | 233.9 |
28 / 12 | 6.4 |
Running back
| Player | G | Car | Yards | Y/C | TD |
| RJ Harvey | 19 | 165 |
597 | 3.6 | 7 |
| J.K. Dobbins | 10 | 153 |
772 | 5 | 4 |
Receivers
| Player | G | Rec/Tgt | Catch% | Yards | Y/G | TD |
| Courtland Sutton WR1 | 19 |
81/138 | 58.7% | 1087 |
57.2 | 8 |
| Troy Franklin WR2 | 17 |
65/104 | 62.5% | 709 |
41.7 | 6 |
| Evan Engram TE | 18 |
53/82 | 64.6% | 487 |
27.1 | 1 |
SF
2025
Quarterback
Leo QB63
| Player | G | C/ATT | Comp% | Yards | Y/G | TD/INT | Y/A |
| Brock Purdy | 11 | 230/342 |
67.3% | 2569 | 233.5 |
22 / 13 | 7.5 |
Running back
| Player | G | Car | Yards | Y/C | TD |
| Christian McCaffrey | 19 | 337 |
1285 | 3.8 | 10 |
| Brian Robinson | 19 | 95 |
404 | 4.3 | 2 |
Receivers
| Player | G | Rec/Tgt | Catch% | Yards | Y/G | TD |
| Jauan Jennings WR1 | 17 |
58/98 | 59.2% | 711 |
41.8 | 9 |
| Ricky Pearsall WR2 | 10 |
36/55 | 65.5% | 528 |
52.8 | 0 |
| George Kittle TE | 12 |
58/71 | 81.7% | 634 |
52.8 | 7 |
Touchdown props
Leo’s chance that each player scores a rushing or receiving touchdown in this game, the three most likely on each side, from its last read before kickoff.
Most likely to score: Christian McCaffrey (SF, 56%) and Mike Evans (SF, 39%). In 2023 to 2025, Leo’s top pick in a game scored 47% of the time, and at least one of its top two scored 69% of the time.
DEN
Leo’s chance
- RJ Harvey
RB2
23%
no TD
- J.K. Dobbins
RB1
20%
no TD
- Pat Bryant
WR3
20%
no TD
SF
Leo’s chance
- Christian McCaffrey
RB1
56%
scored
- Mike Evans
WR1
39%
no TD
- Deebo Samuel Sr.
WR2
38%
scored
Final result
DEN 14
– 24 SF 
How the game was played
Quarterback, the backs who carried it and the receivers who caught it.
DEN
| Bo Nix QB |
25/42 | 214 yds | 1 TD | 0 INT |
| J.K. Dobbins RB |
11 car | 40 yds | 0 TD | 2 rec, 12 yds |
| RJ Harvey RB |
7 car | 25 yds | 0 TD | 10 rec, 68 yds |
| Tyler Badie RB |
2 car | 7 yds | 0 TD | 2 rec, 32 yds |
| RJ Harvey RB |
10/10 | 68 yds | 0 TD | |
| Pat Bryant WR |
3/3 | 47 yds | 0 TD | |
| Jaylen Waddle WR |
5/6 | 35 yds | 1 TD | |
SF
| Brock Purdy QB |
19/30 | 218 yds | 2 TD | 0 INT |
| Christian McCaffrey RB |
15 car | 52 yds | 1 TD | 3 rec, 18 yds |
| Kaelon Black RB |
6 car | 13 yds | 0 TD | |
| Deebo Samuel Sr. WR |
3 car | 44 yds | 0 TD | 5 rec, 26 yds |
| Mike Evans WR |
5/8 | 76 yds | 0 TD | |
| George Kittle TE |
4/6 | 70 yds | 1 TD | |
| Kyle Juszczyk FB |
2/2 | 28 yds | 0 TD | |
How Leo’s read held up
What Leo expected before kickoff, the posted number he was calling against, and what happened. A winner call is only made when one side is above 60%; a yardage or points call needs a real gap from the line before Leo takes a side.
| Market | Leo expected | Line | Actual | Leo’s side and result |
|---|
| Winner | SF 76% | — | SF won | RIGHT |
| Total points | 45.4 | 48.5 | 38 | UNDER · RIGHT |
| Margin | SF by 9.3 | SF −3 | SF by 10 | SF −3 · RIGHT |
“Main reason” names which of Leo’s two inputs was further off — how much the player was used, or how efficient he was when he was.
Passing yards
| Player | Line | Leo | Side | Actual | Off by | Main reason | Result |
|---|
| Brock Purdy SF |
236.5 | 257 |
OVER |
218 |
39 |
Less efficient (7.3 vs 8.7 yds/att) |
WRONG |
| Bo Nix DEN |
222.5 | 200 |
UNDER |
214 |
14 |
On target |
RIGHT |
Rushing yards
| Player | Line | Leo | Side | Actual | Off by | Main reason | Result |
|---|
| Kaelon Black SF |
20.5 | 43 |
OVER |
13 |
30 |
Less efficient (2.2 vs 4.4 yds/carry) |
WRONG |
| J.K. Dobbins DEN |
59.5 | 60 |
no side |
40 |
20 |
Less efficient (3.6 vs 4.6 yds/carry) |
NO LEAN |
| Christian McCaffrey SF |
67.5 | 62 |
UNDER |
52 |
10 |
Less efficient (3.5 vs 4 yds/carry) |
RIGHT |
| RJ Harvey DEN |
15.5 | 19 |
OVER |
25 |
6 |
On target |
RIGHT |
Receiving yards
| Player | Line | Leo | Side | Actual | Off by | Main reason | Result |
|---|
| Courtland Sutton DEN |
39.5 | 38 |
no side |
4 |
34 |
Less efficient (0.7 vs 5.7 yds/tgt) |
NO LEAN |
| Pat Bryant DEN |
22.5 | 33 |
OVER |
47 |
14 |
More efficient (15.7 vs 9.1 yds/tgt) |
RIGHT |
| Jaylen Waddle DEN |
58.5 | 46 |
UNDER |
35 |
11 |
Fewer targets (6 vs 7.3 expected) |
RIGHT |
| Mike Evans SF |
43.5 | 65 |
OVER |
76 |
11 |
More targets (8 vs 6.4 expected) |
RIGHT |
| Deebo Samuel Sr. SF |
34.5 | 36 |
no side |
26 |
10 |
Less efficient (4.3 vs 5.5 yds/tgt) |
NO LEAN |
Player and team statistics from the open nflverse dataset. Roles assigned by actual usage — most attempts, carries and targets — not depth chart.