← Research

Suppression: crediting the skater who took the chance away

Producer: build_suppression_component.py (2026-09-25), chain stage 04; goalie side goalie_sup.py. Universe: every regular-season unblocked attempt at even strength and on the power play, 2010-11 → 2025-26 (about 1.55 million attempts, 1.1 million shots on goal), with both teams' on-ice skaters and the defending goalie joined from the shift charts. Coefficients are fitted on complete seasons and applied to every season.

Question. Net goals prices every chance against and bills it equally to the five skaters on the ice (EV defense, penalty kill). That is fair to nobody: the defenseman who keeps attackers to the outside and the partner beside him pay the same. Playmaking already moves offensive credit to the skater who measurably created it. Is there a defensive twin — skaters who make the opponents' offense worse than those opponents' own track records predict — and is it strong enough to put in the rating?

Short answer. Yes for shot quality, barely for finishing. Suppressing the danger of opponents' attempts is a real, repeatable skill (split-half r ≈ 0.48 at even strength), concentrated in defensemen. Suppressing opponents' finishing once shot quality is priced is real but small (defenseman split-half r ≈ 0.23; forwards and the PK ≈ 0), and the regression shrinks it hard. Both are now the ninth net-goals component, Suppression. Like Playmaking, it does not improve next-season projections; it is in the model because it is a fairer account of who did the defending.

Method

Two regressions, one per channel.

  1. Shot quality allowed. The xG of each unblocked attempt is explained by intercepts for season × situation × shooter position × exact skater counts, a score-state term, the shooter (career and season effects), every teammate of the shooter, and every opponent on the ice (by situation: EV, or PK when the shooter is on the power play). This is the same ridge regression that produces Playmaking's quality term; Suppression reads its opponent block. A negative opponent coefficient means shooters get worse looks with him on the ice. The shooter-position intercept and exact skater counts matter: without them the ridge explains the forward–defense and 5v5–3v3 quality gaps with the player blocks.
  2. Finishing allowed (goals against minus expected). Goal − xG on every shot on goal, explained by the shooter (K = 306 SOG), the defending goalie (K chosen out of sample: 3,000 SOG), the shooter's teammates, and the defenders. With the goalie in the model, a skater is not credited for his goalie's saves.

Penalties are chosen on odd/even-game held-out error. The defender block of the finishing fit improves held-out error only slightly (+0.0125 × 10⁻⁴ MSE at λ = 30,000 — about 1% of what the goalie block adds), which is why its estimates end up small.

Reallocation, not new value. On every attempt the credit is moved from where the model had booked it:

