Shaded = the better side of each row. Rows with no clear “better” (plays, drives, attempts, penalties, possession) aren’t shaded. Efficiency, What it cost them and Early vs late downs use the nflfastR/rbsdm play filter, so a team’s EPA/play here can differ from its season figure on the team pages; Team stats follows the official box-score conventions instead.
ARIEfficiencySF
| +0.15(85) | EPA / play(plays) | +0.45(53) |
| +0.23(56) | ↳ Passing | +0.84(31) |
| −0.02(29) | ↳ Rushing | −0.09(22) |
| 52% | Success rate | 57% |
| 50% | ↳ Passing | 61% |
| 55% | ↳ Rushing | 50% |
| 31% | 1st down rate | 43% |
| 36% | ↳ Passing | 55% |
| 21% | ↳ Rushing | 27% |
| 0(0%) | Explosive plays(rate) | 10(19%) |
| 0(0%) | ↳ Passing(20+ yd completion) | 5(16%) |
| 0(0%) | ↳ Rushing(10+ yd run) | 5(23%) |
| −10(TO 0, expl −10) | Toxic differential(turnovers + explosives) | +10(TO 0, expl +10) |
ARITeam statsSF
| 27 | 1st downs | 23 |
| 18 | ↳ Passing 1st downs | 14 |
| 6 | ↳ Rushing 1st downs | 7 |
| 3 | ↳ 1st downs from penalties | 2 |
| 9-18 | ↳ 3rd down efficiency | 5-8 |
| 2-2 | ↳ 4th down efficiency | 0-0 |
| 81 | Total plays | 50 |
| 365 | Total yards | 437 |
| 10 | Total drives | 10 |
| 4.5 | Yards per play | 8.7 |
| 272 | Passing | 297 |
| 38/52 | ↳ Comp/Att | 15/27 |
| 5.0 | ↳ Yards per pass | 11.0 |
| 0 | ↳ Interceptions thrown | 0 |
| 2-8 | ↳ Sacks-yards lost | 0-0 |
| 93 | Rushing | 140 |
| 27 | ↳ Rushing attempts | 23 |
| 3.4 | ↳ Yards per rush | 6.1 |
| 3-5 | Red zone(made-att) | 2-2 |
| 10-86 | Penalties | 7-69 |
| 0 | Turnovers | 0 |
| 0 | ↳ Fumbles lost | 0 |
| 0 | ↳ Interceptions thrown | 0 |
| 0 | Defensive / special teams TDs | 0 |
| 38:44 | Possession | 21:16 |
Why the play counts differ. Efficiency counts every run and dropback the way nflfastR and rbsdm.com do, including sacks, scrambles, plays wiped out by penalties and 2-point tries, so ARI has 85 plays there and 81 in the official total above. Rushing attempts count kneel-downs and QB scrambles, while rush plays are the designed runs in that efficiency set, which is why ARI shows 27 attempts and 29 rush plays.
ARIWhat it cost themSF
| 0.0 | EPA lost to turnovers | 0.0 |
| −1.9 | EPA lost to sacks | 0.0 |
| −11.2 | EPA lost to penalties | −6.6 |
A strip-sack counts in both the sack row and the turnover row.
ARIEarly vs late downsSF
| +0.03(63) | Early downs(1st–2nd) EPA / play | +0.21(43) |
| 49% | ↳ Success rate | 53% |
| +0.48(22) | Late downs(3rd–4th) EPA / play | +1.50(10) |
| 59% | ↳ Success rate | 70% |
Passing
| Player | C/ATT | YDS | TD | INT | SCK | RTG | EPA/DB | CPOE | SUCC% | aDOT |
|---|---|---|---|---|---|---|---|---|---|---|
| ARI | ||||||||||
| Jacoby Brissett | 38/52 | 280 | 2 | 0 | 2 | 98.2 | +0.21 | +8.0 | 51% | 6.3 |
| SF | ||||||||||
| Brock Purdy | 15/27 | 297 | 4 | 0 | 0 | 133.8 | +0.90 | −4.9 | 61% | 10.9 |
Rushing
| Player | CAR | YDS | TD | YPC | EPA/CAR | SUCC% |
|---|---|---|---|---|---|---|
| ARI | ||||||
| Jeremiyah LoveRB | 21 | 90 | 0 | 4.3 | +0.09 | 62% |
| Jacoby BrissettQB | 4 | 4 | 1 | 1.0 | +0.41 | 75% |
| Tyler AllgeierRB | 2 | −1 | 0 | −0.5 | −0.56 | 0% |
| SF | ||||||
| Christian McCaffreyRB | 15 | 75 | 1 | 5.0 | −0.03 | 53% |
| Brock PurdyQB | 1 | 35 | 0 | 35.0 | +2.30 | 100% |
| Kaelon BlackRB | 4 | 17 | 0 | 4.3 | −0.15 | 50% |
Receiving
| Player | TGT | REC | YDS | TD | TGT% | YAC | EPA/TGT | CATCH% | aDOT | Y/TGT |
|---|---|---|---|---|---|---|---|---|---|---|
| ARI · 50 team targets | ||||||||||
| Michael WilsonWR | 17 | 11 | 89 | 1 | 34.0% | 28 | +0.35 | 65% | 9.5 | 5.2 |
| Trey McBrideTE | 11 | 9 | 75 | 0 | 22.0% | 18 | +0.48 | 82% | 5.2 | 6.8 |
| Marvin Harrison Jr.WR | 5 | 3 | 40 | 0 | 10.0% | 3 | +0.21 | 60% | 17.0 | 8.0 |
| Kendrick BourneWR | 3 | 2 | 22 | 0 | 6.0% | 20 | +0.17 | 67% | 2.0 | 7.3 |
| Elijah HigginsTE | 3 | 3 | 20 | 0 | 6.0% | 12 | +0.49 | 100% | 2.7 | 6.7 |
| Jeremiyah LoveRB | 5 | 5 | 19 | 1 | 10.0% | 10 | +0.14 | 100% | 1.8 | 3.8 |
| Tyler AllgeierRB | 4 | 4 | 10 | 0 | 8.0% | 32 | −0.15 | 100% | −5.5 | 2.5 |
| Hunter LongTE | 1 | 1 | 5 | 0 | 2.0% | 0 | −0.18 | 100% | 5.0 | 5.0 |
| Jalen BrooksWR | 1 | 0 | 0 | 0 | 2.0% | 0 | −0.54 | 0% | 12.0 | 0.0 |
| SF · 26 team targets | ||||||||||
| George KittleTE | 7 | 6 | 82 | 2 | 26.9% | 30 | +1.46 | 86% | 7.7 | 11.7 |
| Jordan WatkinsWR | 2 | 2 | 60 | 0 | 7.7% | 27 | +2.22 | 100% | 16.5 | 30.0 |
| Christian McCaffreyRB | 5 | 4 | 41 | 0 | 19.2% | 24 | +0.49 | 80% | 6.4 | 8.2 |
| Mike EvansWR | 6 | 3 | 34 | 2 | 23.1% | −3 | +1.58 | 50% | 13.3 | 5.7 |
| Jacob CowingWR | 2 | 0 | 0 | 0 | 7.7% | 0 | −0.34 | 0% | 23.5 | 0.0 |
| Kyle JuszczykRB | 2 | 0 | 0 | 0 | 7.7% | 0 | −0.54 | 0% | 7.0 | 0.0 |
| Kaelon BlackRB | 1 | 0 | 0 | 0 | 3.8% | 0 | −0.52 | 0% | −5.0 | 0.0 |
| Luke FarrellTE | 1 | 0 | 0 | 0 | 3.8% | 0 | −0.56 | 0% | 26.0 | 0.0 |
Player lines won’t always add up to team totals. TGT% is a share of the team targets above — the throws charged to a receiver — not of the pass attempts in Team stats, so the two counts can differ. 80 of Brock Purdy’s 297 passing yards aren’t credited to a receiver above (yards after a lateral, or a catch by a lineman or quarterback), and runs by receivers and kneel-downs don’t appear in the rushing table.