Motion-blurred skater in a Ottawa Senators sweater
Breakdown · OTT at CGY

Senators run the Flames off the ice on the underlying numbers

The verdict · earned

The Senators earned it — the game and the expected-goals battle both.

OTT 4 · CGY 1
◆ By the ModelJul 12, 5:55 AMxG: xgboost-0.758Edited for clarityDrafted from NHL play-by-play by Backcheck's model, worded for clarity by an AI editor that may not change a number. Nobody at Backcheck was at the rink. How this works

Ottawa's 4-1 victory masks one underlying reality: they generated nine high-danger chances to Calgary's one, a ratio the final score barely captures.

That disparity flowed from territorial dominance. The Senators controlled 75% of 5v5 expected goals (5.21 to 1.76) and out-shot Calgary 37 to 20. Quality separated them further: Ottawa's chances carried 0.070 xG per shot, nearly double Calgary's 0.039.

Cooley, Calgary's goalie, kept the game from becoming a rout. He stopped 3.21 goals above expected—a performance that compressed what the underlying numbers suggested into a 4-1 final. Ullmark, Ottawa's counterpart, had less work but delivered: he overperformed his expected save percentage by 0.76 against relentless high-danger chances.

Off the rush, the Senators were lethal: two goals on 33 chances. In the offensive zone, they also created six rebounds without converting, a sign of their complete control.

Calgary generated 20 shots but none carried consequence. Against a team dominating quality and territory to this degree, volume becomes irrelevant.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Mar 5
OTT
4
CGY
1

Senators run the Flames off the ice on the underlying numbers

Chances 5.2 – 1.8Did they deserve it? →
Did they deserve it?

The Senators earned this one.

Expected goals · chance value
OTT
5.21
CGY
1.76
75% of the chances25%

The board read OTT 4, CGY 1. The chances read OTT 5.2, CGY 1.8.

Our xG model · NHL play-by-play · all situations
Luck check
OTT
−1.2
goals above expected
OTT5.21 expected · 4 scored
Expected
Scored
CGY1.76 expected · 1 scored
Expected
Scored

Both sides finished close to what their chances were worth. This one was earned on the ice.

PDO = sh% + sv% · drifts to 1.000 over a season
Every goal, in order
  1. P1 17:04CGYM. Pospisil0–1
  2. P2 09:35OTTL. Eller1–1
  3. P3 06:33OTTD. CozensPP2–1
  4. P3 17:59OTTT. StützleEN3–1
  5. P3 19:46OTTS. PintoEN4–1
NHL play-by-play · chance value from our xG model
Where the shots came from
OTT
56 shots
4
Final
87 shots
CGY
31 shots
1
OTT attackCGY attack
OTT CGY Goal
56
shots · 4 in
31
shots · 1 in
Every unblocked shot · press play to replay it
Chances by danger
OTTCGY
2 / 9
2.73 xG
High danger
0 / 1
0.20 xG
1 / 16
1.65 xG
Medium
1 / 9
1.01 xG
1 / 49
0.83 xG
Low
0 / 35
0.55 xG

The Senators buried 2 of 9 high-danger looks.

Danger tiers by our xG model · high ≥ 20% chance
In the net
A+
D. Cooley
+3.2
CGY · 33/35
B+
L. Ullmark
+0.8
OTT · 19/20
The numbers, checked
BACKCHECK

Senators run the Flames off the ice on the underlying numbers

A model, not a newsroom. Every number on these frames comes from the NHL's play-by-play and our own models. Nothing was watched, guessed or heard from anyone.

Read the full breakdown
backcheckreport.com
01 / 08 · Final
Every goal, in order

How it happened

NHL play-by-play
1stshots 8–8
  1. 17:04CGYM. Pospisil(M. Gridin, Y. Sharangovich)0–1
2ndshots 11–7
  1. 09:35OTTL. Eller(R. Greig, F. Zetterlund)1–1
3rdshots 18–5
  1. 06:33OTTD. Cozenspower play(B. Tkachuk, D. Batherson)2–1
  2. 17:59OTTT. Stützleempty net3–1
  3. 19:46OTTS. Pintoempty net(M. Amadio, A. Zub)4–1

score reads OTT–CGY

Source · NHL play-by-play (api-web.nhle.com)
Process vs result

The numbers

XGBoost xG · NHL play-by-play
5.21
OTT chances
Goals their shots were worth
−1.2
Finishing
Goals below what those chances were worth
1.032
OTT puck luck
Above 1.000 — the bounces went their way
62.2%
Shot attempts
Over half — they had the puck more
Split by club

Who controlled the game

