Motion-blurred skater in a Calgary Flames sweater
Breakdown · CGY at NJD

Flames hold off the Devils

The verdict · stolen

The Flames stole one. They lost the expected-goals battle 3.59–4.95 and won anyway.

CGY 5 · NJD 4
◆ By the ModelJul 12, 6:48 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

Calgary's 5-4 victory was a heist: New Jersey dominated with 58% expected goals (4.95–3.59) but couldn't finish. The Devils created the better chances and controlled play, yet the Flames escaped with the win.

The scoreline inverts the underlying quality entirely. New Jersey's power play looked lethal—two goals on 26 shots, 2.74 expected goals—but the even-strength game belonged to Calgary. The Flames squeezed better looks from worse volume: 0.084 expected goals per shot versus New Jersey's 0.063. Both teams scored three on the rush, but Calgary's came from 19 chances; New Jersey needed 35.

Goaltending split the difference. D. Wolf stopped 28 of 32, overperforming his model by 0.95 goals. J. Markstrom faced 29 shots and made 24, underperforming by 1.41—a two-goal variance that explains the final score. In a game of 15 high-danger chances combined, Calgary found the margin in shooting efficiency, not opportunity.

The turning point came on Luke Hughes's wrist shot from the high slot late in the first (P3, 19:56). But the real story was Calgary's discipline in a wide-open game: they weathered New Jersey's possession advantage and converted their chances at a higher rate.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Mar 12
CGY
5
NJD
4

Flames hold off the Devils

Chances 3.6 – 5.0Did they deserve it? →
Did they deserve it?

The Devils deserved better.

Expected goals · chance value
CGY
3.59
NJD
4.95
42% of the chances58%

The board read CGY 5, NJD 4. The chances read CGY 3.6, NJD 5.0.

Our xG model · NHL play-by-play · all situations
Luck check
CGY
+1.4
goals above expected
CGY3.59 expected · 5 scored
Expected
Scored
NJD4.95 expected · 4 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 05:04CGYJ. Beecher1–0
  2. P1 14:07CGYK. Bahl2–0
  3. P1 16:14NJDM. Tsyplakov2–1
  4. P2 00:54CGYJ. BeecherSH3–1
  5. P2 01:36NJDS. NemecPP3–2
  6. P2 16:48CGYY. Sharangovich4–2
  7. P3 04:10CGYM. Backlund5–2
+2 more on the full breakdown
NHL play-by-play · chance value from our xG model
Where the shots came from
CGY
34 shots
5
Final
90 shots
NJD
56 shots
4
CGY attackNJD attack
CGY NJD Goal
34
shots · 5 in
56
shots · 4 in
Every unblocked shot · press play to replay it
Chances by danger
CGYNJD
2 / 8
2.27 xG
High danger
1 / 7
1.64 xG
1 / 8
0.89 xG
Medium
2 / 25
2.68 xG
2 / 27
0.43 xG
Low
1 / 47
0.63 xG

The Flames buried 2 of 8 high-danger looks.

Danger tiers by our xG model · high ≥ 20% chance
In the net
B+
D. Wolf
+0.9
CGY · 28/32
D-
J. Markstrom
−1.4
NJD · 24/29
The numbers, checked
BACKCHECK

Flames hold off the Devils

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–10
  1. 05:04CGYJ. Beecher(M. Gridin)1–0
  2. 14:07CGYK. Bahl(O. Maatta, A. Klapka)2–0
  3. 16:14NJDM. Tsyplakov(N. Bjugstad)2–1
2ndshots 13–9
  1. 00:54CGYJ. Beechershorthanded3–1
  2. 01:36NJDS. Nemecpower play(L. Hughes, J. Markstrom)3–2
  3. 16:48CGYY. Sharangovich(R. Strome, V. Olofsson)4–2
3rdshots 8–13
  1. 04:10CGYM. Backlund(J. Farabee, B. Pachal)5–2
  2. 09:38NJDJ. Hughes(J. Bratt, D. Hamilton)5–3
  3. 19:56NJDL. Hughespower play(J. Bratt, J. Hughes)5–4

score reads CGY–NJD

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

The numbers

XGBoost xG · NHL play-by-play
3.59
CGY chances
Goals their shots were worth
+1.4
Finishing
Goals above what those chances were worth
1.066
CGY puck luck
Above 1.000 — the bounces went their way
35.2%
Shot attempts
Under half — they were outshot
Split by club

Who controlled the game

3.59Expected goals4.95
NJD 58% of the chance quality
29Shots on goal32
8High-danger chances7
43All attempts (Corsi)79
Adjusted for score: CGY 30% · NJD 70%
Faceoffs · NJD won65%off59%neu48%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
CGY2 / 8 · 2.27 xG
NJD1 / 7 · 1.64 xG
Medium dangermid-range
CGY1 / 8 · 0.89 xG
NJD2 / 25 · 2.68 xG
Low dangerperimeter & point
CGY2 / 27 · 0.43 xG
NJD1 / 47 · 0.63 xG

CGY went 2-for-27 from low danger on 0.43 expected goals — 1.6 above expected.

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

Finishing vs expected

expectedactual
CGY
5 G · 3.59 xG · +1.4
NJD
4 G · 4.95 xG · -0.9
0123456

