The winning goal will lead the match report. The winger who scored it will feature in the highlights. But what about the centre whose line kept the opposition defending, yet finished without a point? Or the defender who spent the final period protecting a lead?

Those performances leave different traces in the numbers. Goals and assists capture the decisive attacking moments. Shots, blocks and the balance of play add detail. Bringing those records together is the idea behind Game Score.

Game Score is a weighted summary of a skater’s recorded contributions in one game. It combines individual statistics with selected team results while that player is on the ice. The result is a single number with a breakdown that shows where it came from.

For a supporter reading the morning after, an analyst reviewing a run of games or a coach preparing a video session, that breakdown gives the discussion a useful starting point.

Where the idea came from

Hockey analyst Dom Luszczyszyn introduced his version of Game Score in July 2016, inspired by the single-game measure used in basketball. His aim was to put familiar hockey statistics on a shared scale. The original recipe included scoring, shots, blocks, penalties, faceoffs and five-on-five results. He chose its weights using event frequencies relative to goals, then rounded and scaled them for simplicity. His original introduction on Hockey Graphs sets out the method.

LakelandAI has two versioned seven-component recipes. Both use fixed weights; we have not fitted them to current games or to coaches’ assessments. The player’s Game Score page names the active recipe for its publication. The L1 implementation applies only when a publication names it; B0 publications keep their original calculation.

What the number means

A higher score reflects a stronger combination of the contributions this model counts. A player can raise their total through scoring, other individual actions or a positive balance of five-on-five play.

The scale is open-ended, with positive, zero and negative values. It is not a rating out of ten, and zero does not mean league average. Zero simply means the weighted contributions sum to zero. A negative result means the deductions exceeded the credits.

So what counts as a good score? A useful reference is the player’s other games and the results of skaters with similar roles and opportunities, calculated with the same recipe. We have not established universal cut-offs for an “average,” “good” or “elite” performance in our published selection.

The basic unit is one player, one game. A season total adds those appearances together, so it also reflects how many eligible games a player has played. An average per game answers a different question, although neither measure adjusts for minutes played.

Our calculation method

Multiply each statistic by its recipe weight, round each contribution to three decimal places, then add the seven displayed contributions. A missing input leaves the appearance unscored.

Reduced 2016 recipe (B0)

B0 publications use these weights:

ComponentContribution to Game Score
Goals+0.75 per goal
Assists+0.55 per assist
Shots on goal+0.075 per shot
Blocked shots+0.05 per block
Faceoff balance+0.01 per win; −0.01 per loss
On-ice shot attempts at five-on-five+0.05 per team attempt; −0.05 per opposition attempt
On-ice goals at five-on-five+0.15 per team goal; −0.15 per opposition goal

Provider reported L1 with faceoffs

When a publication names the L1 application recipe, it keeps the same seven inputs and uses these fixed, exact weights:

ComponentContribution to Game Score
Goals+3/4 per goal
Assists+239/536 per assist
Shots on goal+239/10066 per shot
Blocked shots+239/11580 per block
Faceoff balance+1/100 per win; −1/100 per loss
On-ice shot attempts at five-on-five+239/17701 per team attempt; the same deduction per opponent attempt
On-ice goals at five-on-five+239/2489 per team goal; the same deduction per opponent goal

These weights come from a frozen historical provider-reported reference. The score describes selected recorded productivity in a completed game. It does not isolate a player’s contribution from teammates or predict future performance. A listed skater can have an unavailable score if their own required statistics are missing; available teammates can still be scored. A game with incomplete reported statistics should not be read as a complete roster assessment.

The first five components use the player’s totals across all playing situations, including the power play and penalty kill. The last two use five-on-five play only. We keep the resulting total without dividing by ice time or converting it into a percentile.

A shot attempt includes a shot on goal, a missed shot or a shot blocked by the opposition. The on-ice attempt balance, often called Corsi differential, compares the team’s attempts with its opponent’s during the player’s shifts. It describes the direction of play through shot volume; it does not measure how dangerous those attempts were.

“On-ice” is a shared result. Linemates, defensive partners and opponents all help shape it. A player receives credit when their team scores during their five-on-five shift, even if they did not record a goal or an assist.