5.21Expected goals1.76
OTT 75% of the chance quality
37Shots on goal20
9High-danger chances1
74All attempts (Corsi)45
Adjusted for score: OTT 62% · CGY 38%
Faceoffs · CGY won35%off44%neu52%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
OTT2 / 9 · 2.73 xG
CGY0 / 1 · 0.20 xG
Medium dangermid-range
OTT1 / 16 · 1.65 xG
CGY1 / 9 · 1.01 xG
Low dangerperimeter & point
OTT1 / 49 · 0.83 xG
CGY0 / 35 · 0.55 xG

OTT went 2-for-9 from high danger on 2.73 expected goals — 0.7 left on the table.

Source · Backcheck xG model · NHL play-by-play
The luck layer

Finishing vs expected

expectedactual
OTT
4 G · 5.21 xG · -1.2
CGY
1 G · 1.76 xG · -0.8
0123456

OTT finished -1.2 against expected, CGY -0.8.

Source · Backcheck xG model
Shot types · rush and rebound chancesopen +
What they shot — and what went in

Shot diet

goalsshots
OTT
WRIST3/32
TIP IN0/6
SNAP1/7
SLAP0/3
BACKHAND0/7
POKE0/1
OTHER0/18
CGY
WRIST1/19
TIP IN0/4
SNAP0/3
SLAP0/5
BACKHAND0/0
POKE0/0
OTHER0/14
OTT
CGY
Off the rush
2 G on 33
2.41 xG
1 G on 19
1.26 xG
Off rebounds
0 G on 6
0.95 xG
0 G on 1
0.20 xG

Wrist shots carried the volume: OTT went 3-for-32, CGY 1-for-19. OTT scored 2 of theirs off the rush.

Source · Backcheck xG model · NHL shot types
New to these numbers?

Two things happened in this game: who created the better chances, and who put the puck in the net. They are not the same thing, and this page separates them on purpose.

The one to watch is expected goals— the best single read on who deserved to win. When it disagrees with the scoreboard, that disagreement is usually the story. Nothing here is a projection; every figure is computed from this game's play-by-play. Full glossary →

xG
Expected goals. Every shot scored by how often that exact look goes in. 2.5 xG means the chances were worth about two and a half goals.
HD
High-danger chances — shots from the slot and the crease, where shots actually become goals.
Corsi
Every shot attempt, including the ones that missed or got blocked. A rough read on who had the puck.
Adj.
Score-adjusted. Teams that trail shoot more and teams that lead sit back, so this corrects the attempt count for the scoreboard.
GSAx
Goals saved above expected. A positive number means the goalie stopped more than an average goalie would have on those shots.
PDO
Shooting % plus save % — a luck gauge. It sits near 1.000 over a season, so a game far from it usually means the bounces decided it.
Shot by shot

In the net

Graded on goals saved above expected
L. Ullmark
OTT · 19/20 · .950
+0.8
saved above expected
B+
the night
By dangerG/attxGsaved
High danger0/10.2+0.2
Medium1/91.0+0.0
Low0/350.6+0.6

A+ ≥ +2.5 saved above expected · A ≥ +1.5 · B+ ≥ +0.75 · B ≥ +0.25 · C ≥ −0.25 · D ≥ −0.75 · F below −1.5

D. Cooley
CGY · 33/35 · .943
+3.2
saved above expected
A+
the night
By dangerG/attxGsaved
High danger2/92.7+0.7
Medium1/161.6+0.7
Low1/490.8-0.2

A+ ≥ +2.5 saved above expected · A ≥ +1.5 · B+ ≥ +0.75 · B ≥ +0.25 · C ≥ −0.25 · D ≥ −0.75 · F below −1.5

87 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
OTT
56 shots
4
Final
87 shots
CGY
31 shots
1
OTT attackCGY attack
OTT CGY Goal

Each club shoots toward its own end — OTT left, CGY right — the way you would watch it. A dot's size is how dangerous the look was, from distance and angle; it is a proxy for shot quality, not the xG model the article is written from. Hover a dot for the shooter and the clock.

Ranked from the box score

Three stars

Points first
Three stars · computed, not voted
T. Stützle
#18 · C · OTT
1 G · 0 A · 4 SOG · 22:38 on ice
D. Batherson
#19 · R · OTT
0 G · 1 A · 2 SOG · 18:36 on ice
A. Zub
#2 · D · OTT
0 G · 1 A · 1 SOG · 18:35 on ice · +1
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Thu, Mar 5
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelJul 12, 5:41 AMEdited for clarityDrafted from NHL play-by-play by Backcheck's model, worded for clarity by an AI editor that may not change a number. Nobody at Backcheck was at the rink. How this works

