Skater EV RAPM Tables

Overview

The following three tables contain NHL even strength skater reguarlized adjusted plus-minus (RAPM) data in three, five, and one-year stints. The impacts are in terms of expected goals (xG) per 60 minutes of play using my own model. RAPM leverages a technique called ridge regression to estimate player impacts on offense and defense in the roles they are given. All the models have to go off of is what happened on the ice. They cannot extrapolate what would happen if a player had a different role, different deployment patterns, or played with different teammates. The quality of the teammates and opposition are accounted for of course, but if a player happens to line up with teammates who’s skills do not match up well with his own, tough luck. For more reading about RAPM, it was first popularized in NBA analysis and I would recommend reading this two part series from Justin Jacobs, who has consulted for NBA teams. If you prefer a more hockey-centric overview, this overview from the EvolvingWild twins is a great read.

These estimates are rate stats (per 60 minutes of even strength ice time). Two players who are close in estimated impact might look like they provided the same on-ice value on the surface, but if one player played significantly more minutes than another, that player provided more to his team. That does not make the player “better” per se, the impacts are meant to measure quality by themselves. But grizzled internet sports analysts know value is a function of both quality and opportunity.

If you read the overviews I linked, you will realize tha RAPM values are still very noisy over one year samples. It is best to use larger samples when using RAPM to evaluate players. Five years is the best bet, but that is also an unsatisfyingly long time horizon. Three year samples split the proverbial baby in this regard, having a much more robust sample of play-by-play data to work from than one-year samples but providing results quicker than the five-year RAPM.

The main reason for this type of model struggling to stabilize when fed a season’s worth of play-by-play data is that one season does not seem to be quite enough to adaquately dampen the effects of collinearity. Collinearity takes the form of pairs or groups of teammates who do not see a significant amount of ice time apart and the model correspondingly has trouble isolating those players’ impacts. Three (and certainly five) seasons give each player in the sample many chances to play with a variety of different teammates, due to line/pair changes throughout a multi-year period and roster turnover during the offseason and at the trade deadline.

While we are on the topic of model limitations, there are a couple of items that I think are worth mentioning that I am sure one might question when looking at the results stored in the tables below. The first is that this model is trained to isolate impact in terms of expected goals. The usual caveats for expected goals apply here; obviously the publicly available data does not consider things like passing and goaltender movement. But let us not make perfect the enemy of good, we still have public access to important features such as shot distance and angles, the changes in each between shots, the time between shots, and shift start locations. I think directionally public expected goal models do a good job in bettering our understanding of what happens on the ice. As the British statistician George Box once said, “All models are wrong, some are useful.”

Along the same lines, we know players have some ability to drive goals above expected, whether via their own shot-making talent or their ability to complete high-danger passes (across the royal road, into the slot, to spring rush chances, etc). That talent is not totally captured in here. We would expect good passers to assist in generating higher xG shot attempts (which is not nothing) but players who can consistently outpace their individual expected goals with supreme shooting talent are not credited here (th most notable examples here would probably be a Leon Draisaitl or a Steven Stamkos). Shooting is definitely a skill but the extent to which it is repeatable over a large sample of shots is up for debate. Extreme cases,however, lead to some middling results for players we (the public) generally think of as elite talents. Those players are punished here and it should be documented.

One final note is that this does not include individual player contributions explicitly. There is no information about a player’s on-ice percentages here or their individual contributions (in terms of scoring, shot attempt, scoring chance, or microstat rates). The only information fed to the model is who is on the ice and contextual factors about the game and shift at hand (home/away, shift start location, is the game a back-to-back, score, etc.) Supplying these individual stats would give more insight into player roles and would most likely help the model distinguish who is driving the bus, as it were. It is reasonable to conclude that the model would be more successful in isolating and gauging player impact. I agree with this sentiment and admit it is the main limitation of the pure RAPM approach. In the future I would like to address this concern and see which players improve/worsen with the addition of more player-specific data. That is a project for another day.

I will include tables for one-year, three-year, and five-year values and order them by my subjective view of their usefulness. The data included runs up through the games the last game of the 2023-24 regular season.

Three-Year Table

