PAL Rating and Value Rating: how we calculate them
Two scores from 0 to 100, two questions. PAL Rating: is this player performing? Value Rating: for what the player costs, is it a good contract? Here is the calculation, step by step, with 2025-26 numbers.
Three numbers, three questions
| WAR | How many wins did the player add? | in wins, season total |
| PAL Rating | How well is the player performing, at the position? | 0 to 100, adjusted for ice time; salary never enters it |
| Value Rating | Is it a good contract? | 0 to 100, PAL compared with what that cap hit usually buys |
WAR is a total: a player injured for half the season piles up half as much. PAL Rating is a rate: it judges the quality of play while the player is on the ice. The two complement each other.
1The data
The same as WAR: the play-by-play and on-ice shifts of every regular-season game. From them we count goals, assists, shot attempts (blocked ones included), blocked shots, takeaways, giveaways and penalties, and measure what happens at even strength with the player on the ice, and without. Expected goals (xG) and RAPM effects come from the WAR calculation. Value Rating adds the season's cap hit, from our contracts table.
2Per 60 minutes, pulled toward the average
Each stat is converted to a rate per 60 minutes (or a percentage). Rates jump around for a player with little ice time: three goals in a hundred minutes is a star's pace, and almost always luck. So we add to everyone the equivalent of 200 minutes of an average player at the same position:
rate used = (rate × minutes + average × 200) ÷ (minutes + 200)
A 1,500-minute player keeps 88% of the player's own rate; a 200-minute player, half. Goalies follow the same rule with 300 shots, or 8 games. A score is published only from 200 minutes (8 games for a goalie).
3Compared within the position
A defenseman is never compared with a center on goals. Each rate is compared with players at the same position (forwards, defensemen, goalies) who played at least 400 minutes, or 15 games for a goalie: 424 forwards, 225 defensemen and 70 goalies in 2025-26. The gap is measured in standard deviations:
z = (rate used − position average) ÷ position standard deviation (capped at ±3.5)
For a stat where lower is better (xG against, giveaways, penalties taken), the sign is flipped.
4Eight dimensions, two sides
Stats are grouped into dimensions. Within a dimension, the z-scores are averaged by weight, then the dimension is rescaled (mean 0, standard deviation 1 over the pool). The dimensions then form two sides, offense and defense; the last two columns give each dimension's weight in each side. Possession counts in both: it measures what a player creates and what the player concedes. Discipline stays separate.
| Dimension | Stats (weight) | Offense side | Defense side |
|---|---|---|---|
| Offense | Goals /60 ×1 · Primary assists /60 ×1 · Points /60 ×1 | 35 % | — |
| Creation | Individual xG /60 ×2 · High-danger chances /60 ×1 · Rush attempts /60 ×1 · Rebound attempts /60 ×1 | 20 % | — |
| Shooting | Shot attempts /60 ×1 · xG per shot ×1 · Goals minus xG /60 ×1 | 15 % | — |
| Possession | Corsi % ×1 · Fenwick % ×1 · xG % ×2 · Relative xG % ×1 · RAPM impact /60 ×2 | 15 % | 20 % |
| Defense | On-ice xGA /60 (lower is better) ×0.5 · Relative xGA /60 (lower is better) ×1 · RAPM defense /60 ×3 · Blocked shots /60 ×0.5 · Takeaways /60 ×0.5 · Giveaways /60 (lower is better) ×0.5 | — | 60 % |
| Discipline | Penalties drawn /60 ×1 · Penalties taken /60 (lower is better) ×1 | — | — |
| Power play | PP offense (goals, RAPM) ×2 · PP points /60 of PP ×1 · PP time per game ×1 | 15 % | — |
| Penalty kill | PK defense (goals, RAPM) ×2 · PK time per game ×1 | — | 20 % |
Power play and penalty kill count as a total, not per 60: being sent out in those situations is part of a player's value. Since the NHL publishes no passing data, creation goes through individual xG, high-danger chances (xG of 0.15 or more), rush shots and rebound shots. In defense, the RAPM effect, which accounts for teammates and opponents, weighs the most.
Offensive, defensive or both
A defensive player doesn't score, and that is the job. Adding up every dimension would punish the player for what nobody asks for. A skater's PAL therefore starts from the stronger side, gives partial credit for the other, and is low only if the player excels nowhere:
D = 75 % × defense side (defensive measures are noisier) A = offense side PAL (before ranking) = 60 % × max(A, D) + 40 % × min(A, D) + 10 % × discipline
The defense side is scaled to 75% because its measures depend more on role: a fourth line plays tight minutes against weaker opponents and allows few chances without necessarily defending well. The profile comes from both sides, in standard deviations:
- Two-way : both sides at +0.5 or more
- Offensive : offense exceeds defense by at least 0.75
- Defensive : defense exceeds offense by at least 0.75
- Limited : both sides below −0.5
- Balanced : everyone else
Goalies
| Dimension | Stats (weight) | Weight |
|---|---|---|
| Efficiency | GSAx /100 shots | 40 % |
| Impact | Goals saved above expected | 25 % |
| High danger | On high-danger shots, /100 | 15 % |
| Consistency | % of games above expected | 15 % |
| Workload | Games played | 5 % |
A game “above expected” is a game with at least 10 shots in which the goalie allowed fewer goals than the xG against.
5From z to a 0-to-100 score
Each dimension, each side, then PAL Rating becomes a score through its percentile rank in the position's pool:
score = 100 × (pool players doing worse + ½ × ties) ÷ pool players
50 is the median player at the position, and the whole scale gets used: a 90 means doing better than 90% of regulars at the position. Rank rather than a normal curve: with a normal curve, the best players all piled up at 100.
- 9090–100Elite
- 8080–89Excellent
- 7070–79Very good
- 6060–69Above average
- 4040–59Around average
- 2020–39Below average
- 00–19Very poor
6Value Rating
Dividing PAL by salary would favor every player at the league minimum. Instead, for each position, we estimate the performance expected at each salary level: a regression of PAL Rating on the logarithm of cap hit, over pool players whose contract we know. A logarithm, because going from $1M to $2M changes more than going from $11M to $12M.
expected PAL = a + b × ln(cap hit in $M) Value = 100 × Φ((PAL − expected PAL) ÷ residual standard deviation) (Φ: the normal distribution) Forwards : a = 38.65, b = 12.16, SD 26.8 (403 players) Defense : a = 38.29, b = 12.04, SD 27.0 (219 players) Goalies : a = 50.95, b = -0.52, SD 29.3 (68 players)
Expected PAL, 2025-26:
| Cap hit | Forwards | Defense | Goalies |
|---|---|---|---|
| 0.9 M$ | 37 | 37 | 51 |
| 1.5 M$ | 44 | 43 | 51 |
| 3.0 M$ | 52 | 52 | 50 |
| 5.0 M$ | 58 | 58 | 50 |
| 8.0 M$ | 64 | 63 | 50 |
| 12.0 M$ | 69 | 68 | 50 |
A $12M star with a very high PAL can therefore have only an average Value Rating: the star is paid about what the play is worth. A young player on an entry-level deal who plays like an established regular gets a very high Value Rating.
- 9090–100Exceptional value
- 7575–89Very good contract
- 5555–74Good value
- 4545–54Fair value
- 2525–44Poor return
- 00–24Very poor return
7Example: Connor McDavid, 2025-26
The top forward by PAL Rating whose cap hit we know ($12.50M).
| Offense | 99 | |
| Creation | 90 | |
| Shooting | 94 | |
| Possession | 98 | |
| Defense | 25 | |
| Discipline | 100 | |
| Power play | 100 | |
| Penalty kill | 94 | |
| Offense side | 100 | |
| Defense side | 71 | |
| Profile | Two-way | |
| PAL Rating | 100 | |
expected PAL = 38.65 + 12.16 × ln(12.50) = 69.4 gap = 100 − 69.4 = 30.6 z = 30.6 ÷ 26.84 = 1.14 Value = 100 × Φ(1.14) = 87
8Limitations
- The NHL publishes no passing data: creation and possession rely on shots, xG and on-ice results.
- On-ice stats depend on teammates. Relative xG% and RAPM impact correct part of it, not all.
- Cap hit comes from our contracts table. A player with no known contract for the season (often a retired player, for past seasons) gets no Value Rating.
- Value Rating compares with cap hit, not salary paid, and ignores age and years left on the deal.
- Early in a season, scores stay close to 50: that is the intended effect of the average added to everyone.