The model backs Ottawa at 55% win probability, projecting a 2.7–2.4 Senators victory. That edge sits on something durable: puck management. Ottawa's 56.0% expected-goals share and 53.0% Corsi both exceed Calgary's 47.0% and 49.0%, a split that suggests territorial control beyond what the scoresheet has captured. In form, the Senators are sharper too—6-2-2 in their last 10 against Calgary's -11 goal differential over the same window.

One regression watch matters: the Flames' 0.985 PDO has run cold. Ottawa's 0.993 sits closer to neutral. When Calgary's results suddenly improve without the underlying play shifting, that's what you're watching.

Both starters face the back-to-back squeeze. D. Cooley and L. Ullmark are each playing their second game in two nights, which tilts toward backup minutes or visible fatigue.

The personnel battle favors Ottawa. Brady Tkachuk generates 1.19 expected goals per 60 minutes and has recorded 11 goals with 20 assists at a 7.5% shooting rate; Dylan Cozens posts 1.00 xG/60 with 13 goals and a 9.5% mark. Calgary's most dangerous forward is Blake Coleman, whose 0.89 xG/60 undersells the 16 goals and 12 assists he's produced at an 11.4% shooting rate—one that will regress. Matt Coronato sits at 0.80 xG/60 with 10 goals and a 6.6% shooting rate.

Structurally, Calgary's defensive weak link is Matt Coronato; Ottawa's is Nick Jensen. Neither team is capitalizing on high-danger or rebound chances at sustainable rates, which could insulate both from overexposure on below-average nights.

Ottawa's lean holds. Calgary's cold spell and underlying disadvantage have finally aligned.

What the model said beforehand

The model's lean

OTT 55%
55%
OTT
Model favorite
55%
45%
OTT50CGY

OTT by 10 points of win probability — a modest lean. Projected score OTT 2.7–2.4 CGY; 18% chance it's tied after 60.

Source · Backcheck Poisson projection · season scoring rates
Season rates · 5v5

Tale of the tape

NHL stats API · our xG
OTT← edge
edge →CGY
56.0%47.0%
53.0%49.0%
2.662.36
2.122.66
2.181.76
1.992.15
0.9930.985

OTT holds 6 of 6 process categories — and the luck row (0.993 vs 0.985) says OTT has been getting the bounces, which tends not to last.

Source · NHL stats API + our xG · 5v5
Form · Last 10
OTT
6-2-2
+11 GD · 1d rest
CGY
3-5-2
-11 GD · 1d rest
0.993
OTT PDO
Luck gauge · drifts to 1.000
0.985
CGY PDO
Luck gauge · drifts to 1.000
What decides it

Keys to the game

Where the edges live
  • The Senators own the underlying play — 56.0% 5v5 xG vs 47.0%.
  • The Senators drive Corsi at 53.0% — expect territorial tilt.
Regression watch
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
Things to watch
  • The Senators own the underlying play — 56.0% 5v5 xG vs 47.0%.
  • The Senators drive Corsi at 53.0% — expect territorial tilt.
  • D. Cooley is on a back-to-back — watch for a backup start or a tired starter.
  • L. Ullmark is on a back-to-back — watch for a backup start or a tired starter.
  • The Senators are the hotter team by points pace (6-2-2 in their last 10).
  • The Flames are underwater at -11 goal differential over their last 10.
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
Last game's lineup · confirmed at warm-up

Lineups

NHL box score
OTT
Expected in goal
L. Ullmark
back-to-back.865 last start
Backup Linus Ullmark · -12.8 GSAx this season
Back-to-back: the backup often gets this one. Treat the starter as unconfirmed.

No completed game on file for this club yet.

CGY
Expected in goal
D. Cooley
back-to-back.889 last start
Backup Dustin Wolf · -1.8 GSAx this season
Back-to-back: the backup often gets this one. Treat the starter as unconfirmed.

No completed game on file for this club yet.

Lineups are the players who dressed in each club's last game, with their minutes; clubs confirm tonight's at warm-up. Every player this preview names was in that lineup.

Computed danger · scouting

Players to watch

NHL stats API · our xG
OTT
Brady Tkachuk11G 20A
1.19 xG/60 · 2 HD · 7.5% sh
Dylan Cozens13G 15A
1.00 xG/60 · 1 HD · 9.5% sh
CGY
Blake Coleman16G 12A
0.89 xG/60 · 2 HD · 11.4% sh
Matt Coronato10G 16A
0.80 xG/60 · 0 HD · 6.6% sh
Keep going

Where to next