r/HockeyStats

Working on a model. Early results are promising

Hello everyone,

Over the past while I’ve been working on a model that uses raw NHL API data to compute all my own stats, then feeds the data into an xG model, and finally uses it to generate player ratings/team ratings/fantasy projections/matchup probabilities.

I am continually tinkering with the xG model. As it currently stands I’ve achieved a 0.78 AUC… looking at the other publically available information it seems like I’m getting pretty close to the ceiling of what is possible with our player/puck tracking but that won’t stop me from looking for further improvements.

The player ratings us RAPM and ultimately provide a GAR/xGAR output. Everything else builds off this, including the team strength ratings.

The game prediction engine uses team attack/defence ratings to build a Poisson grid, which is then used to determine win probabilities. It also considers several other factors (rest, travel, strength aware OT resolution) to improve its accuracy. To test the accuracy I’ve benchmarked the outputs against the market and backtests show a positive ROI, so I’m pretty happy with its performance.

Fantasy projections are also a big part of the tool. I use per-60 rates with aging curves and projected games played/ice time to forecast players counting stats. It also includes a VORP calculator to translate the projections into a draft ranking.

I’ve posted a more detailed introduction to the model here - https://open.substack.com/pub/danbrousseau/p/the-ocelot-project

Now that I have the tool in a useable state my plan is to start sharing insights and outputs from the model with the goal of helping out my fellow hockey fans and (hopefully) getting some feedback that will help me further improve the model.

PS - I realize that this is a brand new account. I just created it to avoid doxing my main account.

u/ocelotanalytics — 6 days ago
▲ 397 r/HockeyStats+5 crossposts

Which NHL teams actually draft well? I ran a 20+ year model to find out

I recently spent some time analyzing NHL drafts from 2000 to 2023 to try to answer a simple question:

​

Which organizations actually maximize their draft picks over the long run?

​

Instead of just looking at games played or point totals, I built a model that evaluates each pick in context:

​

Each player is compared to the 20 players drafted before and after them

​

This creates a “local talent window” around every selection

​

The goal is to estimate what was actually available at the time of the pick

​

From there, every draft pick receives a score:

​

50 = best player available

Above 50 = steal

Below 50 = bust

​

Some interesting patterns emerge when you aggregate 20+ years of data across all 32 teams.

​

In particular, draft performance appears to vary much more consistently across organizations than I expected.

​

If people are interested, I can share the full rankings and methodology breakdown.

u/FireFigs — 14 days ago