luckadjusted

Week 3 2025 · September 21, 2025

Cardinals at 49ers, Week 3 2025: who deserved to win?

The 49ers beat the Cardinals 16–15, and it was no fluke: replayed with the way both teams actually played, the 49ers win 9 of 10. The Cardinals had the bounces: injuries alone were worth 8.7 points to the Cardinals.

An off day for the Cardinals: their offense played far below its usual level. In a fresh game against the 49ers they would win 45% of the time; with this day’s form, 14%. The numbers

Before kickoff the 49ers were 54% favorites. The biggest swing (Q4, 0:04 left): E. Pineiro made 35-yard field goal, worth 34 points of win probability to the 49ers.

Final

Arizona Cardinals 15
San Francisco 49ers 16

September 21, 2025 · Levi's Stadium · Closing line: 49ers −1.5

Luck index +14 49ers about even · −14 Cardinals

Each team’s own plays from this game, resampled into new drives 4,000 times: with the way both teams actually played, how often does this performance win? How the replay works

Ten replays. Cardinals win 1, 49ers win 9.

  1. 1 ARI 23 SF 16
  2. 2 ARI 29 SF 31
  3. 3 ARI 19 SF 24
  4. 4 ARI 13 SF 20
  5. 5 ARI 17 SF 27
  6. 6 ARI 0 SF 12
  7. 7 ARI 6 SF 20
  8. 8 ARI 0 SF 18
  9. 9 ARI 7 SF 29
  10. 10 ARI 6 SF 35

Three other ways to ask

Each answers a different question, so none of them replaces the replay above.

The closing betting line, turned into a probability. What everyone knew before the game.

The line plus what this game showed, weighted by how much one game can tell. It stays close to the line because one game says little.

Every kick, fumble bounce, drop, conversion and judgment call redrawn; everything else fixed. The narrowest view of luck.

An off day for the Cardinals

Their offense played far below its usual level. In a fresh game against the 49ers they would win 45% of the time; with this day’s form, 14%.

31 points apart for the Cardinals: the gap is how differently this game went from what the two teams usually are.

UnitThis gameUsual levelBetter or worse than usual
Cardinals offenseEPA per play gained −0.01 +0.12 worse by 0.13
Cardinals defenseEPA per play allowed +0.01 +0.09 better by 0.08
49ers offenseEPA per play gained +0.01 +0.16 worse by 0.15
49ers defenseEPA per play allowed −0.01 +0.08 better by 0.09

EPA (expected points added) per play on competitive snaps, turnovers left out because they are valued as luck. Usual level: the team’s earlier games this season plus half of last season, pulled toward the league average. One team’s defense and the other team’s offense are the same snaps, so one game can’t fully say whose day it was; it shows how far this one was from both teams’ norms.

How 4,000 replays ended

Cardinals win 13% of them, 49ers 87%, counting the 2% still level after regulation as half each. The line is what actually happened: 49ers by 1.

Show as a table
Final margin in the replaysShare of replays
Cardinals by 17+0.7%
Cardinals by 9–163.0%
Cardinals by 1–88.3%
Level after regulation1.8%
49ers by 1–821.6%
49ers by 9–1626.1%
49ers by 17+38.5%

Where the luck was

Take the luck out

The final margin was 49ers by 1. Remove the luck, one kind at a time, and it becomes 49ers by 16.0.

Each row takes one kind of luck out of the margin. Color shows which team it helped. Luck shares are the fitted ones (how much of each component is luck).

The kicks

How likely each kicker was to make that kick (his own record, the distance and the weather), and what happened.

  • C. Ryland, 57 yds missed · 56% expected
  • C. Ryland, 34 yds made · 92% expected
  • E. Pineiro, 38 yds made · 90% expected
  • E. Pineiro, 51 yds made · 72% expected
  • C. Ryland, 28 yds made · 96% expected
  • E. Pineiro, 35 yds made · 93% expected
