Every day during the NHL season I wake up and run my “Expected Goals per Minute,” (xGPM) prediction model. 🏒
I wanted to give you guys a glimpse into what that process looks like so that you know I’m not just throwing darts everyday. 👇
🧵 1/12
I start by updating the line combinations for each team playing that day by running queries in Microsoft Excel. As lineups often change daily or weekly, resulting in varying xGPM, it’s critical to get the correct daily line combinations or everything else will be askew. 💻
2/12
I run the queries in Excel to webscrape the data from @DailyFaceoff - a terrible website to navigate but one with the best and most up-to-date info. This gives me the daily line combinations for each team playing that day - which is usually updated after morning skate. ♻️
3/12
The players in each lineup are then automatically looked up in a separate Excel spreadsheet with data pulled from @naturalstat daily. The model aggregates these stats from the past two seasons and comes up with a xGPM number for each player. 📲
4/12
For example Kucherov’s xGPM is .014 and MacKinnon’s is .022. These individual numbers are weighted for time on the ice (TOI) and then added together to create the full team xGP. 📈
5/12
Next, I do the same thing with goalies, which is trickier because the starter announcements come out slower - or not until right before game time, sometimes speculation is needed. I use the same method and website to aggregate an “expected goals allowed” for each goalie. 🥅
6/12
Once the data is all in place, I compare Team A’s xGPM to Team B’s goalie’s xGA - and do the same thing with Team B’s xGPM and Team A’s goalie. This gives me expected goals (xG) for each team, then I can find the goal differential and the expected goal total. ✅
7/12
From there, it’s good ol’ arithmetic to convert expected goals into win probability, and then convert win probability into American odds. All that’s left to do is to find the discrepancies in your projections and the current market, combine that with some common sense... ➗
8/12
...and take positions your that your model deems a higher probability (or lower) than what the current odds suggest. If your number are correct, you should be able to find spots throughout the season that oddsmakers overlook or get wrong - and profit off of them. 🎯
9/12
This is a brief synopsis but hopefully it gives you some insight into my process. Many other factors go into hockey handicapping, including rest time, home ice advantage and lots other things, but this should give you an idea of what my model looks like and help... 👌
10/12
...if you are planning to start building your own. DMs are open for any questions you come across or tips you might have to improve my own model! I love chatting about this stuff. 📞
11/12
This tweet thread is an homage to the OG @berrywolff29 aka Berryhorse - the Robinhood of handicappers - who used to share his MLB models regularly and helped me get started many years ago. Cheers and good luck the rest of the season! 🍻
Some sportsbooks offer “Big 2” bets - which is the Packers OR Bucs to win the NFC, and Chiefs OR Titans to win the AFC at around -150 each.
Here is why this number is short and I think the “YES” on both is a good bet: 👇🏻
🧵
Starting in the NFC, according to my numbers, GB is 2/1 or has a 50% chance to reach the Super Bowl and Tampa Bay has a 24% chance. If you add the two, since you need either one to win to hit the bet, you get a 74% Packers or Bucs win the NFC.
74% translates to -285 in American odds, which is much higher than the -150 line and the implied 40% probability. “Yes”, on the #Bucs or #Packers to win the conference is a solid bet at the current price.