New Algorithm Game Predictions – 1/27/2006

It is a very quiet day on the hockey schedule today so I figured it would be a perfect time to unveil version 2 of my prediction and power ranking algorithms which I have spent the last day or two tweaking.

The new algorithms are much more robust and have allowed me to improve my success rates by a couple percent as well as allow me to make predictions on all games. That means no more pick-em games. Here are my (would be) success rates under the old and new systems.

Strong: 94 of 129 – 72.9%
Good: 144 of 222 – 64.9%
Some: 93 of 177 – 52.5%
163 games unpredicted

Strong: 87 of 109 – 79.8%
Good: 129 of 201 – 64.2%
Some: 208 of 372 – 55.9%

Overall I am fairly pleased with the improvements and I am especially pleased that I can now make predictions on all games and get reasonable success rates which are in fact better than the old ‘some’ confidence success rates.

Before I get on to the changes in the power ranking system, here are the predictions for tonights games using the new prediction algorithm.

Home Team Road Team Predicted Winner Confidence
Columbus Minnesota Columbus Some
Florida New Jersey Florida Good

I have completely revamped the power ranking system too and because the predictions are based on the same theory used in this power ranking system, I am confident that it is a good indicator how good a team is. Here are the new power rankings as of this morning using this new algorithm.

Rank Last Week Team AdjWinP SchedStr Power Rank
1 1 Ottawa 0.719 0.521 0.771
2 2 Calgary 0.590 0.532 0.640
3 4 Colorado 0.569 0.537 0.632
4 3 Carolina 0.670 0.478 0.627
5 5 Dallas 0.590 0.520 0.614
6 6 Vancouver 0.569 0.526 0.606
7 7 Detroit 0.667 0.476 0.597
8 9 Buffalo 0.633 0.481 0.580
9 12 Edmonton 0.520 0.533 0.569
10 8 Los Angeles 0.528 0.523 0.564
11 10 Toronto 0.500 0.528 0.556
12 11 San Jose 0.521 0.517 0.545
13 16 Minnesota 0.500 0.526 0.540
14 13 Nashville 0.588 0.479 0.533
15 14 Phoenix 0.490 0.527 0.528
16 15 Philadelphia 0.620 0.458 0.527
17 17 Montreal 0.469 0.522 0.514
18 18 Anaheim 0.480 0.516 0.494
19 19 Tampa Bay 0.530 0.472 0.490
20 20 Boston 0.460 0.510 0.478
21 21 NY Rangers 0.520 0.455 0.443
22 22 NY Islanders 0.418 0.500 0.437
23 23 Atlanta 0.480 0.467 0.435
24 24 New Jersey 0.451 0.465 0.406
25 25 Florida 0.392 0.479 0.373
26 28 Chicago 0.340 0.500 0.338
27 26 Columbus 0.340 0.495 0.336
28 27 Washington 0.316 0.484 0.310
29 29 St. Louis 0.276 0.487 0.264
30 30 Pittsburgh 0.255 0.483 0.251

AdjWinP is a teams winning percentage when shootouts are considered ties and there are no points awarded for overtime losses
SchedStr is an indication of a teams relative difficult of schedule
Power Rank is the teams expected winning percentage if team played all .500 teams
(Note: Last week rank is the rank as of Wed. morning)

The big changes I have made are mentioned in the notes immediately above. Because shootouts are kind of a gimmick and that shootouts aren’t necessarily reflective of how good a team is from top to bottom I have considered shootouts to be a tie game. Also, because overtime losses are reflective of a teams ability to win games (or lose games) I have not considered any points for overtime losses (this is the same as the old algorithm). But the most significant difference is how I account for strength of schedule. I have made significant changes in this regard and because of this significant, and somewhat surprising, results have popped up.

Generally western conference teams have improved their rankings (western conference teams had very good records against eastern conference teams in interconference games) as well as any teams playing in particularly difficult divisions. Teams playing in weak divisions saw their rankings drop. Some of the surprising results are:

Philadelphia being ranked 16th in the NHL and being only slightly above .500 if they had a perfectly average strength of schedule. Montreal is ranked 17th so I guess Montreal beating the Flyers the other day might not have been that much of an upset.

Nashville has also dropped dramatically, partly due to their weak schedule but partly because of the number of shootouts and overtime losses they have played in (same for Philly for that matter).

The NY Rangers are another team that has benefitted dramatically from an easy schedule and ovetime loss points and shootouts as they are ranked 21st in the NHL under my power ranking system. Division rivals Islanders and New Jersey also drop significantly in the rankings.

Calgary, Vancouver, Colorado, Edmonton and Minnesota make up the toughest division in the NHL and as a result all saw their rankings improve dramatically and all are ranked in the top 13 in the NHL.

Some of these results may be quite surprising but I do have confidence in them. I do because my prediction algorithm seems relatively good at predicting games. An example is Montreal defeating Philadelphis mentioned above. Other examples are Minnesota defeating Nashville last night. Just looking at the standings you wouldn’t think Montreal or Minnesota would have a chance but if you look at the power ranks above you’ll see they aren’t that far apart. Upsets will always happen (like Chicago defeating Calgary last night) but some upset aren’t as big of upsets as one might initially think.

You can find other statistics based power ranking systems here and here.

