METHODOLOGY
HockeyGameBot · HGB Stats

Model Documentation

How HGB
Ratings Work

HockeyGameBot uses play-by-play, shift, expected goal, RAPM, and production data to estimate player value. Two products: HGB WAR (what a player did this season) and HGB Rating (how good we think they are right now).

WAR vs Rating

Current season

HGB WAR

Current-season accounting. How much value did this player produce this year versus a replacement-level player? Single-season, no priors. Comparable to baseball WAR in concept — it tells you what happened, not what a player is worth going forward.

Prior-informed

HGB Rating

Blends the current season with recent history, weighted by current role and playing time. Closer to a projected value than a box score. A player can have a strong Rating but a mediocre WAR (small sample this year), or vice versa.

What Goes Into WAR

EV Offense

Isolated on-ice expected goal share contribution at 5v5, via RAPM. Measures how much a player moves the needle offensively when they're on the ice, separated from their teammates' contributions.

EV Defense

Isolated on-ice expected goals against impact at 5v5, via RAPM. How much does this player's presence suppress opponent offense, independent of who they play with?

Individual Offense

Personal goals and primary assists production bonus, z-scored versus positional peers. Rewards players who drive personal counting stats above and beyond what RAPM already captures in shot volume.

PP Offense

Power play RAPM times PP TOI. How much offensive value a player generates on the man advantage, scaled by how much they're actually used there.

PK Defense

Penalty kill RAPM times PK TOI. Defensive impact on the kill, weighted by actual deployment.

Penalties

Drawn minus taken, with a flat value per opportunity of approximately 0.20 goals. Players who consistently draw power plays are adding value that doesn't show up in shot metrics.

Opp. Quality (QoC)

Average quality of opponents faced. Context only — not a WAR component. High QoC means a player faces tougher competition; low QoC means sheltered deployment.

Context · Not scored

Mate Quality (QoT)

Average quality of linemates. QoT and QoC appear on player cards to help interpret the scored components — they explain results, they don't add or subtract from the WAR score.

Context · Not scored

Expected Goals

Expected goals (xG) is the engine under almost everything here. Every unblocked shot — on net or missed — gets a probability of becoming a goal, based on where it was taken, the angle, the shot type, whether it followed a rebound and how fast, whether it came off the rush, and what happened the moment before. Add those probabilities up and you get chance quality that doesn't care whether the puck actually went in.

HGB runs four separate xG models, not one: even strength, power play, penalty kill, and empty net. A power-play shot and a 5v5 shot are different problems, with different shot locations and different goalie behavior. Push them through a single model and it over-rates power-play chances and flattens the rest. Splitting them tightens the calibration: predicted goals now land within a few percent of actual goals in every situation, and within about a percent on special teams and empty net.

The models are gradient-boosted, trained on every unblocked shot since 2022 — the seasons after the NHL changed its shot tracking, so the location data is consistent. This is the same shot basis the public models use: unblocked attempts, missed shots included. xG feeds the even-strength and power-play numbers below and the goalie save model. Better xG, better everything downstream.

How RAPM Works

RAPM (Regularized Adjusted Plus-Minus) isolates individual player impact by controlling for teammates, opponents, zone starts, score state, and PP expiry. Every shift creates a set of equations where each player on the ice gets credit or blame for what happened, and ridge regression finds the player-level estimates that best explain the full dataset — while shrinking noisy estimates toward zero.

A player with a small sample gets pulled toward league average. A player with thousands of 5v5 minutes gets a more confident estimate. The model uses a two-perspective design: each shift generates one home-offensive row and one away-offensive row, keeping offensive and defensive signals separated so that a defenseman who suppresses shots doesn't accidentally look like an offensive contributor.

Prior Blending

WAR is a single-season number. Rating is forward-looking and uses a prior blend. EV Rating uses a 3-year prior weighted by current TOI confidence — a player with 1,200 EV minutes this season gets a confident estimate; a player with 200 minutes gets more prior weight.

PP and PK Rating use role-aware prior blending: players with current special teams usage get prior credit; players who aren't being deployed there don't carry forward their old PP/PK history.

Persistence slopes (empirically derived)

Metric Forwards Defensemen
EV Offense 0.629 / year 0.527 / year
EV Defense 0.458 / year 0.397 / year
PP (3-year) 0.45 / 0.20 / 0.10
PK (3-year) 0.40 / 0.18 / 0.08

EV offense is more persistent than EV defense — consistent with findings across other WAR systems. PP and PK use lighter persistence to account for the noisier samples in special teams play.

Card Guide

HGB Rating %
Hero Tile
Prior-informed talent estimate. Where does this player sit in the league right now, accounting for their full track record and current role?
HGB WAR %
Hero Tile
Current-season value. How much above replacement did this player produce this year, relative to positional peers?
HGB Impact %
Hero Tile
Per-game production and involvement score. How active is this player game-to-game?
Profile Bars
3-year weighted percentile profile. Each bar shows where the player ranks among positional peers.

Above average performance
Near average performance
Below average performance
Context metrics (QoC, QoT) — not good or bad, just deployment context
PP / PK Bars
Percentile among players with at least 50 minutes in that situation. Small-sample players are excluded entirely.
Hatched Bar (—)
Below the TOI threshold for that situation. No estimate is available. This is not the same as a zero value.