Tonight.hockey’s NHL playoff odds come from simulating the rest of the regular season 10,000 times, once a day, from every team’s record at the start of the day. Each team’s strength blends last season’s points percentage, regressed halfway to average, with this season’s results. Games are decided with log5 plus a 3.5% home edge, and the NHL’s format and tiebreakers pick the 16 playoff teams.
This page documents the model exactly as it runs, with the real constants from our code. If a number on a team page or the playoff picture looks surprising, this is where it comes from. We would rather you understand the model’s limits than trust it blindly.
Latest run
- Hockey date: Thursday, November 5, 2026 (records include every game completed before this day)
- Simulations: 10,000
- Computed:
- Season length: 84 games per team, read from the schedule
What goes into the model?
Only official NHL data, and nothing we type in by hand during the season:
- Every regular-season game of the season, from the 32 club schedules in the NHL’s public API. Completed games carry the final score and whether the game ended in regulation, overtime or a shootout.
- Records rebuilt from those games, as of the start of the day: wins, regulation losses, overtime and shootout losses, points, regulation wins, regulation plus overtime wins, goals for and against, and head-to-head points between every pair of teams. Rebuilding from games keeps the records, the tiebreakers and the remaining schedule consistent with each other. Postponed games stay on the schedule; cancelled games drop out.
- A prior for each team: its final 2025-26 points percentage, from the NHL standings on April 17, 2026 (82 games each). The highest was Colorado Avalanche at .738, the lowest Vancouver Canucks at .354.
The model does not use injuries, goaltender news, trades, expected goals, betting lines or anyone’s opinion.
How is team strength estimated?
Strength is expressed as the chance a team would beat a perfectly average opponent on neutral ice, a number centred on .500. It starts from the points percentage, but points percentage has a quirk: because games that go past regulation hand out three points, the league average is above .500. The model assumes 23% of games go past regulation, so the league-average points percentage is
The prior. Last season’s points percentage is shifted onto that .500 scale and regressed halfway to average, because year-to-year carryover of team quality in the NHL is only about 50%:
So the best team of 2025-26, Colorado Avalanche (.738), starts this season at a strength of .590, and the worst, Vancouver Canucks (.354), at .398.
This season. Current results are put on the same scale and blended in as games are played, with a weight of games played divided by games played plus 36. 36 is the usual regression constant for NHL points percentage, so this season’s record counts for half the estimate after 36 games:
weight = GP / (GP + 36)
strength = weight × current + (1 − weight) × prior
How does the model handle uncertainty about how good teams are?
Nobody knows a team’s true strength, least of all in October. A model that plugs in a single estimate and plays out the season is badly overconfident: it treats a hot start as fact. So at the start of each simulated season, every team’s strength is redrawn from a normal distribution around its estimate, and that drawn strength is used for all of its games in that simulation. The spread shrinks as games are played:
Drawn strengths are kept between .150 and .850.
| Games played | Weight on this season | Strength spread (SD) |
|---|---|---|
| 0 | 0% | .040 |
| 10 | 22% | .035 |
| 20 | 36% | .032 |
| 36 | 50% | .028 |
| 60 | 63% | .024 |
| 84 | 70% | .022 |
How is a single game simulated?
Who wins. The home team’s chance of winning, in regulation, overtime or a shootout, comes from the log5 formula on the two drawn strengths, plus a home edge of 3.5 percentage points, kept between 8% and 92%:
P(home wins) = log5 + 0.035
Two average teams give the home side 53.5%. The strongest prior hosting the weakest gives 72.0%.
How it ends. 23% of games go past regulation, and 35% of those are decided in a shootout, close to the league’s recent split. Past regulation the better team’s edge shrinks to 40% of its size, because 3-on-3 and shootouts are closer to coin flips. The regulation win probability is then solved so the overall win probability is unchanged:
P(win in regulation) = (P(home wins) − 0.23 × P(win past regulation)) / (1 − 0.23)
For two average teams that is 54.1% in regulation and 51.4% past regulation for the home side. The loser of an overtime or shootout game gets a point, as in the NHL.
Margin. Goal differential is a tiebreaker, so regulation wins also get a margin: one goal 42% of the time, two goals 30%, three goals 28%. Overtime and shootout games are one-goal games.
How is the season simulated and ranked?
Each of the 10,000 simulations plays every remaining game on the schedule, adds the results to the start-of-day records, and ranks both conferences with the NHL format: the top three in each division plus two wild cards per conference make it. Ties are broken in this order:
- Points
- Regulation wins
- Regulation plus overtime wins
- Total wins
- Points in head-to-head games between the tied teams
- Goal differential
- A random draw
This follows the NHL’s order with two simplifications. The NHL leaves out the extra home game when tied teams met an odd number of times, and it has further steps before anything like a draw; the model counts every head-to-head game and goes to a draw after goal differential. Ties that survive five tiebreakers are rare enough that this almost never changes an answer. See how NHL standings work.
Once a day. The model runs once per hockey day (the day rolls over at 5 AM Eastern) from records at the start of that day, so a team’s odds hold still while that night’s games are played and change the next morning. The random seed is the date, so any server that reruns the day gets identical numbers.
What does the model publish?
- Playoff odds: the share of simulations in which a team finished in a playoff spot. Shown as whole percentages, with “<1%” and “>99%” instead of a misleading 0% or 100% while either outcome is still possible.
- Division odds: the share of simulations in which a team won its division.
- Projected points: the average final points total, with a likely range from the 10th to the 90th percentile.
- Change since yesterday: yesterday’s start-of-day state simulated again with today’s seed. Using the same random numbers for both runs means the change reflects the games that were played, not simulation noise.
How are game impacts and “who to root for” calculated?
For each of tonight’s games, the model measures how every team’s playoff odds change depending on the result. It uses paired outcomes: inside the same simulated season, that one game is replayed as a home regulation win and as an away regulation win, with every other game left exactly as it was. The difference between the two versions is the game’s impact.
Pairing matters because single-game effects are often under one percentage point. Comparing two separate sets of simulations would bury them in random noise; replaying one game inside identical seasons isolates them. “Who to root for” on each team page sorts tonight’s other games by that difference for your team.
What are the clinch number and points pace?
Clinch number is the number of points a team still needs to guarantee a playoff spot no matter what anyone else does, ignoring tiebreakers (so it is slightly conservative). With three division spots and two wild cards per conference, a team that finishes ahead of all but four of its conference rivals always qualifies: at most two of those four can be wild cards ahead of it. So the clinch number is one more than the fifth-highest maximum possible total among its conference rivals, minus its own points. While that is more than the points a team has left to play for, the page shows “not in reach yet”.
Points pace is a team’s current points per game times the 84-game season: where it finishes if it keeps playing exactly as it has. Unlike projected points, it does not regress toward average.
How precise are the numbers?
With 10,000 simulations, the sampling error on a 50% chance is about 0.5% (one standard error), so roughly 1.0% either way at 95% confidence. Near 0% or 100% it is much smaller. That is why odds are shown as whole percentages on most pages. Model error, the gap between our simplified picture of hockey and the real thing, is larger than sampling error.
What are the model’s limitations?
- Points only. Strength comes from points percentage, not goal differential, shot quality or expected goals, which predict future results somewhat better early in a season.
- No roster information. Injuries, goaltending changes, trades and call-ups are invisible until they show up in results.
- One home edge and one overtime rate for everyone. Real home-ice advantage and overtime frequency vary by team; travel, rest and back-to-back games are not modeled.
- Fixed constants. The regression amounts, the 36-game blend and the strength spread are standard values, not fitted to this season.
- Regular season only. The model does not simulate the playoffs, so we do not publish Stanley Cup odds.
- Not backtested here. We have not published a calibration study against past seasons. Treat the odds as informed estimates, not certainties.
Tonight.hockey is for fans, not bettors. Nothing on this site is betting advice.
Data and citation
The current odds for all 32 teams are free to use with a link to tonight.hockey. Please cite them as “Tonight.hockey playoff model, 10,000 simulations, as of [date]” and link to this page.
Frequently asked questions
- How are Tonight.hockey playoff odds calculated?
- Once a day the model simulates the rest of the NHL regular season 10,000 times from each team's record at the start of the day and the remaining schedule, ranks every simulated season with the NHL's playoff format and tiebreakers, and reports the share of simulations in which each team makes the playoffs.
- What data does the model use?
- Only official NHL data: completed regular-season games (scores and whether they ended in regulation, overtime or a shootout), the remaining schedule, and each club's final 2025-26 points percentage as a starting prior. It does not use injuries, goalies, betting markets or expected goals.
- How often are the odds updated?
- Once per hockey day. The day rolls over at 5 AM Eastern, and the run uses records as of the start of that day, so the numbers hold still while that night's games are played.
- How accurate are the odds?
- With 10,000 simulations, sampling error is at most about 1.0% either way for odds near 50%, and much smaller near 0% or 100%. Model error is larger than that: the model ignores injuries, trades and goaltending, so treat the odds as estimates.
Questions or a bug in our numbers? Write to hello@tonight.hockey.