Analytics in Hockey

Number crunching, algorithms, and the future of statistics in Hockey.

As an alternative metric to points-per-game, I've been working on calculating the amount of points a player puts up in each game they play relative to their teammates and adjusting that based off of the player's age. I'm not familiar with any similar metrics in the NHL, but I wouldn't be surprised if one exists.
I would like to share with you team rankings based on the ELO rating system. This is purely mathematical based on wins and losses. Each team has a score. That score increases or decreases based on wins and losses. The amount of change is based on the score of the opponent. Eg. If a strong team beats a weak team then they don't gain a lot of points because it is expected. If a weak team beats a strong team then they gain a lot of points and the strong team loses a bunch. It balances out....
When "corsi" became a buzz word in hockey, there was definitely a revolution in the types of players teams would employ. Gone were the lumbering defensive defensemen who couldn't move the puck - it was adapt or get out. Gone were many floating goal scorers who let their linemates do all the work. But it seems that we've hit a point where the league has "homogenized" in those aspects. In 2008, the best possession team in the league had a CF% of 58.84% and the worst had 42.85%. This was...
I have put together a spreadsheet which compares all teams league wide.
I find a problem with basically all studies here (including my own) in that they require a lot of work and time. There are usually many hours of boring research to have to be done, in order to learn and know about many factors leading up to the end results. There also seem to basically always be factors "biasing" things, including (of course) "randomness" or "circumstances".
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
monitoring_string = "358c248ada348a047a4b9bb27a146148"