Glossary · Advanced stat

Regularized Adjusted Plus-Minus (RAPM) in Hockey

Regularized adjusted plus-minus (RAPM) is a regression that estimates each player's impact on shot attempts, expected goals and goals while controlling for teammates, opponents, zone starts and the score. RAPM in hockey is reported per 60 minutes against a league-average baseline of zero, and it's a building block of the public WAR models.

Plus-minus hands everyone on the ice the same credit for a goal. RAPM runs every shift of a season through one regression and splits the credit by who was out there, which is why this site uses it for the isolated-impact chart you'll find on every player page.

Full nameRAPMregularized adjusted plus-minus
UnitPer 60change in the team's rate, per 60 minutes
Average0.00every rating is measured from league average
Middle 80%±0.2net xG impact per 60, 2025-26, 20+ GP
League leader+0.53Moritz Seider, net xG per 60, 2025-26
One row isA stinta stretch of play with no line change
First in hockey2010Brian Macdonald's adjusted plus-minus
This site usesEH RAPMEvolving-Hockey, even strength, one season

Where RAPM comes from

Adjusted plus-minus started in basketball. Dan Rosenbaum laid it out at 82games.com in April 2004, building on the WINVAL ratings Jeff Sagarin and Wayne Winston had designed. Regress the scoring margin of every stretch of play on who was on the floor, and each player's coefficient is his impact with his teammates and opponents held constant.

The first versions were noisy, because players who share most of their minutes are hard to pull apart. Joseph Sill's fix, presented at the MIT Sloan Sports Analytics Conference in March 2010, was regularization (ridge regression, in statistics terms), which he said nearly doubled the method's accuracy on games it hadn't seen.

Brian Macdonald brought it to hockey the same year. His first version, posted in June 2010 and published in the Journal of Quantitative Analysis in Sports in 2011, used weighted least squares on even-strength goals, and his 2012 follow-up switched to ridge regression, ran it on goals, shots, Fenwick and Corsi, and produced estimates he described as independent of teammates, opponents and the zone where a shift began. Robert Gramacy, Matthew Taddy and Shane Jensen published a regularized logistic version the next year.

Evolving-Hockey revived it for the public at Hockey-Graphs on January 14, 2019, and its version sits under the even-strength components of its WAR model. That's the RAPM this site plots, taken from Evolving-Hockey's single-season, even-strength export for every skater with 20 games.

How RAPM is calculated

