Hello again, you amazing readers. My schedule didn’t allow me to finish reviewing all the Week 1 games in a timely manner so without further ado, here are the rest of the game graphs (plus a preview of Thursday Night Football, since I probably won’t have the full Week 2 preview post ready until Friday or Saturday).
(Here’s Part 1 if you missed it. Also, here’s a link to an explainer on Expected Points Added, a foundational element of football analytics and these posts; its sister stat, Success Rate, will also feature prominently below and is simply the rate of plays that generate positive EPA).
Week 1 Recap (Continued)
Thursday Night Football Preview
Note that “epa_all” refers to all EPA from offensive plays.
Chiefs 31, Broncos 10 (Monday Night Football)


Kansas City posted a 33% rate on early downs, a 13th percentile performance that was even lower than what the vaunted Broncos defense allowed last year. On late downs, the Chiefs turned things on to the tune of a 58% success rate (an 86th percentile performance).
Denver struggled on both early and late downs, posting a 28th percentile success rate on the former and a 19th percentile mark on the latter.


It was a sluggish return from injury for Patrick Mahomes, who posted negative EPA overall, had a meager 41% success rate on his dropbacks, and actually had the lowest completion percentage over expected of any quarterback in Week 1 (nearly 12 points lower than what the model expected).
Fortunately for the Chiefs, new running back Kenneth Walker and the Kansas City ground game was more than able to pick up the slack. While the Chiefs were around league average with a 41% success rate on designed runs, the Chiefs still boasted a 95th percentile performance in terms of EPA per rush thanks to explosive plays.
Walker had a pair of 20-plus-yard carries, including a 60-yard touchdown run in the third quarter. He finished with 173 yards on 23 carries. This kind of explosiveness had to have been a motivating factor for Kansas City acquiring the former Seahawk, as the Chiefs were more than 1.5 standard deviations below the mean in terms of 20-plus-yard rushes per carry in 2025.

Bengals 33, Buccaneers 27


In a game the Bucs lost by six, they lost the turnover battle, 4-1, costing them 13 net expected points. Tampa Bay put the ball on the ground four times and lost each fumble.



Both teams were fairly efficient moving the ball in this one. The turnovers were the differentiator.
In a game that featured Ja’Marr Chase, Tee Higgins, Chris Godwin and promising second-year wideout Emeka Egbuka, the leading target getters were somehow Mike Gesicki and Bucky Irving (seven targets apiece). Irving, who averaged a little over 3 targets per game in his first two seasons, managed a 26% target share for the Bucs.
Gesicki is not necessarily a slouch as a pass catching option, but I’m not sure there will be many more games this season when he leads the Bengals in opportunities. Chase managed just 2 catches on 4 targets for 12 yards while Higgins caught 3 of his 6 targets for 59 yards.
Ravens 41, Colts 23

The Colts had just about the perfect start before the wheels fell off quickly and completely. Jonathan Taylor capped an impressive scoring drive with 10:36 left in the first quarter with a rushing touchdown, boosting the Colts win probability to about 70%. In just over three minutes of gametime, their win expectancy would halve; Spencer Shrader missed the extra point, the Ravens returned the ensuing kickoff to midfield, scored three plays later, and then intercepted Daniel Jones in Colts territory on the following Indianapolis possession. Baltimore took advantage of the short field with the second of their four consecutive touchdowns, as the Ravens jumped out to a 28-6 lead.



The Colts had a healthy 47% success rate on early downs but combined to go 3-for-11 on third/fourth down.

Baltimore was essentially just as bad on late downs but made up for it with a great performance on early downs.
Lamar Jackson looks to primed to put his 2025 season, his least effective as a passer since 2022,1 behind him. The Ravens had an 80th percentile day in terms of EPA per dropback.
Steelers 20, Falcons 13



This was not a game for enjoyers of offense. Pittsburgh managed a 33% success rate and totaled minus-17.1 EPA, compared to marks of 36% and minus-21.6, respectively, for Atlanta.
Both teams were bad in their own ways; Pittsburgh had a +11.2 Pass Rate Over Expectation, while Atlanta was at minus-17.1.


Jaguars 34, Browns 10