ChannelCredit to defender dTaken fromPrice
Shot quality−(skaters on ice) × price × quality(d)EV defense / PK of every defending skater, price × Σ quality0.212 NG per on-ice xGA per skater at EV, 0.165 on the PK (measured from the on-ice components, like Playmaking's 0.213 / 0.164)
Finishing−1.04 × finishing(d)the defending goalie's GSAx, Σ finishing28.3 ÷ 27.3 = 1.04, the stage-1 price of a goal saved

Both channels sum to exactly zero on every attempt (checked: 58.02 − 58.02 and 49.58 − 49.58 NG goals league-wide), so no team total changes. Skater Suppression and its EV-defense / PK debits are re-centered per season per game played, and the goalie debit per season per shot faced, so each group keeps a zero league mean.

Results

Spread. Among the 887 skaters with 300+ career games, career Suppression has a standard deviation of 0.97 goals per 82 (Playmaking: 1.35). Almost all of it is shot quality (SD 0.92); finishing adds 0.33, and the two are uncorrelated (r = −0.02). It is a defenseman's skill: SD 1.21 for defensemen vs 0.81 for forwards, and defensemen average +0.28 per 82 against −0.04 for forwards.

Career leaders (300+ GP)PosGPSuppression / 82qualityfinishing
Jared SpurgeonD1012+3.82+3.41+0.41
Josh GorgesD455+3.29+3.20+0.09
Jonas BrodinD914+3.11+3.30−0.18
Shea WeberD718+3.08+3.03+0.05
Ryan SuterD1132+3.02+3.06−0.04
Marc MethotD469+3.01+2.88+0.14
Esa LindellD766+2.95+2.18+0.77
Karl AlznerD635+2.84+2.40+0.43
Cale MakarD470+2.74+2.39+0.35
J.T. CompherL658+2.71+2.48+0.24
Career trailers (300+ GP)PosGPSuppression / 82qualityfinishing
Erik KarlssonD1099−4.02−2.68−1.34
Quinn HughesD507−3.23−2.94−0.30
Tim StützleC447−2.72−1.97−0.75
K'Andre MillerD439−2.52−1.93−0.59
Ryan GetzlafC793−2.46−2.00−0.46
Tony DeAngeloD481−2.38−2.57+0.20
Sebastian AhoC756−2.26−2.31+0.05
Jeff SkinnerL1109−2.25−1.71−0.54

The leaders are the league's recognised shutdown defensemen; the trailers are mostly offensive defensemen and high-event forwards whose teams trade chances against for chances for. Makar sits in the top ten at both ends of the ice. The best forwards are checkers and two-way centers (Compher, Gaustad, Beniers, Lehkonen, Pavelski, Koivu). 2025-26 leaders (40+ GP): Spurgeon +3.9, Brodin +3.3, Compher +3.0, Makar +3.0, Carlo +2.6; trailers: Q. Hughes −3.8, Karlsson −3.2, Necas −2.6, Stützle −2.4, Bedard −2.3.

What it changes. Season Overall moves by SD 0.79 goals per 82; 18% of player-seasons (40+ GP) move by a goal or more. Suppression correlates +0.30 with the old equal-share EV defense: it agrees with it on direction but reorders within it. For career defensemen (300+ GP), the defensive total (EV defense + PK + Suppression) correlates 0.81 with the old one. The biggest climbers are shutdown defensemen whose partners were sharing their credit (Lindell 142nd → 13th, Gorges 130th → 18th, Methot 144th → 23rd, Spurgeon 15th → 3rd, Tanev 27th → 4th); the biggest fallers are defensemen whose good on-ice numbers came with dangerous chances against (Sean Walker 36th → 189th, MacKenzie Weegar 16th → 164th, K'Andre Miller, Evan Bouchard).

Goalies

The finishing channel takes its credit from the goalie behind the skaters, so every goalie value on the site is now GSAx net of it. For 75% of goalies with 200+ games the adjustment is under one goal per 82, and the career ranking barely moves (rank correlation raw vs net 0.994). The largest:

GoalieGPraw GSAx / 82debitnet GSAx / 82
Ilya Sorokin308+27.9−3.8+24.1
Henrik Lundqvist549+21.1−2.5+18.6
Tuukka Rask513+8.1−2.2+5.9
Corey Crawford480+15.3−2.0+13.3
Andrei Vasilevskiy598+21.4+1.1+22.5
Martin Jones465−8.6+2.0−6.5
Carter Hart245−5.9+2.2−3.6

A negative debit means the goalie's defenders kept opponents' finishing below expected in front of him; a positive one means they made his job harder.

Does it predict better?

Walk-forward test in the NG/82 season backtest (backtest_ng82_2025_26.py --supwf): coefficients refitted on seasons before each target, applied to history only, for targets 2022-23 through 2025-26 (128 team-seasons), against the same model without Suppression.

Metric (walk-forward minus no-Suppression)ChangeSeasons better
Team points MAE+0.09 (z = +1.0)2 / 4
Team points RMSE+0.101 / 4
Brier (game outcomes)+0.0007 (z = +0.3)2 / 4
Player next-season r−0.020 / 4

Neutral to slightly worse, within noise. The player-level row is tilted against any reallocation — the target is next season's number without Suppression — so the team rows are the fair gate. The production version (fitted on all seasons) scores better, but that is circular and not evidence. Playmaking's walk-forward result was the same kind of neutral. Both are kept because they describe who drove the play more fairly, not because they forecast better.

Caveats

Reproduce: python build_suppression_component.py (production + playoffs) and --walkforward; python build_ng_attribution.py; backtest logs in Logs/backtest_ng82_sup_trial/, scored by summarize_sup_backtest.py.