The regression treats every stint, a stretch of play with no substitutions, as one observation, weighted by how long it lasted. The target is the team's rate of shot attempts, expected goals or goals per 60 minutes during that stint, with a separate regression for each. Evolving-Hockey's 2017-18 demonstration ran 293,009 shifts averaging 12.94 seconds apiece, entered as 586,018 rows (one for each team's offense). These are the predictors:

  • Each skater on the ice for the offense
  • Each skater on the ice for the defense
  • The score state
  • The strength state (five-on-five, four-on-four and so on)
  • Whether the stint included a faceoff in either team's offensive zone
  • Whether either team was on the second night of a back-to-back
  • Home ice
Regressionrate per 60 = Σ offense ratings + Σ defense ratings + context
Ridge penaltyminimize squared error + λ × Σ rating²
Net impactnet = offense rating − defense rating
Over a seasongoals of impact = rating × minutes ÷ 60

Here's a worked example with invented round numbers. A defenseman's team generates 2.9 expected goals per 60 with him on the ice, against a league rate of 2.5. Raw on-ice numbers give him all of that plus-0.4. His usual partner and the top line he plays behind were out there for most of those minutes, though, and the regression has seen how they do without him. Say it hands them plus-0.3 of the credit. He's left with plus-0.1, and the ridge penalty trims that a little further toward zero.

Ridge regularization pulls every rating toward zero, which is league average, and the strength of the pull is chosen by cross-validation. A player with very little ice time gets pulled almost all the way (Evolving-Hockey's write-up puts the line at roughly 100 to 150 even-strength minutes), so you'll see plenty of fringe players sitting a hair from zero. Each season is run on its own with players split by team. The multi-season versions combine single seasons weighted by ice time.

xGF/60
Offense. How much a player raises his team's expected goals per 60.
xGA/60
Defense. How much he raises or lowers expected goals against per 60, so negative is good.
xG±/60
Net impact, offense minus defense.
CF/60, GF/60
The same regression run on shot attempts or on goals.
APM
Adjusted plus-minus without the ridge penalty, the noisier original.

What RAPM tells you

RAPM measures isolated impact against an average player. Zero is league average and the unit is goals (or expected goals, or attempts) per 60 minutes. If you see a net rating of plus-0.20, it means a team's expected-goal margin ran a fifth of a goal per 60 better with that player on the ice than his teammates, opponents and usage can explain.

Detroit had the best number in the league last season. It wasn't a forward. In Evolving-Hockey's 2025-26 even-strength file, net expected-goal impact among skaters with 20 or more games ran from minus-0.58 to plus-0.53 per 60. The middle 80% sat between minus-0.19 and plus-0.21. Moritz Seider was the plus-0.53, ahead of Adam Fox and Jordan Spence, with plus-0.24 on offense and 0.30 fewer expected goals against per 60 on defense. Over his 1,640 even-strength minutes that's about 14.6 expected goals of impact.

The rest of the roster spread out behind him. Alex DeBrincat ranked 50th at plus-0.26. Dylan Larkin was 542nd at minus-0.08, a little below average at both ends, and Ben Chiarot was 774th of 795 at minus-0.30, most of it on defense.

Why trust a number that's been deliberately pulled toward zero? Because the unpulled version predicts worse. Sill's out-of-sample tests are the case for the penalty, and Evolving-Hockey sizes its own penalty the same way, on data the model hasn't seen.

How analysts use RAPM

The isolated-impact chart

Every player page on this site plots offense against defense RAPM for every NHL skater with 20 games, Red Wings highlighted, up and right good at both ends. It's the quickest way you can check whether a player's on-ice numbers are his own or borrowed from the people around him. Only four skaters cleared plus-0.20 at both ends last season, and Seider was one of them.

The engine under WAR

Evolving-Hockey runs long-term RAPM for each component, then trains a statistical plus-minus model to predict it and uses that model's output for each season of its WAR. It goes the long way because single-season RAPM still struggles with linemates who always play together. Patrick Bacon's WAR at HockeyStats uses a weighted ridge regression for the same job, so both of the main public value models rest on it.

Seeing past the box score

Marco Kasper scored 0.93 five-on-five points per 60 last season, 354th of 385 forwards with 500 minutes. RAPM rated him plus-0.17 net, 115th in the league, and most of it came on offense (plus-0.12 expected goals for per 60). His line's chances went up with him on the ice even when the points didn't come, which is the case for patience.

What RAPM can't tell you

Linemates are hard to separate

What happens when two players share almost every shift? The regression has little to tell them apart with, and Evolving-Hockey says multicollinearity is still an issue within a single season. That's why its WAR uses long-term RAPM.

Shrinkage hides extremes

Ridge pulls every rating toward zero, so a strong player on limited minutes looks closer to average than he is, and anyone under roughly 100 to 150 even-strength minutes is pulled almost all the way.

The controls are coarse

Zone starts enter only as whether a stint included a faceoff in a given zone, and score as a handful of states. Anything that isn't on the list, from shift length to who's in goal for the expected-goal versions, ends up folded into somebody's rating, and you can't tell whose.

It assumes impacts add up

Because the model is linear, a player's rating stays the same whoever he's with, so chemistry between two linemates who are better together than apart has nowhere to go but into their individual numbers.

Questions

Is RAPM the same as relative Corsi?

Not quite. Relative Corsi is the difference between a team's numbers with a player on the ice and with him off it, so it still carries whoever he played with and against. RAPM puts all ten skaters into one regression together, so each rating is net of the other nine.

Sources

  1. Reviving Regularized Adjusted Plus-Minus for Hockey, Hockey-Graphs (Evolving-Hockey), January 14, 2019. weighted ridge regression, stints, predictor list, cross-validation, shrinkage below 100-150 minutes, 2017-18 demonstration
  2. Regularized Adjusted Plus-Minus glossary, Evolving-Hockey. targets GF/60, xGF/60, CF/60; zone-start definition; per-season by team
  3. Wins Above Replacement, Parts 2 and 3, Hockey-Graphs (Evolving-Hockey), January 17-18, 2019. long-term RAPM as the SPM target; single-season multicollinearity
  4. Measuring How NBA Players Help Their Teams Win, Dan Rosenbaum, 82games.com, April 30, 2004. adjusted plus-minus and WINVAL
  5. Improved NBA Adjusted +/- Using Regularization and Out-of-Sample Testing, Joseph Sill, MIT Sloan Sports Analytics Conference, March 6, 2010. ridge regression nearly doubles accuracy
  6. A Regression-Based Adjusted Plus-Minus Statistic for NHL Players, Brian Macdonald, Journal of Quantitative Analysis in Sports, 2011 (arXiv June 2010). first hockey APM, weighted least squares
  7. Adjusted Plus-Minus for NHL Players using Ridge Regression with Goals, Shots, Fenwick, and Corsi, Brian Macdonald, Journal of Quantitative Analysis in Sports, October 2012. ridge version independent of teammates, opponents and zone starts
  8. Estimating Player Contribution in Hockey with Regularized Logistic Regression, Gramacy, Taddy and Jensen, Journal of Quantitative Analysis in Sports, 2013. regularized logistic version
  9. WAR methodology, HockeyStats (Patrick Bacon). weighted ridge regression for play-driving
  10. Player glossary, Natural Stat Trick. Rel defined as on-ice minus off-ice
  11. 2025-26 even-strength RAPM export, Evolving-Hockey data. every league and Red Wings RAPM figure on this page

League figures are Wes & Woodward's calculations from Evolving-Hockey's even-strength RAPM export (all seasons through 2025-26, downloaded September 8, 2026, in research/rasmussen/raw/eh): the pool is the 795 skater-team rows for 2025-26 whose player played 20+ games, ranked on net expected-goal impact (xGF/60 minus xGA/60); impact in goals is the rating × even-strength minutes ÷ 60. Kasper's points per 60 come from MoneyPuck's 2025-26 skater file (downloaded October 9, 2026), five-on-five, among 385 forwards with 500+ minutes.

Last reviewed October 9, 2026.