Motion-blurred skater in a Toronto Maple Leafs sweater
Breakdown · TOR at CGY

Maple Leafs hold off the Flames

The verdict · coin flip

The Maple Leafs won a genuine coin flip — neither side controlled the run of play.

TOR 4 · CGY 2
◆ By the ModelJul 12, 3:50 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

The Maple Leafs beat the Flames 4-2 by converting high-quality chances into goals, while Calgary's possession translated to no comparable offensive output. Expected goals finished nearly even (2.73–2.78, edge to Toronto), yet the Flames held 58% of the shot attempts (30–22)—evidence that shot quantity and shot quality moved in opposite directions.

Toronto's edge sat in execution and location. They attacked from higher-danger areas—0.053 xG per shot versus Calgary's 0.039—and converted at an elite rate. On the rush, Toronto buried 3 goals on 23 chances. In the high-danger zone, they were clinical: 2 goals on 5 chances (40%). Calgary generated volume but not threat; they underperformed their xG by 0.73 goals. Toronto outscored theirs by 1.22, a variance driven by both elite execution and goaltending.

J. Woll's 28-save performance (0.933 SV%, +0.73 against expected) accounted for much of that overperformance. D. Wolf made 18 of 21 (0.857 SV%), a gap that reflected the quality of chances each team generated.

Bobby McMann's wrist shot from the wing in the third period (19:35) marked the turning point.

The breakdown in twelve frames

Swipe it

Every number is from this page
Final · Feb 2
TOR
4
CGY
2

Maple Leafs hold off the Flames

Chances 2.8 – 2.7Did they deserve it? →
Did they deserve it?

Dead even on chances. The Maple Leafs took it anyway.

Expected goals · chance value
TOR
2.78
CGY
2.73
50% of the chances50%

The board read TOR 4, CGY 2. The chances read TOR 2.8, CGY 2.7.

Our xG model · NHL play-by-play · all situations
Luck check
TOR
+1.2
goals above expected
TOR2.78 expected · 4 scored
Expected
Scored
CGY2.73 expected · 2 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 00:35TORW. Nylander1–0
  2. P2 07:17TORM. Maccelli2–0
  3. P2 09:10TORT. Stecher3–0
  4. P2 13:15CGYN. Kadri3–1
  5. P2 15:46CGYJ. Farabee3–2
  6. P3 19:35TORB. McMannEN4–2
NHL play-by-play · chance value from our xG model
Where the shots came from
TOR
35 shots
4
Final
78 shots
CGY
43 shots
2
TOR attackCGY attack
TOR CGY Goal
35
shots · 4 in
43
shots · 2 in
Every unblocked shot · press play to replay it
Chances by danger
TORCGY
2 / 5
1.28 xG
High danger
1 / 2
0.47 xG
2 / 11
1.03 xG
Medium
1 / 14
1.56 xG
0 / 36
0.46 xG
Low
0 / 54
0.70 xG

The Maple Leafs buried 2 of 5 high-danger looks.

Danger tiers by our xG model · high ≥ 20% chance
In the net
B
J. Woll
+0.7
TOR · 28/30
C
D. Wolf
−0.2
CGY · 18/21
The numbers, checked
BACKCHECK

Maple Leafs hold off the Flames

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 3–7
  1. 00:35TORW. Nylander(J. Tavares)1–0
2ndshots 11–10
  1. 07:17TORM. Maccelli(W. Nylander)2–0
  2. 09:10TORT. Stecher(W. Nylander, A. Matthews)3–0
  3. 13:15CGYN. Kadri(J. Farabee, J. Hanley)3–1
  4. 15:46CGYJ. Farabee(N. Kadri, M. Weegar)3–2
3rdshots 8–13
  1. 19:35TORB. McMannempty net(S. Laughton, B. Carlo)4–2

score reads TOR–CGY

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

The numbers

XGBoost xG · NHL play-by-play
2.78
TOR chances
Goals their shots were worth
+1.2
Finishing
Goals above what those chances were worth
1.048
TOR puck luck
Above 1.000 — the bounces went their way
42.6%
Shot attempts
Under half — they were outshot
Split by club

Who controlled the game

2.78Expected goals2.73
TOR 50% of the chance quality
22Shots on goal30
5High-danger chances2
52All attempts (Corsi)70
Adjusted for score: TOR 38% · CGY 62%
Faceoffs · CGY won56%off29%neu27%def
Source · NHL play-by-play · XGBoost xG
How the game was won

The danger ladder

shotsgoalsexpected
High dangerslot & crease
TOR2 / 5 · 1.28 xG
CGY1 / 2 · 0.47 xG
Medium dangermid-range
TOR2 / 11 · 1.03 xG
CGY1 / 14 · 1.56 xG
Low dangerperimeter & point
TOR0 / 36 · 0.46 xG
CGY0 / 54 · 0.70 xG

TOR went 2-for-11 from medium danger on 1.03 expected goals — 1.0 above expected.

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

Finishing vs expected

expectedactual
TOR
4 G · 2.78 xG · +1.2
CGY
2 G · 2.73 xG · -0.7
012345

TOR finished +1.2 against expected, CGY -0.7.

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

Shot diet

