How to Make an NHL Corsi Betting Model

I was looking into ways to make extra money on the side and came across an article on a website called The article suggested creating a corsi puck-tracking model to determine whether or not a player would score or assist on a given shot.

I have always been interested in fantasy sports and tried out a corsi puck-tracking model in college using I found it to be quite tedious and also discovered many of the values were inaccurate. This, however, did not discourage me from trying out the same thing again with real-life data as the basis for my model.

The nice thing about this route is that you are essentially combining two of your interests: fantasy hockey and making money online.

To get started, you will need:

  • A hockey stats website like
  • A hockey betting site like
  • A data scraping service like
  • A Google spreadsheet

There are a few more items you may need depending on how in-depth you want to get with this project. For instance, you will need to install a desktop app called Sporty which connects to your Google Sheets. In addition, you will need to have access to NHL public data sources like and Finally, you may want to consider installing a plug-in for your browser called Corsi for Google Sheets. This last step is optional, but it will make entering and tracking your data a bit easier. 

Step 1: Create a Google Sheet

I started by creating a Google Sheet and entered my chosen username and password. I clicked on the CREATE button and a new spreadsheet was created.

I then opened the spreadsheet to enter some initial data. I realized that to make this project worthwhile, I would need to enter a lot of data. To avoid becoming overwhelmed, I decided to break down my project in to small chunks. I then proceeded to enter the first half of my data.

I filled in the blanks in Column A with the date (mm/dd/yyyy), the player’s first name, last name, and position. In Column B, I entered the shots on goal that the player received and entered the results of those shots in to Column C. (To be specific, I used

For example, Henrik Sedin had 5 goals on 105 shots on goal in 2018-19. The results of those shots are listed in Column C with a goal and total points scored (5+0=5 points). Since I created this project for fantasy purposes, I did not include penalty minutes or blocked shots in my model.

After entering the first half of my data, I noticed that some rows had large numbers while others had very small numbers. This is why it is important to standardize your data before you begin entering it into your spreadsheet. For this reason, I decided to enter a few rows of test data, remove the scores, and then fill in the rest of the sheet with my original data. This way, I can track which entries are responsible for the increase in score in any given column.

Step 2: Set Up The Scoring System

I now turned my attention to the second step: entering the formulas to calculate the scores. Using the services above, I was able to set up a simple formula in my spreadsheet to calculate the shots on goal percentage with a bit of simplification. (Shots On Goal % = (Goals / (Goals + Shots)) x 100). For example, if a player scored 4 goals on 30 shots, his shots on goal percentage would be 13.3% (4/30 = 4/30 x 100).

To make this more convenient for me, I decided to list the players’ names in Column D and enter the formula as follows: =SHOQ %. Then, I clicked on the calculate button and a pop-up window appeared with the score at the top and a message at the bottom explaining that the score was unavailable due to an unknown error. I then decided to switch to manual calculation which can be found in the menu at the top of the spreadsheet. I proceeded to enter my desired players’ names in the match up box at the top of the spreadsheet, click on the calculate button, and all of the scores and percentages were presented in the spreadsheet. (I had to manually enter the values in order to make this work as intended).

Now, it’s important to determine what you will do with this score. One option is to enter it into a hockey pool in the same way you would with a fantasy hockey player. Another option is to use it in a different way to determine whether a particular player is over-performing or under-performing. For example, you could use this score to determine which teams a player is most effective for. You can also compare this number to other players’ numbers to see how they stack up.

Step 3: Find The Most Popular Players

The last step is to find the most popular players. To do this, I opened a brand new tab in my browser and entered the URL of my Google Sheet in to the address bar. I searched for “NHL” and “” and clicked on the first link which is the home page for I then proceeded to enter my chosen search terms in the search bar at the top of the page and selected the appropriate number of results to view on my screen. Once on the page, I clicked on the “View All Results” button at the top right of my screen to reveal a list of players sorted by popularity.

From this point, you can click on any given player’s name to be taken to that player’s profile on You can use this information to find out as much as you need to know about that player. For example, you could find out how many goals they scored in 2018-19, how many points they scored, their shooting percentage, their goals against average, and whether or not they are a good goalie. (You can also use the drop-down menus below the profile to find other stats about the player).

Step 4: Build A Branded Website

Now that you have the data you need to build a website, it’s time to shine! It’s important to build a branded website as part of this project because, in addition to making money, you will be able to build a database of players and stats which you can use for future projects. To get started, click on the Create a Free Website button at the top of the page, create a new page, and enter your website’s address in to the URL space.

Once your website is live, take a few minutes to write up some content about the NHL, the league, and the various stats and comparisons you discovered while working on this project. To learn more, click on the NHL links on the left side of the page to be taken to the NHL’s official website.


When you’re done and want to check your work, click on the “Finish Checking” button at the top right of your spreadsheet. A new tab will then open with the summary of your work from the first and second steps of this project. For the sake of space, I chose not to include the summary from step 3 as it is quite large. To access this summary, click on the name of the first sheet you created in step 1 to be taken to the Sheet 1 tab. Then, click on the name of the second sheet you created in step 2 to be taken to the Sheet 2 tab. From there, you can click on the “Finish Checking” button at the top right to bring you back to the summary tab. Finally, if you want to access the data for a player you looked up in the previous steps, click on the player’s name in the Col D box at the top of the sheet to be brought to that player’s profile. From there, you can select any of the stats you’ve recorded for that player from the drop-down menus below the profile.