There is deliberate overlap in the formula. A five-on-five goal can count as an individual goal, a shot on goal, a team attempt and a team goal. The weights belong to a combined recipe, so those entries should not be read as four separate plays.

A night worth 2.07 in B0

Imagine a centre finishes with one goal, one assist, four shots on goal and two blocks. They win six faceoffs and lose four. At five-on-five, their team out-attempts the opposition 14–10 and outscores it 2–1 while they are on the ice.

The goal contributes 0.75, the assist 0.55, the shots 0.30 and the blocks 0.10. A faceoff balance of plus two adds 0.02. The four extra team attempts add 0.20, and the positive on-ice goal balance adds 0.15.

0.75 + 0.55 + 0.30 + 0.10 + 0.02 + 0.20 + 0.15 = 2.07.

In plain hockey terms, this 2.07 describes a productive night: the centre scored a goal, set up another and was on the ice while their team had the better of the five-on-five shot attempts and goals. The number brings those contributions together in Game Score points. It does not mean the player was worth exactly 2.07 goals or received a mark of 2.07 out of ten.

To put it in perspective, imagine this centre usually averages 0.80 using the same formula. A 2.07 would sit well above their own average. That 0.80 is an illustrative example, not a league benchmark. Another player could reach 2.07 through a different mix of contributions, which is why the breakdown and the player’s history matter alongside the total.

The same recipe can also recognise a night without a point. For a hypothetical winger with three shots, one block, no faceoffs, a five-on-five attempt balance of plus six and an even on-ice goal balance, the score is 0.575. The next step is to see how that winger contributed to the line’s pressure.

How we adapted and implemented it

Both recipes use total assists. B0 assigns 0.55 to every assist; the provider-reported L1 recipe assigns the exact fraction 239/536. Luszczyszyn’s original formula gave primary assists 0.70 and secondary assists 0.55. Combining them loses that distinction. We also leave out penalties drawn and taken because those inputs have not been sufficiently validated for these recipes. These differences matter when comparing our numbers with another provider’s Game Score. The original formula remains the reference for those choices.

Forwards and defenders use the same weights. Goalkeepers require a different model and are outside this calculation.

We publish a score only for eligible, completed games in the supported 2026–2027 regular-season selection, with recorded playing time and the required, consistent inputs. An unavailable score is not a zero. It means we cannot calculate that appearance under these rules.

This remains an experimental measure. Every publication uses one named recipe, and scores should be compared only within that recipe and scale. Research into other formulas does not alter an existing publication.

Using Game Score to evaluate players

Start with an appearance that stands out in the player’s history, then look at its ingredients. A spike driven by two goals calls for a different review from a run of games with positive attempt balances and little scoring. In the first case, inspect the chances and finishes. In the second, look at how the line is creating pressure and whether it is reaching dangerous areas.

Opportunity matters. Twenty minutes gives a skater more time to accumulate both credits and deductions than eight minutes. Power-play duty creates scoring opportunities; penalty-killing work has only its individual events counted here. The two on-ice components do not cover special teams. Check minutes and deployment before drawing conclusions from a ranking.

Then consider the assignment. A defender protecting a late lead may face repeated attempts. Blocks add credit, while opposition attempts subtract from the on-ice component. Video can reveal whether that defender cleared rebounds, protected the slot or struggled to exit the zone. The total alone cannot resolve those explanations.

Some valuable work leaves little direct trace in this recipe: closing a passing lane, supporting a breakout or forcing an attacker away from the middle. There is no separate reward for those actions. Likewise, a routine point shot and a close-range chance each count as one shot on goal; this version has no expected-goals component to distinguish their quality.

Across several games, the score can help identify performances to revisit. It does not isolate a player from their teammates or adjust for opposition strength, role or game situation. We have not established that our version predicts future performance or supports fair comparisons across positions. A short scoring burst is a reason to investigate, not proof that a player’s underlying level has changed.

The useful question after seeing a Game Score is: what produced this number? Open a player’s history, choose a game and inspect the breakdown. Then return to the shifts with something specific to look for.

Explore Game Score