For the complete documentation index, see llms.txt. Markdown variants of the ranked boards (dynasty and fantasy rankings for NFL, NBA, MLB and CFB) are available by appending .md to those URLs or by sending Accept: text/markdown; other pages answer 404.
DYNATYZE
Not startedThis page's interactive half has not started on this device. Nothing was read, and nothing was invented in its place. Reload the page.
San Francisco 49ers 17 at Tennessee Titans 20. Final.
49ers -3.5 upset
The verdict · 2021 Week 16
Tennessee Titans 20, 49ers 17 — on the last possessions.
It turned at Q4 3:42, 2nd and 10, on Deebo Samuel — 24.2 win-probability points to the 49ers on one snap, the largest move of the game, and it still was not enough.
The snaps that bent it
U 45.5 ✓
49ers closed -3.5 and lost outright — an upset against the closing number.
Tennessee Titans 20–17 — decided on the final possessions. Biggest swing: Q4 3:42, 49ers +24.2% win probability on one snap.
The biggest swing of the game · Q4 3:42 · 2nd and 10
Deebo Samuel
49ers
(3:42) (Shotgun) 10-J.Garoppolo pass short middle to 19-D.Samuel to TEN 6 for 56 yards (37-A.Hooker). SF-19-D.Samuel was injured during the play. His return is Questionable.
24.2
win-probability points on one snap
The largest move of the game. The two below are drawn against it.
A.J. BrownTitansQ3 0:04(:04) (No Huddle) 17-R.Tannehill pass deep right to 11-A.Brown to SF 30 for 42 yards (20-A.Thomas). Penalty on SF-98-A.Key, Defensive Offside, declined.
18.6pts
A.J. BrownTitansQ4 13:06(13:06) (Shotgun) 17-R.Tannehill pass deep left to 11-A.Brown for 18 yards, TOUCHDOWN [97-N.Bosa].
14.8pts
What separated them
Giveaways
Titans won this one — no giveaways, against 49ers at 2 giveaways.
Titansthe gap went the way the scoreboard did
Third down
Titans won this one — 9 of 16 on third down, against 49ers at 3 of 8 on third down.
Titansthe gap went the way the scoreboard did
Running the ball
49ers owned this one and still lost it — +0.05 expected points per carry, against Titans at -0.22 expected points per carry.
49ersthe gap went the other way from the scoreboard
Staying on schedule
49ers owned this one and still lost it — 45% of snaps stayed on schedule, against Titans at 38% of snaps stayed on schedule.
49ersthe gap went the other way from the scoreboard
2 other measures were inside a third of the league's own spread — two clubs doing the same thing, so they are not shown.
Drawn from the officially scored play-by-play, which lands usually within two hours of the final, or the next morning when its release runs late.
The model against the market, the momentum underneath, every drive — scrub to replay it
How the game was won
The model and the market were 10.6 win-probability points apart on the average play, and 22 apart at the widest — with the model the more convinced about Titans.
MarketModelmodel higher on Titanshigher on 49ers150 of 159 plays carry both curves
(3:42) (Shotgun) 10-J.Garoppolo pass short middle to 19-D.Samuel to TEN 6 for 56 yards (37-A.Hooker). SF-19-D.Samuel was injured during the play. His return is Questionable.
Swing −24.2 for TitansExpected points −4.41 for TitansThe model had Titans 5 points higher than the market did.play 139
The solid line is the betting market's home win probability; the dashed line is the play-by-play model's. The shaded band between them is the disagreement — emerald where the model liked the home team more, red where it liked the away team more. Drag across the curve or use arrow keys to replay the game; gold diamonds mark the biggest swings.
Highest-leverage plays
4th · 3:42TEN +24% win prob(3:42) (Shotgun) 10-J.Garoppolo pass short middle to 19-D.Samuel to TEN 6 for 56 yards (37-A.Hooker). SF-19-D.Samuel was injured during the play. His return is Questionable.
3rd · 0:04TEN +19% win prob(:04) (No Huddle) 17-R.Tannehill pass deep right to 11-A.Brown to SF 30 for 42 yards (20-A.Thomas). Penalty on SF-98-A.Key, Defensive Offside, declined.
4th · 13:06TEN +15% win prob(13:06) (Shotgun) 17-R.Tannehill pass deep left to 11-A.Brown for 18 yards, TOUCHDOWN [97-N.Bosa].
4th · 0:09TEN +13% win prob(:09) 14-R.Bullock 44 yard field goal is GOOD, Center-46-M.Cox, Holder-6-B.Kern.
4th · 1:20TEN +11% win prob(1:20) (Shotgun) 17-R.Tannehill scrambles up the middle to SF 31 for 23 yards (3-J.Tartt).
4th · 13:48TEN +11% win prob(13:48) (Shotgun) 17-R.Tannehill pass short left to 11-A.Brown pushed ob at SF 18 for 12 yards (30-Ja.Wilson).
SettledThe modelled figures are the league play-by-play model's, not ours.
How the points landed
The margin ledger
Randy Bullock's 44-yard field goal with 0:09 left in the 4th put Tennessee Titans ahead for good. It was the last score of the day.
4th13:06A.J. Brown·18-yd TD catch18-yard touchdown catchfrom Ryan Tannehillfrom Ryan Tannehill+710–17
4th2:24Brandon Aiyuk·2-yd TD catch2-yard touchdown catchfrom Jimmy Garoppolofrom Jimmy Garoppolo+717–17
4th0:09Randy Bullock·44-yd field goal44-yard field goalholder B.Kern · snap M.CoxLead never changed again+317–20
7 scores · bar length is the lead after each one
Down-to-down truth
Situational splits
49erscategory by categoryTitans
49ers5–2Titans
389Total yards278
6.7Yards per play4.8
45%Success rate38%
38%Third-down rate56%
2Red-zone touchdowns2
4Explosive plays4
21First downs15
2Sacks taken4
2Turnovers0
The read
49ers ahead 5–2 on categories, but the biggest gap belongs to Titans, in turnovers.
Expected points added, per play
The centre line is an average play. A bar to the right of it is a side that gained more than the situation was worth; a bar to the left is a side that lost ground. All six bars share one scale, ±0.35 points.
Every snapexpected points added per play, all downs
+0.0849ers: +0.08 expected points added per play
+0.06Titans: +0.06 expected points added per play
Dropping backexpected points added per dropback
+0.0949ers: +0.09 expected points added per play
+0.24Titans: +0.24 expected points added per play
Running itexpected points added per rush
+0.0549ers: +0.05 expected points added per play
−0.22Titans: −0.22 expected points added per play
Neither side “wins” volume or play-calling mix, so neither is drawn as a duel: 49ers ran 58 snaps at a 64% dropback rate against Titans’s 58 at 60%. Red-zone trips: 49ers 4, Titans 3.
Note49ers outgained Titans 389-278 but lost the turnover battle 2-0. That was the game.
Derived from the play-by-play, no model
The Read
6 of 8 readings cleared their snap floor and were tested against four comparisons: this week's whole slate, the team's own season, the week before, and the team's own ordinary spread. Every bar below is set in that team's own week-to-week swing, never in league points — one team's swing runs 1.6 to 3.1 times the entire league's spread.
Nothing cleared the bars. No reading led the week's slate, set a season mark, reversed the week before, or sat two of the team's own standard deviations off their number — which is what most Sundays look like, and is the finding rather than a gap.
The season-grain rooms, pointed at this one game
Was this normal for them?
6 of 8 readings cleared their snap floor. Every deviation below is measured in that team's own game-to-game swing, not in league points — because one game's swing runs from 1.6 to 3.1 times the whole league's spread.
their week-to-week swingall 32 teams
upper band = their week-to-week swing · lower rule = all 32 teams · scale -25 pts to 12 pts
leaned — got home · +7.0 vs their 15.8%, and they swing ±6.7 week to week (+1.05× that swing) · 35 dropbacks
Titans8.1%
inside their normal wobble · −4.4 vs their 12.5%, and they swing ±5.1 week to week (−0.86× that swing) · 37 dropbacks
Play-action rate
Charted from 2022. The columns exist for 2021 and are entirely empty, which is not a season of data.
Blitz rate sent
Charted from 2022. The columns exist for 2021 and are entirely empty, which is not a season of data.
NoteSF's sack or hit rate was the night's one real departure: 22.9%, 7.0 points above their season mean of 15.8% and 1.0 times their own 6.7-point weekly swing.
The Game Day Roster
Who was out, who dressed and never took a snap, and who was on the field how much. Game-day list and snap counts from the weekly roster and snap feeds. Practice-squad and injured-reserve players are not shown — they were never on the game-day list.
San Francisco 49ers
48 dressed · 5 inactive · 2 never used
75Laken TomlinsonG · Every snap100%59 snaps
66Tom ComptonT · Every snap100%59 snaps
60Daniel BrunskillG · Every snap100%59 snaps
85George KittleTE · Every snap100%59 snaps
50Alex MackC · Every snap100%59 snaps
10Jimmy GaroppoloQB · Every snap100%59 snaps
71Trent WilliamsT · Every snap100%59 snaps
11Brandon AiyukWR · Full-time93%55 snaps
19Deebo SamuelWR · Heavy rotation76%45 snaps
22Jeffery WilsonRB · Heavy rotation75%44 snaps
44Kyle JuszczykFB · Heavy rotation54%32 snaps
15Jauan JenningsWR · Rotational46%27 snaps
81Trent SherfieldWR · Situational20%12 snaps
23Jamycal HastyRB · Situational19%11 snaps
89Charlie WoernerTE · Situational8%5 snaps
17Travis BenjaminWR · Situational7%4 snaps
82Ross DwelleyTE · Situational2%1 snap
Inactive · 5
Maurice HurstDTDre GreenlawOLBElijah MitchellRBTalanoa HufangaSSColton McKivitzT
Dressed, never took a snap · 2
Trey LanceQBJaylon MooreT
Tennessee Titans
48 dressed · 6 inactive · 2 never used
72David QuessenberryG · Every snap100%62 snaps
62Aaron BrewerC · Every snap100%62 snaps
75Dillon RadunzT · Every snap100%62 snaps
64Nate DavisG · Every snap100%62 snaps
60Ben JonesC · Every snap100%62 snaps
17Ryan TannehillQB · Every snap100%62 snaps
11A.J. BrownWR · Heavy rotation74%46 snaps
87Geoff SwaimTE · Heavy rotation63%39 snaps
15Nick Westbrook-IkhineWR · Heavy rotation63%39 snaps
80Chester RogersWR · Heavy rotation50%31 snaps
2Julio JonesWR · Heavy rotation50%31 snaps
85MyCole PruittTE · Rotational44%27 snaps
28Jeremy McNicholsRB · Rotational42%26 snaps
7D'Onta ForemanRB · Rotational34%21 snaps
86Anthony FirkserTE · Rotational26%16 snaps
40Dontrell HilliardRB · Situational21%13 snaps
81Racey McMathWR · Situational16%10 snaps
45Khari BlasingameFB · Situational15%9 snaps
61Corey LevinC · Situational3%2 snaps
Inactive · 6
Chris JonesCBLarrell MurchisonDTJoseph JonesILBDavid LongILBDerick RobersonOLBTaylor LewanT
1 line has no expected-points read and sits off the plane.
Expected points are modelled in full PPR, so the “vs expected” column stays in that unit whichever format the pills are set to. Switching the pills changes the points column, not the plane.
The field map
Every snap, where it happened
The whole game as one hundred yards. The Titans attack right, the 49ers attack left, so a change of possession is a reversal you can see. Reading down is the order the snaps were played — not the clock, so a two-minute drill gets the same room as any other fourteen snaps. This game is final.
49ers←Titans→
Q1Q2Q3Q4
Randy Bullock+21% win probabilitymoment 4 of 4
(:09) 14-R.Bullock 44 yard field goal is GOOD, Center-46-M.Cox, Holder-6-B.Kern.
Q4 0:09 · Titans · 4th & 5 at SF 26 · gained nothing · +0.67 EP · +20.6% win probability
148 snaps placed · 11 without a recorded yard line, left off the map · 4 marked moments — the largest win-probability swings, one per drive.
The Film Room · post-game
Post-game film: 159 plays across 19 drives, personnel groupings on 159 snaps. Everything here paints the morning after the week's games — there is no live play-level feed in this product, so nothing on this page updates while a game is being played.
Possession by possession
The field rail
7 of 19 drives ended in points. The longest march was SF moving 95 yards from the SF 5 for a touchdown. Each bar is the ground a drive actually covered; TEN attacks right, SF attacks left. Hatching marks a trip inside the twenty.
Every snap
Play stream
159 of 159 plays
Team
Quarter
Down
Play type
Expected points added
Event
Charted
Plays shown
159
EPA per play
+0.01
Success rate
38%
Yards
667
Who was on the field
Personnel groupings
Offensive grouping on every pass and run. A group needs five snaps in this game before it gets a number — under that the sample is a coin flip and the cell reads a dash instead. The names of the eleven on the field are only recorded from 2023 onward, so this game gives the grouping without the roster.
Titans1 RB, 1 TE, 3 WR36+0.0869%
49ers2 RB, 1 TE, 2 WR27+0.1759%
49ers1 RB, 1 TE, 3 WR25+0.1368%
Titans1 RB, 2 TE, 2 WR6-0.5850%
49ers1 RB, 2 TE, 2 WR5-1.1560%
Titans2 RB, 1 TE, 2 WR5-0.5060%
Titans1 RB, 3 TE, 1 WR4——
Titans2 RB, 2 TE, 1 WR3——
Titans0 RB, 2 TE, 3 WR2——
Titans1 RB, 1 TE, 2 WR2——
49ers2 RB, 2 TE, 1 WR1——
snapsepapass rate
159 plays · ranked by the win probability each one moved
Every play
Ball
When
Play
Only
Who
159 plays
Bar length is win probability the play moved
1st quarter32 plays
49ers6Titans0
49ers7Titans0
Touchdown11 plays, from the 49ers 25 to the Titans 1
Punt8 plays, from the Titans 39 to the 49ers 48
FormationShotgunOffense on the fieldOne back, two tight ends and two receiversDefense on the fieldThree linemen, three linebackers and five backsRoute runHitchCoverageCover 4, quartersMan or zoneZoneIn the boxSix defendersRushing the passerFourPressure (charted)The passer was kept cleanTime to throw2.8 seconds
Intercepted8 plays, from the 49ers 20 to the Titans 8
The period ended4 plays, from the Titans 20 to the Titans 27
2nd quarter41 plays
Punt1 play
49ers10Titans0
Field goal12 plays, from the 49ers 37 to the Titans 19
Punt9 plays, from the Titans 25 to the Titans 45
Punt5 plays
Punt9 plays, from the 49ers 45 to the 49ers 33
The period ended5 plays, from the 49ers 10 to the 49ers 30
3rd quarter38 plays
49ers10Titans3
Field goal15 plays, from the Titans 25 to the 49ers 20
FormationSingle backOffense on the fieldTwo backs, one tight end and two receiversDefense on the fieldThree linemen, three linebackers and five backsRoute runDigCoverageCover 3, three deepMan or zoneZoneIn the boxSix defendersRushing the passerFourPressure (charted)The passer was kept cleanTime to throw2.8 seconds
Intercepted2 plays
49ers10Titans9
49ers10Titans10
Touchdown5 plays, from the 49ers 18 to the 49ers 3
Turnover on downs11 plays, from the 49ers 25 to the Titans 35
FormationSingle backOffense on the fieldOne back, one tight end and three receiversDefense on the fieldFour linemen, two linebackers and five backsRoute runGoCoverageCover 3, three deepMan or zoneZoneIn the boxFour defendersRushing the passerFourPressure (charted)The passer was kept cleanTime to throw4.2 seconds
The period ended5 plays, from the Titans 41 to the Titans 43
4th quarter48 plays
FormationShotgunOffense on the fieldOne back, one tight end and three receiversDefense on the fieldFour linemen, two linebackers and five backsRoute runPostCoverageCover 1, man with a free safetyMan or zoneManIn the boxSix defendersRushing the passerFivePressure (charted)The passer was pressuredTime to throw2.6 seconds
49ers10Titans16
49ers10Titans17
Touchdown5 plays, from the 49ers 30 to the 49ers 18
Punt9 plays, from the 49ers 25 to the Titans 43
Punt8 plays, from the Titans 3 to the Titans 40
FormationShotgunOffense on the fieldOne back, one tight end and three receiversDefense on the fieldTwo linemen, four linebackers and five backsRoute runDigCoverageCover 1, man with a free safetyMan or zoneManIn the boxSix defendersRushing the passerFourPressure (charted)The passer was kept cleanTime to throw2.5 seconds
49ers16Titans17
49ers17Titans17
Touchdown9 plays, from the 49ers 5 to the Titans 2
49ers17Titans20
Field goal14 plays, from the Titans 25 to the 49ers 25
The period ended3 plays
Win probability is the league play-by-play model, 98.5% of plays · a dash means none was published