Deshaun Watson lost nearly 10 expected points on five sacks and also threw an interception and had a fumble (Cleveland did recover it). His 9.3 yards per throw looks good, but doesn’t account for the sack yardage, interception or Cleveland’s 39th percentile dropback success rate.
It does feel incomplete to just talk about Deshaun Watson sucking at football; more than 20 women have sued him for sexual assault, and while he served a suspension from the league in 2022, he continues to not show remorse or take accountability. He bitched about getting booed in the preseason — laughably trying to complain it was “personal” and not about his play, as if the personal reasons weren’t grounds enough and as if he hasn’t been one of the league’s worst quarterbacks since arriving in Cleveland — but he should make his peace with it, because it certainly seems like more boos are headed his way.


I don’t have much to add that the graphs don’t already say: this was about as comprehensive of a beatdown as you’ll see on a Sunday.
Jets 23, Titans 10




Geno Smith’s return to New York is off to a nice start. The Jets passing game posted above average efficiency, but only roughly matched what the poor Titans pass defense allowed in 2025, so perhaps this element was not as impressive as it looked.
While the opponent-adjusted efficiency may not be the most exciting, the Jets did well to supplement it with explosiveness, while also avoiding negative plays. The Jets had four passing plays gain at least 20 yards on 28 dropbacks (a 14% rate that marks an 89th percentile performance; Tennessee allowed a rate of about 10% in 2025), and Smith was not sacked and did not turn the ball over.
All of this added up to 0.34 EPA per dropback (Tennessee allowed a rate of 0.20), which is good for the 83rd percentile.
Breece Hall added about 0.11 EPA per rush (102 yards and a touchdown on 22 carries; 50% success rate).

In the matchup between the stoppable force and moveable object, the results pretty much split the difference.
Vikings 39, Packers 22


Minnesota had 32 net expected points on late downs. This is a wild margin, and when you consider Minnesota won by 17, it also highlights how poor the Vikings did on early downs.
The Vikings also took advantage of the other high leverage aspects of the game (turnovers and the red zone), which explains how they won a game by 17 despite getting outgained by 180 yards (and 2.4 yards per play).


The Vikings had a 63% success rate on late downs and a mark of just 28% on early downs. A run-heavy approach probably didn’t help here, as the Vikings had a minus-8 Pass Rate Over Expectation.
Carson Wentz came off the bench in relief of the injured Kyler Murray in the first quarter and averaged 0.22 EPA per dropback. As you can infer from the other visuals, there are certainly holes to poke in his performance — he only had a 41% success rate on his dropbacks and was sacked three times — but his late down passing was pivotal to Minnesota’s efforts on Sunday.

As this chart shows, offense was only one part of Minnesota’s late down dominance. Green Bay performed in line with what the Vikings defense allowed on early downs, but the Packers were only 3-for-14 on late downs.
The Packers’ passing game struggled in terms of efficiency against the tough Vikings pass defense (30th percentile dropback success rate, in line with what Minnesota allowed in 2025) and Jordan Love was sacked four times. Things would have been even worse if not for a big day in terms of explosiveness, as Green Bay managed seven plays of at least 20 yards on 46 dropbacks.
Christian Watson was Green Bay’s best fantasy player on Sunday (six catches for 147 yards and two touchdowns) but Matthew Golden’s underlying metrics were even better. Golden had 12 targets (30% target share) compared to eight for Watson, and had an average depth of target of 15.9 (Watson had an aDOT of 11.4). Golden also had two targets in the end zone compared to one for Watson.
In terms of his actual production (6 scoreless catches for 95 yards), Golden still earned 15.5 fantasy points,2 but based on the volume and quality of his targets, he would been expected to score 22.5 based on my expected fantasy points calculation.3 This was the seventh highest expected fantasy points total of the week (third-highest among wide receivers, behind Amon-Ra St. Brown and Chris Olave; this the same top three as Mike Clay’s rankings, which had Golden at 24 expected fantasy points).
Eagles 24, Commanders 22


Philadelphia won the game largely on the strength of its late down performance while Washington stayed in it thanks in large part to its red zone performance.
The late down conversion rates don’t look that disparate (Philadelphia was 6-for-14, Washington was 7-for-17), but the numbers alone don’t account for the two most pivotal plays of the game.
In the fourth quarter, Washington had scored to cut Philadelphia’s lead to 17-16 and forced the Eagles into a 3rd-and-18 from their own 31 yardline on the ensuing possession. Rather than having to punt, Jalen Hurts moved the chains on a 22-yard scramble, a play that was worth 2.7 EPA on its own. Later on that drive, Hurts converted another third down, hitting Dallas Goedert for a 43-yard touchdown on a 3rd-and-6, adding nearly 5 EPA to the Philadelphia ledger.4