CGY finished +1.4 against expected, NJD -0.9.

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

Shot diet

goalsshots
CGY
WRIST3/17
SNAP0/5
TIP IN0/3
SLAP1/4
BACKHAND1/3
DEFLECTED0/2
OTHER0/9
NJD
WRIST2/26
SNAP2/14
TIP IN0/8
SLAP0/4
BACKHAND0/3
DEFLECTED0/1
OTHER0/23
CGY
NJD
Off the rush
3 G on 19
2.15 xG
3 G on 35
3.12 xG
Off rebounds
1 G on 3
0.81 xG
1 G on 5
1.13 xG

Wrist shots carried the volume: CGY went 3-for-17, NJD 2-for-26. CGY scored 3 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
D. Wolf
CGY · 28/32 · .875
+0.9
saved above expected
B+
the night
By dangerG/attxGsaved
High danger1/71.6+0.6
Medium2/252.7+0.7
Low1/470.6-0.4

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

J. Markstrom
NJD · 24/29 · .828
-1.4
saved above expected
D-
the night
By dangerG/attxGsaved
High danger2/82.3+0.3
Medium1/80.9-0.1
Low2/270.4-1.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

90 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
CGY
34 shots
5
Final
90 shots
NJD
56 shots
4
CGY attackNJD attack
CGY NJD Goal

Each club shoots toward its own end — CGY left, NJD 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
L. Hughes
#43 · D · NJD
1 G · 1 A · 5 SOG · 25:03 on ice · -1
J. Hughes
#86 · C · NJD
1 G · 1 A · 5 SOG · 20:57 on ice · -3
J. Bratt
#63 · L · NJD
0 G · 2 A · 1 SOG · 20:11 on ice · -2
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

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

The read

Edited for clarity
◆ By the ModelJul 12, 6:47 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 projects a 2.4–2.7 game with New Jersey at 54% win probability. This is about as close to even money as you'll find.

New Jersey owns the underlying play. The Devils' 50.0% 5v5 expected goals share dwarfs Calgary's 47.0%. Their Corsi numbers (51.0% vs 49.0%) reinforce it—they generate possession advantages and direct more shot attempts toward Calgary's net. This isn't margin; it's a systematic gap in control.

Both teams are running cold at the PDO line. New Jersey sits at 0.971; Calgary at 0.985. When a team's actual goal rate diverges from its expected rate this sharply, regression is the default forecast. Each team has unsustained luck working against it, which means each has something to gain if the variance corrects.

The star matchup belongs to New Jersey's Timo Meier, who generates 1.08 expected goals per 60 minutes at 5v5—elite volume—and has converted it into 13 goals and 15 assists. He's potted 3 high-danger chances, a marker of finishing quality. Calgary's Blake Coleman is the Flames' nearest equivalent, generating 0.89 xG/60 and posting 16 goals with 12 assists. Coleman's shot rate sits at 11.4%, slightly elevated, suggesting some regression risk.

Matt Coronato represents Calgary's secondary firepower. Though his 0.80 xG/60 trails Coleman's, Coronato has 10 goals and 16 assists on a 6.6% shot rate—a number that screams underperformance waiting to correct. Jack Hughes anchors New Jersey's depth, pairing 0.88 xG/60 with 18 goals and 17 assists. He's accrued just 1 high-danger goal, meaning much of his production flows from high-volume play and efficiency outside the home plate.

Tactically, both teams generate a startling void: neither has scored a single high-danger or rebound goal this season. That's not an edge—it's a symmetry. It suggests both are missing some portion of their opportunity cleanup. Calgary's defensive perimeter carries risk with Coronato in the mix; New Jersey's with Johnathan Kovacevic.

The verdict stands. New Jersey's process dominance tips the needle to 54% win probability, but Calgary's underperforming PDO and Coronato's shooting regression create enough tail risk to call this a genuine toss. Bet the model, but hedge the outcome.

What the model said beforehand

The model's lean

NJD 54%
54%
NJD
Model favorite
46%
54%
CGY50NJD

NJD by 8 points of win probability — a modest lean. Projected score CGY 2.4–2.7 NJD; 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
CGY← edge
edge →NJD
47.0%50.0%
49.0%51.0%
2.362.45
2.662.50
1.761.66
2.152.23
0.9850.971

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

Source · NHL stats API + our xG · 5v5
Form · No games yet
CGY
0-0-0
+0 GD · 0d rest
NJD
0-0-0
+0 GD · 0d rest
0.985
CGY PDO
Luck gauge · drifts to 1.000
0.971
NJD PDO
Luck gauge · drifts to 1.000
What decides it

Keys to the game

Where the edges live
  • The Devils own the underlying play — 50.0% 5v5 xG vs 47.0%.
Regression watch
  • The Devils' PDO is 0.971 — running cold, due for positive regression.
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
Things to watch
  • The Devils own the underlying play — 50.0% 5v5 xG vs 47.0%.
  • The Devils' PDO is 0.971 — running cold, due for positive regression.
Computed danger · scouting

Players to watch

NHL stats API · our xG
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
NJD
Timo Meier13G 15A
1.08 xG/60 · 3 HD · 6.7% sh
Jack Hughes18G 17A
0.88 xG/60 · 1 HD · 11.5% sh
Keep going

Where to next