DEV Community

Elio Liberatore
Elio Liberatore

Posted on

NHL playoff odds for 2026-27: 84 games, the wild card rule, and why I don't trust my own model in September

I build Monte Carlo simulators that turn standings and schedules into playoff probabilities. After baseball, American football and soccer, I assumed hockey would be a copy-paste job with new team names.

It wasn't. Four things about the NHL break a generic season simulator, and one of them changed this summer. Here they are, followed by the part I find most interesting: what the model says a few weeks before opening night, and why most of its disagreements with the market should be ignored.

1. Standings run on points, not wins

A win is two points. An overtime or shootout loss is still worth one. Roughly 23% of NHL games go past regulation, so ranking simulated teams by wins misprices every club that lives in one-goal games.

In the simulator each game has three outcomes — regulation win, overtime or shootout win, and the mirror images — and points are awarded the way the league awards them.

There is a trap on the strength side too. Points percentage averages about .557 across the league because of the loser point, while win/loss averages exactly .500 because every game has a winner. If you estimate team strength from points percentage, every team looks slightly better than average. I estimate it from wins over games played, and from goals for and against with a Pythagorean exponent of 2.0.

2. The playoff field is not "the top eight"

Sixteen of 32 teams qualify, but not by conference rank. In each conference the top three of each division get in, and then the two best remaining teams take the wild cards regardless of division. A fourth-place team in a strong division and a third-place team in a weak one are not interchangeable.

That rule has to run inside every simulated season. It also gives you a free sanity check: across all 32 teams, playoff probabilities must sum to exactly 16. If yours sum to 15.7, something is wrong.

3. Overtime is closer to a coin flip

Three-on-three and the shootout are not sixty minutes of five-on-five hockey. A better team carries less of its edge into the extra period. I damp the strength gap by half in overtime (overtimeDamping = 0.5). Setting it to 0 makes overtime a pure coin flip; 1 treats it like regulation.

4. The season is 84 games now

The collective bargaining agreement signed in 2025 moved the NHL to 84 regular-season games from 2026-27. ESPN's event count per team shows 84 for this season and 82 for last. I never hardcoded the season length — the simulator counts the games on the schedule feed — so projected point totals landed on the right scale without a code change. If you maintain a model with 82 somewhere in it, now is the time to look.

One more data quirk: ESPN names a season by the year it ends, so 2026-27 is season=2027, and before opening night the 2027 standings tree exists but has zero teams in it. You need to fall back to the previous season for the list of clubs and divisions.

What the model says right now

Here is part of a 20,000-season run from 10 September 2026, next to the live price of Kalshi's "make the playoffs" contract for each team:

Team Projected points Model playoff % Kalshi Gap
Colorado 109.6 96.5% 91% +5.5
Carolina 103.5 82.9% 89.5% −6.6
Buffalo 101.6 76.3% 56% +20.3
Edmonton 95.7 68.3% 85% −16.7
Vegas 95.2 66.4% 85.5% −19.1
Boston 97.0 58.3% 31% +27.3
Pittsburgh 95.5 52.5% 29.5% +23.0
San Jose 89.7 42.3% 67.5% −25.2

Boston 27 points above the market. San Jose 25 below. If you believed the model, those would be the trades of the year.

Why I don't believe it (yet)

In September the model knows exactly one thing about each club: how last season ended, shrunk 40% towards average. It hasn't seen a trade, a signing, an injury, a goalie change or a new coach. The market has seen all of them.

So the biggest gaps in September are not edges. They are the offseason. Betting them is betting that the summer didn't happen.

When I first compared the model with Kalshi across all 32 teams, the rank correlation was 0.65 and the average gap was about 14 points, and the largest disagreements were precisely the teams whose summers changed the most. That is what a season-carryover model should look like before the puck drops.

Instead of hiding that, I made it a rule in the output. Until every team has played a minimum number of games (10 by default), no row is allowed to call itself value. Every gap is still reported in full, but it's labelled WATCH. After that, the current season's record takes over from last season's gradually, rather than overnight after a hot week.

The fee changes which gaps matter

Kalshi's taker fee is 0.07 × p × (1 − p) per contract. It peaks in the middle: 1.75 cents on a 50-cent contract, 0.63 cents on a 90-cent one. So a 1.5-point edge on a coin-flip contract is a losing position after fees, while the same gap on a heavy favourite isn't. Any comparison that ignores this will rank the wrong teams first.

A second trap: the playoff market is sixteen independent yes/no contracts, so prices across the league add up to about 16, not 1. If you "de-vig" it the way you would a division-winner market, you divide every probability by sixteen and manufacture huge fake edges everywhere. Division winners, on the other hand, are exclusive — exactly one team wins — and there you do strip the overround.

Watching it move

The part I'm looking forward to is not the September table. It is the path. Each run can append its 32 rows to a named dataset that keeps growing, so a daily schedule gives you, by spring, how each team's probability moved across the season next to what the market charged for it on the same day — something you can't reconstruct afterwards.

Try it

The simulator is published as an Apify Actor: NHL Playoff Odds API — Monte Carlo Simulator & Value Bets. No API keys for the data; standings and schedules come from ESPN, prices from Kalshi's public API. There are ready-made examples for projected points standings, wild card odds, Presidents' Trophy odds and tracking playoff odds all season.

Simulation and data, not tips.

Top comments (0)