Backcheck
Process vs. results

League Efficiency

Who is actually controlling games, and who is just getting the bounces? Every team plotted by shot volume against shot quality at 5-on-5 — then the PDO watch: the teams whose results are running ahead of, or behind, their process.

How to read this

Two questions, one page. First: when a team is on the ice, does it out-attempt the opponent (), and do those attempts turn into dangerous chances ()? Teams above 50% on both are genuinely tilting the ice. Teams with volume but no quality are spraying the outside — the scoreboard usually catches up to them.

Second: — shooting percentage plus save percentage. It clusters hard around 1.000 league-wide, so a team far above it is getting hot goaltending or hot sticks that history says won't last, and a team far below it is better than its record. Read the extremes as candidates for regression, not verdicts.

CF%
share of all shot attempts — pure volume
xG%
share of expected goals — chance quality
SH%
team shooting percentage at 5-on-5
SV%
team save percentage at 5-on-5
PDO
SH% + SV% — league average ≈ 1.000
Fine print · verbatim from the model
  • MoneyPuck team CSV · 5-on-5 · 32 teams · revalidated hourly
  • 2025–26 rates — the 2026–27 sample isn't live yet

2025–26 rates — the 2026–27 sample isn't live yet

5-on-5 · all teams

Shot volume vs. shot quality

controls playvolume w/o qualityburied

X is shot-attempt share (volume), Y is expected-goal share (quality). Teams above the diagonal convert attempts into dangerous chances; teams below it pile up attempts the model doesn't believe in.

40%45%50%55%60%40%45%50%55%60%CORSI FOR % — SHOT-ATTEMPT VOLUMEEXPECTED GOALS FOR % — QUALITYCONTROLS PLAYQUALITY W/O VOLUMEVOLUME W/O QUALITYBURIEDCOLOTTCARTBLVGKLAKEDMUTAMINANACBJPITDALPHINJDBUFWSHDETFLANSHSTLNYRNYIMTLWPGSJSBOSCGYTORSEAVANCHI
Source · MoneyPuck team aggregates · 32 teams · league average = 50%
PDO regression watch · 5-on-5
SH% + SV% · league avg ≈ 1.000

is the puck-luck meter. Teams far from 1.000 almost always drift back: the hot ones cool off (sell high), the cold ones bounce back (buy low). The xG% column says whether the underlying process backs the record up.

Running hot — regression incoming
TeamSH%
DAL1.02410.891.651.0
BOS1.02310.691.747.0
COL1.0219.892.257.0
BUF1.02010.691.450.0
TBL1.01911.190.854.0
WSH1.01810.291.650.0
MTL1.01811.390.548.0
PIT1.01211.190.151.0
Running cold — buy low
TeamSH%
NJD0.9717.289.850.0
VAN0.9748.289.244.0
ANA0.9818.989.352.0
EDM0.9829.289.052.0
VGK0.9839.389.054.0
CAR0.9848.989.556.0
CGY0.9857.990.647.0
DET0.9858.190.549.0