Bar: expected chance of a make. Filled dot: made. Open dot: missed or blocked.

When it happened

49ers’ chance of winning

As low as 14% and as high as 100%. Numbers mark the biggest luck moments, listed below.

nflfastR’s in-game win probability. It ignores the betting line, so it starts near even. Shaded above the middle while the 49ers were ahead in it, below while the Cardinals were.
#WhenWhat happenedWin probability forNext drive
1 Q3 9:16 The Cardinals converted 4th & 43rd & 4th downs · 45% expected +13% ARI ARI: Field goal
2 Q3 6:43 The Cardinals were stopped on 3rd & 53rd & 4th downs · 33% expectedE. Demercado dropped a catchable passDrops · 2 drops on 39 catchable balls before this +14% SF ARI: Field goal
3 Q4 14:22 The Cardinals were stopped on 3rd & 13rd & 4th downs · 74% expectedIntentional Grounding on the Cardinals (Kyler Murray), 10 yardsJudgment calls · 9 flags in 5547 snaps before, position avg 1 per 625 +14% SF ARI: Punt
4 Q4 12:06 The 49ers converted 4th & 23rd & 4th downs · 62% expected +17% SF SF: Touchdown
5 Q4 9:29 Defensive Pass Interference on the 49ers (Renardo Green), 33 yardsJudgment calls · 3 flags in 876 snaps before, position avg 1 per 213 +19% ARI ARI: Touchdown
6 Q4 5:19 The 49ers were stopped on 3rd & 53rd & 4th downs · 43% expectedThe 49ers threw an interception-worthy pass, and it was pickedInterceptions · 49% expected to stay out of the defense's hands +18% ARI SF: Safety
7 Q4 3:26 Offensive Holding on the 49ers, 6 yardsJudgment calls +23% ARI ARI: Punt
8 Q4 0:04 E. Pineiro made 35-yard field goalKicks · 93% expected for him +34% SF –

Missing players

Key players (usually on the field for half the snaps or more) who missed this game or part of it, valued by position and quality. The same players are missing in every replay, so this counts as luck in points only.

  • Brock Purdy (SF QB), out, replaced by m.jones · 8.3 pts
  • George Kittle (SF TE), out (IR) · 1.1 pts
  • Jauan Jennings (SF WR), out · 0.6 pts
  • Malik Mustapha (SF FS), out (IR) · 0.4 pts
  • Ben Bartch (SF OL), out (IR) · 0.1 pts
  • Ben Bartch (SF G), out (IR) · 0.1 pts
  • Sean Murphy-Bunting (ARI CB), out (IR) · 0.7 pts
  • Garrett Williams (ARI CB), out (IR) · 0.5 pts
  • Will Johnson (ARI CB), out · 0.3 pts
  • Christian Jones (ARI T), out (IR) · 0.2 pts
  • L.J. Collier (ARI DT), out (IR) · 0.1 pts

Adjust the assumptions

Disagree with how much of a fumble bounce or a pass interference call is luck? Change it and the coin-flip replay reruns in your browser.

Only coin-flips re-rolled

Cardinals 16% · 49ers 84%

Final margin
49ers by 1
Luck in points
15.0 for the Cardinals
Luck-adjusted margin
49ers by 16.0
Replay with same day's form
Cardinals 13% · 49ers 87% unchanged: why
How much of each is luck?

0% treats it as skill, 100% as pure luck. The tick is our fit.

What counts

We tested momentum on 19,000 lucky breaks and found none, so it's off by default. Why

Flip a play

Force the other outcome, in this game and in every replay: a made kick becomes a miss, a stop becomes a conversion, a flag goes the other way.

About these numbers

Play-by-play and win probability from nflfastR via nflverse; kicks valued against each kicker’s own record; drops and interception-worthy throws from FTN charting; injuries from snap counts and injury reports.

Methodology and validation · All Week 3 2025 games · Cardinals · 49ers

More from Week 3 2025