This article has 15 Comments

  1. I love these game predictions. I was curious how you came up with your algorithm. I’m very interested in doing this on a team and then on an individual basis (for rankings), and i’d love some insight on your methodology (if you’d be willing to share of course).

  2. One of these days I plan on writing up a more detailed description of the algorithms and how they were developed but I just haven’t gotten around to do it yet.

    Basically though I looked at all the games of the past few years and tried to identify what teams won and when. I looked at goals for, goals against, home and road records, records when playing on back to back nights or 3 games in 4 nights, etc. and from that I developed the algorithms. There is actually a surprising amount of consistancy from year to year that makes doing this easier. For example, in 2002-03 the home team had a .550 winning percentage. In 2003-04 the home team had a .548 winning percentage. So far this year it is .567. That is pretty remarkable consistancy and so it makes complete sense to utilize this information. Most of the other prediction and power ranking formulas don’t make use of this historical information.

    I really want to develop a player ranking system but I haven’t yet found a usable source of all the statistics that I would want to use. And I also haven’t found the time but maybe this summer I’ll have more time on my hands to dig into this project.

  3. Thanks David. that information helps. that consistency is amazing. I hope to dig into this information a lot in the summer as well. i work at one of the hockey franchises, and i’d love to see if there were trends in players and/or teams where you can compensate mid season for any issues the team has (basically, the team would be the first place to look as compared to other teams, and then peel back the onion a bit more and look at the player contribution).

    where do you get your stats for all the teams? is there a place where we can just get a data dump in excel?

  4. I manually enter all the game results into an excel sheet myself from looking at online boxscores. I would love to get access to all the data in the box scores but I haven’t found a source that is easy to extract that information from. You can get the data in flat file format from companies like Stats Inc. but they charge a ton more money than I can afford. One of these days I might try to write a program to parse the box scores on but it is a matter of finding the time to do that. If you just want basic players stats you can get them at

    When you start digging into that work drop me an e-mail and maybe we can do some brain storming. I’d be interested in seeing what we could find.

  5. One thing I’d like to point out is that shootouts may be a gimmic, but they can be indicative of a team’s ability to pull out the win. Dallas is 7-0 in shootouts so far this season; Jokinen and Turco has been ridiculously good. You can’t ignore this in your rankings. Besides, having teams like Phoenix and Toronto above Philly just doesn’t make sense. Another one is Vancouver who is ranked above Detroit (the team they just lost against) and who has been losing to the Blues and the Blue Jackets. Colorado also lost to Detroit twice this season, you’re clearly not giving the Wings enough credit here…

  6. One thing I’d like to point out is that shootouts may be a gimmic, but they can be indicative of a team’s ability to pull out the win. Dallas is 7-0 in shootouts so far this season; Jokinen and Turco has been ridiculously good. You can’t ignore this in your rankings. Besides, having teams like Phoenix and Toronto above Philly just doesn’t make sense. Another one is Vancouver who is ranked above Detroit (the team they just lost against) and who has been losing to the Blues and the Blue Jackets. Colorado also lost to Detroit twice this season, you’re clearly not giving the Wings enough credit here…

  7. will do. thanks for your help! i know there are ways to grab info off websites (if they are in the right table format). in excel, go to data, import external data, and then new web query. then internet explorer will pop up and you just go to a site, highlight some stats, go back and it will download to excel.

    i appreciate your help.

  8. John:

    Philadelphia has had the second easiest schedule in the NHL, Toronto has had the 4th hardest. Let’s look at the teams Philadelphia has beat this year:

    New Jersey
    NY Islanders
    NY Islanders
    NY Islanders
    New Jersey
    St. Louis
    NY Rangers

    There isn’t exactly an abundance of top teams in that list. You have 5 wins against Pittsburgh, three against the Islanders, 3 more against Boston, 2 against Florida, 2 more against Washington, Chicago, Columbus. That is a lot of wins against pretty bad teams. Now count the number of wins against good teams and you will see why Philadelphia is so low on the list.

    Detroit has also had a fairly easy schedule. Yes they beat Vancouver the other day but they lost their first 2 games against Vancouver earlier in the season. And yes, Vancouver is in a slump losing to a couple of bad teams (Detroit lost to St. Louis earlier in the season too) but my rankings are based on a season of performance, not the past week. Every team has ups and downs, suffers injuries, etc. but over time the good ones rise to the top.

  9. David, im working on something that may make it easier to look up stats on a daily basis then in the local paper (it’s based on the download to excel i mentioned earlier). i’m going to test it out tomorrow to see if it updates for the previous day’s games, and i’ll let you know. in the meantime, can you get all the stats you need off a summary page like this from

  10. Hi David:
    I came across your webpage while looking for statisitcal modelling of NHL scores. Presently, I am working on fairly complex model for the number of goals (power play and non-power goals) and the number of power play opprtunities using data from the current season. I hope to use the model to predict outcomes (the number of goals) in future games. I am accounting for home ice advantage, offensive, defensive abilities of the teams, power play scoring and penality killing abilities etc. My model can also do statistical ranking of these abilities for the teams. I should be able to produce some predictions for the games over the next few days and will get back to you.
    I have got for the current season up to Jan 14 and will update the data in a few days.
    Paramjit Gill

  11. Parmajit:

    The only thing I have to say is, Good Luck. From what I have seen it is next to impossible to model game scores with any reasonable level of success. I just can’t envision a model that could successfully predict any of the 8-0, 8-2, 7-0 Ottawa blowouts of Toronto. That just can’t be done and it isn’t even a rare occurence as 3 of the 6 games so far between Ottawa and Toronto have been blowouts while the other three games have been 1 goal games (2 ending in shootouts). It’s a very difficult challenge.

    In any event, so far so good with the new algorithm. Columbus and Florida both won their games as predicted.

  12. David:
    Thanks for the reply. I agree with you that exact predictions are impossible because of lots of variation in the results even if same teams play under identical conditions. The purpose of my study is much broader.

    My model will be ranking teams by abilities for penality killing, power goals etc. In the final analysis, one can test which factors are important in deciding the over-all ranking of a team in the league.


Comments are closed.