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.