Game Recap
The Calgary Flames defeated the San Jose Sharks 3-2 on January 31, 2026. The Calgary Flames controlled play with 61.4% Corsi and generated 9.02 expected goals compared to 5.05 from the San Jose Sharks at 5-on-5, suggesting the result was well-earned. The Calgary Flames created 11 high-danger scoring chances compared to 8 from the San Jose Sharks at 5-on-5. Morgan Frost was the most dangerous skater with 2.16 individual expected goals on 3 shots at 5-on-5. The Calgary Flames outshot the San Jose Sharks 42-25 in total shots on goal.
← Back to Games

- xG Gameflow — cumulative expected goals chart tracking each team's xG as San Jose Sharks vs Calgary Flames progressed on Jan 31, 2026
- Shot heatmap — where shots were taken on the ice, color-coded by scoring probability
- Event timeline — every goal, penalty, and key play mapped chronologically
- Player matchup grid — head-to-head on-ice performance in Corsi and expected goals
- Strength filter — 5v5 by default, with options for power play, penalty kill, and all situations
SJS2 - 3CGY
Jan 31, 2026 · Regular Season
Overview
| Period | Corsi | Fenwick | Shots | SC | HDSC | xG | Goals | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| F | A | % | F | A | % | F | A | % | F | A | % | F | A | % | F | A | % | F | A | % | ||
| CGY | P1 | 28 | 20 | 58.3 | 22 | 15 | 59.5 | 15 | 11 | 57.7 | 14 | 13 | 51.9 | 1 | 5 | 16.7 | 2.93 | 3.76 | 43.8 | 1 | 1 | 50.0 |
| P2 | 31 | 14 | 68.9 | 22 | 9 | 71.0 | 17 | 6 | 73.9 | 22 | 9 | 71.0 | 9 | 3 | 75.0 | 5.82 | 2.12 | 73.3 | 1 | 1 | 50.0 | |
| P3 | 23 | 19 | 54.8 | 18 | 11 | 62.1 | 10 | 8 | 55.6 | 19 | 15 | 55.9 | 6 | 2 | 75.0 | 4.79 | 2.50 | 65.7 | 1 | 0 | 100.0 | |
| Total | 82 | 53 | 60.7 | 62 | 35 | 63.9 | 42 | 25 | 62.7 | 55 | 37 | 59.8 | 16 | 10 | 61.5 | 13.54 | 8.39 | 61.8 | 3 | 2 | 60.0 | |
| SJS | P1 | 20 | 28 | 41.7 | 15 | 22 | 40.5 | 11 | 15 | 42.3 | 13 | 14 | 48.1 | 5 | 1 | 83.3 | 3.76 | 2.93 | 56.2 | 1 | 1 | 50.0 |
| P2 | 14 | 31 | 31.1 | 9 | 22 | 29.0 | 6 | 17 | 26.1 | 9 | 22 | 29.0 | 3 | 9 | 25.0 | 2.12 | 5.82 | 26.7 | 1 | 1 | 50.0 | |
| P3 | 19 | 23 | 45.2 | 11 | 18 | 37.9 | 8 | 10 | 44.4 | 15 | 19 | 44.1 | 2 | 6 | 25.0 | 2.50 | 4.79 | 34.3 | 0 | 1 | 0.0 | |
| Total | 53 | 82 | 39.3 | 35 | 62 | 36.1 | 25 | 42 | 37.3 | 37 | 55 | 40.2 | 10 | 16 | 38.5 | 8.39 | 13.54 | 38.2 | 2 | 3 | 40.0 | |
Win Probability
CGY Favored
SJS Favored
Goal
Power Play
Gameflow — Cumulative xG
CGY
SJS
Goal
Shot Density Heatmap
SJS Attempts
CGY Attempts
Individual Event Map
SJS ShootCGY Shoot
Goal
Shot on Net
Attempt Blocked
Hit Taken
Player Matchup Grid
This grid shows how every skater on the home team (CGY) performed against every skater on the away team (SJS) when they were on the ice at the same time.
- Rows = CGY players, Columns = SJS players. Forwards are listed first, then defensemen.
- Green = the CGY player had a favorable matchup (above 50%). Red = unfavorable (below 50%).
- Values shown from the home team's perspective. Toggle between CF% (shot attempt share) and xGF% (expected goal share).
- Cells with fewer than 3 shared events are grayed out (insufficient sample). Hover over any cell for full details.
| CGY ↓ / SJS → | Wennberg | Celebrini | Smith | Toffoli | Kurashev | Misa | Ostapchuk | Goodrow | Eklund | Graf | Gaudette | Reaves | Klingberg | Orlov | Ferraro | Dickinson | Desharnais | Mukhamadullin |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Frost | 69 | 44 | 50 | 67 | 63 | 83 | 67 | 78 | 71 | 50 | 83 | 50 | 56 | 71 | 63 | 87 | 87 | 38 |
| Backlund | 48 | 50 | 52 | 42 | 36 | 0 | 89 | 89 | 43 | 58 | — | 50 | 42 | 53 | 70 | 67 | 78 | 60 |
| Kadri | 76 | 80 | 67 | 67 | 67 | 67 | 100 | 100 | 67 | 100 | 70 | 100 | 70 | 58 | 100 | 64 | 86 | 100 |
| Sharangovich | 37 | 37 | 38 | 27 | 44 | 0 | 100 | 100 | 17 | 54 | 0 | — | 28 | 43 | 70 | 54 | 86 | 60 |
| Zary | 58 | 63 | 50 | 50 | 50 | 25 | 78 | 100 | 33 | 63 | 36 | 100 | 56 | 42 | 53 | 57 | 79 | 57 |
| Pospisil | 50 | 40 | 25 | 50 | 100 | 0 | 60 | 75 | 0 | 67 | 33 | 75 | 43 | 33 | 67 | 33 | 50 | 100 |
| Huberdeau | 65 | 38 | 38 | 33 | 80 | 73 | 100 | 100 | 69 | 71 | 73 | 100 | 50 | 71 | 76 | 79 | 93 | 58 |
| Farabee | 56 | 60 | 40 | 55 | 63 | 43 | 57 | 40 | 38 | 100 | 63 | 40 | 53 | 36 | 100 | 54 | 75 | 100 |
| Lomberg | 50 | 40 | 43 | 50 | 100 | 0 | 71 | 83 | 0 | 50 | 0 | 80 | 40 | 50 | 25 | 67 | 67 | 38 |
| Gridin | 88 | 50 | 50 | 67 | 83 | 65 | 57 | 71 | 64 | 62 | 65 | 67 | 63 | 75 | 54 | 100 | 91 | 39 |
| Coronato | 70 | 53 | 62 | 50 | 44 | 50 | 100 | 100 | 60 | 67 | 100 | 100 | 43 | 47 | 83 | 57 | 100 | 43 |
| Klapka | 70 | 67 | 67 | 75 | 80 | 67 | 80 | 80 | 60 | 100 | 67 | 75 | 83 | 100 | 100 | 75 | 80 | 100 |
| Weegar | 56 | 40 | 41 | 40 | 62 | 67 | 75 | 86 | 55 | 73 | 71 | 67 | 50 | 64 | 86 | 57 | 80 | 64 |
| Bahl | 44 | 48 | 50 | 38 | 46 | 0 | 64 | 70 | 33 | 63 | 0 | 25 | 37 | 48 | 27 | 77 | 83 | 41 |
| Kuznetsov | 27 | 50 | 42 | 29 | 53 | 61 | 75 | 75 | 53 | 67 | 65 | 75 | 56 | 60 | 78 | 50 | 62 | 71 |
| Whitecloud | 42 | 54 | 52 | 35 | 33 | 0 | 67 | 80 | 29 | 63 | 0 | 67 | 43 | 47 | 27 | 63 | 75 | 38 |
| Pachal | 100 | 50 | 0 | 100 | 100 | 67 | 75 | 71 | 71 | 60 | 75 | 71 | 50 | 43 | 88 | 88 | 80 | 88 |
| Hanley | 100 | 50 | 0 | 100 | 100 | 83 | 100 | 100 | 86 | 60 | 88 | 100 | 71 | 67 | 89 | 100 | 90 | 89 |