goalsshots
TOR
WRIST2/18
SNAP1/6
TIP IN0/4
SLAP0/4
BACKHAND1/3
WRAP AROUND0/0
OTHER0/17
CGY
WRIST1/25
SNAP0/6
TIP IN1/4
SLAP0/3
BACKHAND0/4
WRAP AROUND0/1
OTHER0/27
TOR
CGY
Off the rush
3 G on 23
2.04 xG
1 G on 27
1.93 xG
Off rebounds
0 G on 1
0.05 xG
0 G on 1
0.02 xG

Wrist shots carried the volume: TOR went 2-for-18, CGY 1-for-25. TOR 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
J. Woll
TOR · 28/30 · .933
+0.7
saved above expected
B
the night
By dangerG/attxGsaved
High danger1/20.5-0.5
Medium1/141.6+0.6
Low0/540.7+0.7

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. Wolf
CGY · 18/21 · .857
-0.2
saved above expected
C
the night
By dangerG/attxGsaved
High danger2/51.3-0.7
Medium2/111.0-1.0
Low0/360.5+0.5

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

78 shots · press play to watch the game back

Where the shots came from

NHL play-by-play coordinates
TOR
35 shots
4
Final
78 shots
CGY
43 shots
2
TOR attackCGY attack
TOR CGY Goal

Each club shoots toward its own end — TOR 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
W. Nylander
#88 · R · TOR
1 G · 2 A · 3 SOG · 17:00 on ice · +1
N. Kadri
#91 · C · CGY
1 G · 1 A · 3 SOG · 19:15 on ice
J. Farabee
#86 · L · CGY
1 G · 1 A · 2 SOG · 15:59 on ice
Ranked from the box score — points first · Backcheck
What the model said beforehand

Before the game

Written Mon, Feb 2
Open the pre-game read
Written from the numbers

The read

Edited for clarity
◆ By the ModelJul 12, 3:48 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 calls this pick'em. Toronto projects to 2.5–2.6 goals against Calgary, giving the Flames 53% win probability—as close to even as the numbers produce.

Calgary arrives hotter by pace, going 4-4-2 in their last 10 games. But the record obscures what matters: they're at -6 in goal differential over the stretch, meaning they're grinding wins from tight margins rather than dominating. Toronto's worse: -20 over the same span. When both teams are climbing out of deep holes, meaningful edges disappear.

The 5v5 peripherals expose the conflict. Toronto has 46.0% expected goals share and 45.0% Corsi—being out-shot and out-chanced. Calgary sits at 47.0% xG and 49.0% Corsi, owning territorial control. That 49.0% Corsi translates to more time spent in Toronto's zone, which compounds every marginal advantage in tight play.

Yet PDO inverts the picture. Calgary is at 0.985, running cold; Toronto sits at 1.002, perfectly neutral. The Flames are ripe for positive regression—puck luck and goaltending have room to improve. That's their hidden edge.

J. Woll's situation on the back-to-back matters. He's either resting on the bench or taking the ice fatigued, and either scenario benefits Calgary's puck-possession approach. A backup or worn starter deepens the Flames' advantage.

Toronto's offense centers on Auston Matthews, who generates 1.10 expected goals per 60 minutes and shoots 10.6%—high enough to regress. He's at 17 goals and 13 assists. John Tavares supplies secondary production at 0.91 xG/60, 15 goals, 24 assists, but his 12.4% shooting rate is even more exposed to correction.

Calgary counters with Blake Coleman at 0.89 xG/60, 16 goals, 12 assists, shooting 11.4%. Matt Coronato trails in volume (0.80 xG/60) but carries 10 goals and 16 assists at 6.6%—runway to accelerate.

The game pivots on shooting rates and mean reversion. Toronto needs to overcome a shot-generation deficit; Calgary needs to claim its PDO upside. The Flames' Corsi edge and likely goaltending advantage nudge them to 53%, but that separation is narrow enough to make this live-game territory.

What the model said beforehand

The model's lean

CGY 53%
53%
CGY
Model favorite
47%
53%
TOR50CGY

CGY by 6 points of win probability — a modest lean. Projected score TOR 2.5–2.6 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
TOR← edge
edge →CGY
46.0%47.0%
45.0%49.0%
2.242.36
2.672.66
2.091.76
2.522.15
1.0020.985

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

Source · NHL stats API + our xG · 5v5
Form · Last 10
TOR
2-6-2
-20 GD · 1d rest
CGY
4-4-2
-6 GD · 2d rest
1.002
TOR 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 Flames drive Corsi at 49.0% — expect territorial tilt.
Regression watch
  • The Flames' PDO is 0.985 — running cold, due for positive regression.
Things to watch
  • The Flames drive Corsi at 49.0% — expect territorial tilt.
  • J. Woll is on a back-to-back — watch for a backup start or a tired starter.
  • The Flames are the hotter team by points pace (4-4-2 in their last 10).
  • The Flames are underwater at -6 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
TOR
Expected in goal
J. Woll
back-to-back.933 last start
Backup Joseph Woll · -6.6 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. Wolf
2 days rest.920 last start
Backup Dustin Wolf · -1.8 GSAx this season

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
TOR
Auston Matthews17G 13A
1.10 xG/60 · 1 HD · 10.6% sh
John Tavares15G 24A
0.91 xG/60 · 3 HD · 12.4% 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