This Eagles’ explosiveness (five plays of at least 20 yards) and aforementioned timely late down conversions helped mask a brutal day from an efficiency standpoint against one of 2025’s worst defenses.
Jalen Hurts had a big disparity in terms of performance on short passes and intermediate/deep passes. 68% of his passes were under 10 yards (right around the league average), but he managed just a 29% success rate on these throws and had a minus-8 completion rate over expected.
On throws within the 10 to 19-yard range, he was 3-for-4 (+20 CPOE, +7.5 EPA) and on throws of 20 yards or more, he was 2-for-4 (+12 CPOE, +5.4 EPA).
In 2025, only 10 players outscored their expected fantasy points total by more than Dallas Goedert, largely due to overperformance in the touchdown department. Goedert scored 11 touchdowns last season despite earning just five targets in the endzone. If he is going to regress this season, that process is going to have to start in Week 2, as Goedert scored 23.7 fantasy points, despite an expectation of 8.6. He caught four of his five targets (one in the endzone) for 77 yards and two touchdowns.
Cardinals 26, Chargers 14



While the Cardinals did benefit from some volatility — they blocked a punt and won the turnover battle, 2-0 — they also just flat out outplayed Los Angeles, as evidenced by the fact their success rate was about 10 percentage points higher.

I don’t think this is how anyone expected the first game of the Mike McDaniel offense to go, especially considering how poor the Cardinals defense performed in 2025.
Justin Herbert tried to live in the intermediate range (10 to 19 air yards), but struggled badly here. He attempted 11 of his 27 throws at this depth (a 41% rate, which is nearly double the league average), but managed just a 36.4% success rate (the league average is 54%). The Chargers were actually about 10 percentage points higher than league average on passes under 10 yards.

Jacoby Brissett and the Arizona passing game got off to a stellar start, especially considering the opponent. The Cardinals only managed two completions over 20 yards (on 38 Brissett dropbacks) but more than compensated for the lack of explosiveness with 81st percentile dropback efficiency and a lack of negative plays (the Cardinals didn’t turn the ball over and Brissett’s lone sack came just behind the line of scrimmage).
Raiders 27, Dolphins 13




The Raiders got the win, but the fact that they were unable to produce at a league-average level against this Dolphins defense doesn’t exactly fill me with optimism about Las Vegas.

…Let’s just move on to Week 2.
Lions at Bills (Thursday Night Football Preview)
When Buffalo has the ball


The Bills are coming off a performance where they had six pass plays that gained at least 20 yards and now they get to play a pass defense that had a hard time preventing big plays.

Buffalo struggled on the ground in Week 1 against a tough Houston rush defense, but James Cook and co. will have a chance to get back on track against a Detroit team that doesn’t stand out in terms of run defense.
When Detroit has the ball


Detroit’s passing game struggled to move the ball efficiently in Week 1, managing just a 31st percentile success rate on dropbacks against the Saints. The Lions will face another tough test on the road in Week 2.

The Bills were one of the league’s biggest run funnels in 2025 (peep that Buffalo defense pass rate over expectation bar) and when considering the performance of both their run and pass defenses, it’s very easy to see why.
Glossary
Z-Score: The number of standard deviations from the mean a measure is.
EPA (Expected points added per play): An overall measure of offensive or defensive efficiency. See here for more.
Success (Success rate): The percentage of plays that produce positive EPA.
20+ play: The percentage of plays that gain at least 20 yards.
Turnover: The percentage of plays that end in a turnover.
Pass_OE (Pass rate over expected): The rate of called pass plays minus how often an average team would pass according to a model that takes into account the score differential, field position, down, distance and other factors.
Air Yards (aDOT): Average depth of target, or how far the average pass travels from the line of scrimmage.
Sack (Sack rate): Sacks divided by dropback.
QB_hit: Quarterback hits divided by dropback.
1 As measured by adjusted net yards per attempt, which takes net yards (passing yardage minus sack yardage) per pass attempt and adjusts for touchdowns and interceptions.
2 Assuming point-per-reception scoring.
3 This combines two models I’ve developed for expected touchdowns and expected yardage with the nflverse expected completion model. You can find the code for touchdown and yardage models, in addition to all the code I use for this analysis in this GitHub repository.
4 EPA doesn’t take into account the score, but Win Probability Added does. The Hurts scramble was the biggest play of the game in terms of WPA, boosting the Eagles’ win expectancy by 16 percentage points. The touchdown pass to Goedert added another 15 points.