Years
Player
ORAPM
DRAPM
RAPM
2022-2024
Patrice Bergeron
0.477
-0.0666
0.5435
2022-2024
Matthew Tkachuk
0.4821
-0.033
0.5151
2022-2024
Connor McDavid
0.4124
-0.0853
0.4977
2022-2024
Auston Matthews
0.3627
-0.0984
0.4611
2021-2023
Connor McDavid
0.396
-0.056
0.4519
2021-2023
Matthew Tkachuk
0.3431
-0.097
0.4401
2022-2024
William Carrier
0.3018
-0.1316
0.4334
2021-2023
Patrice Bergeron
0.3738
-0.0519
0.4257
2021-2023
Auston Matthews
0.3228
-0.053
0.3758
2022-2024
Adam Fox
0.3353
-0.0375
0.3727
2022-2024
Warren Foegele
0.3065
-0.0643
0.3708
2022-2024
Jaccob Slavin
0.1579
-0.1988
0.3567
2020-2022
Patrice Bergeron
0.281
-0.0706
0.3516
2021-2023
Seth Jarvis
0.2141
-0.1225
0.3366
2022-2024
Zach Hyman
0.3337
-0.0017
0.3354
2022-2024
Roope Hintz
0.3349
0.0012
0.3337
2022-2024
Jake DeBrusk
0.2093
-0.1239
0.3332
2020-2022
Auston Matthews
0.248
-0.0839
0.3319
2020-2022
Valeri Nichushkin
0.1531
-0.1786
0.3317
2022-2024
Jesper Bratt
0.3121
-0.0161
0.3282
2021-2023
Andrew Mangiapane
0.2057
-0.1218
0.3276
2022-2024
Mark Stone
0.209
-0.1158
0.3247
2022-2024
Brady Tkachuk
0.4043
0.0873
0.317
2019-2021
Tomas Tatar
0.2453
-0.0659
0.3112
2019-2021
Brendan Gallagher
0.2493
-0.057
0.3063
1–25 of 4556 rows
...

Five-Year Table

Years
Player
ORAPM
DRAPM
RAPM
2020-2024
Patrice Bergeron
0.3315
-0.0622
0.3937
2020-2024
Auston Matthews
0.3076
-0.0739
0.3815
2020-2024
Connor McDavid
0.3336
-0.0304
0.364
2020-2024
Matthew Tkachuk
0.3319
-0.0248
0.3567
2019-2023
Patrice Bergeron
0.2902
-0.0562
0.3464
2019-2023
Seth Jarvis
0.2141
-0.1225
0.3366
2019-2023
Matthew Tkachuk
0.2492
-0.0715
0.3207
2020-2024
William Carrier
0.2395
-0.0772
0.3167
2019-2023
Mark Stone
0.1936
-0.1201
0.3136
2020-2024
Warren Foegele
0.2834
-0.0257
0.3091
2020-2024
Mark Stone
0.1971
-0.1069
0.304
2019-2023
Jordan Weal
0.1904
-0.1093
0.2996
2018-2022
Valeri Nichushkin
0.0998
-0.1978
0.2977
2020-2024
Adam Fox
0.2339
-0.0459
0.2798
2020-2024
Wyatt Johnston
0.0699
-0.208
0.2778
2020-2024
Zach Hyman
0.2822
0.0092
0.273
2018-2022
Carter Verhaeghe
0.2635
-0.0091
0.2727
2019-2023
Timo Meier
0.2118
-0.0607
0.2725
2020-2024
Charlie McAvoy
0.1776
-0.0946
0.2721
2019-2023
Andrew Mangiapane
0.1528
-0.1189
0.2717
2020-2024
Paul Stastny
0.1976
-0.0695
0.2672
2020-2024
Jake DeBrusk
0.1692
-0.0968
0.266
2018-2022
Patrice Bergeron
0.2214
-0.0433
0.2647
2019-2023
Paul Stastny
0.2065
-0.0577
0.2643
2020-2024
Anthony Mantha
0.0275
-0.2316
0.2591
1–25 of 3377 rows
...

One-Year Table

Season
Player
ORAPM
DRAPM
RAPM
2024
William Carrier
0.6399
-0.1075
0.7474
2024
Auston Matthews
0.4796
-0.1776
0.6572
2023
Matthew Tkachuk
0.5848
-0.0589
0.6437
2024
Jordan Staal
0.4374
-0.1889
0.6263
2024
Nathan MacKinnon
0.6471
0.025
0.6221
2024
Zach Hyman
0.5616
-0.0577
0.6193
2022
Patrice Bergeron
0.4712
-0.0959
0.5671
2024
Brady Tkachuk
0.6547
0.089
0.5657
2024
Jordan Eberle
0.4506
-0.1109
0.5614
2023
Mark Stone
0.224
-0.3301
0.5541
2022
Connor McDavid
0.5206
-0.0282
0.5488
2024
Jaccob Slavin
0.3934
-0.1535
0.5469
2024
Miro Heiskanen
0.3615
-0.1686
0.5301
2024
Connor McDavid
0.364
-0.1634
0.5275
2024
Roope Hintz
0.5564
0.0318
0.5245
2024
Ryan McDonagh
0.3692
-0.1524
0.5216
2023
Patrice Bergeron
0.4827
-0.0373
0.5199
2024
Tom Wilson
0.3041
-0.2132
0.5173
2024
Noah Cates
0.2862
-0.2294
0.5156
2023
Damon Severson
0.412
-0.1031
0.5151
2019
Jordan Weal
0.232
-0.2765
0.5085
2024
Warren Foegele
0.4556
-0.0471
0.5027
2024
Artemi Panarin
0.3747
-0.1209
0.4956
2024
Conor Garland
0.2723
-0.2177
0.49
2023
Juuso Valimaki
0.1694
-0.3172
0.4865
1–25 of 6505 rows
...