NHL Fantasy Hockey Rankings
Your fantasy hockey waiver wire, updated every morning: who's outscoring their draft slot, who's falling short, who's worth a pickup, and the full board of ranked picks.
Who's Hot, Who's Not in Fantasy Hockey?
this season vs the boardAhead of the board
Who is scoring ahead of preseason projections?
| Player | GP | P | Proj P/GP | Rank |
|---|---|---|---|---|
| Parker KellyCOL | 2 | 4 | 0.37 | #275 |
| Leo CarlssonANA | 2 | 5 | 0.88 | #61 |
| Evan BouchardEDM | 3 | 8 | 1.06 | #10 |
| Connor McDavidEDM | 3 | 9 | 1.56 | #1 |
| Jack EichelVGK | 4 | 10 | 1.12 | #15 |
| Artturi LehkonenCOL | 2 | 4 | 0.63 | #158 |
Waiver wire: who should you pick up?
Ranked outside the formula's top 150 and already scoring.
| Player | GP | P | Proj P/GP | Rank |
|---|---|---|---|---|
| Paul CotterVAN | 4 | 6 | 0.23 | #443 |
| Cole PerfettiWPG | 3 | 5 | 0.51 | #200 |
| Owen PowerBUF | 3 | 5 | 0.41 | #239 |
| Vasily PodkolzinEDM | 3 | 5 | 0.39 | #272 |
| Jared McCannSEA | 4 | 5 | 0.70 | #154 |
| Victor OlofssonVGK | 4 | 5 | 0.38 | #310 |
Buy-low watch
Underperformers: May be available at a discount
Fills in once teams have played five games.
Early days: a few games in, these lists are mostly noise. They settle after about ten games.
The Original Draft Board
two projection modelsBefore the season, we offered two draft lists: a simple math-based formula and a black-box AI trained on historical data. Here are these lists.
Show the exact math
Projected points = projected goals + projected assists, each built the same way (shown for goals; assists identical):
1. weighted rate
r = 0.70·rate(last yr)
+ 0.20·rate(2 yrs ago)
+ 0.10·rate(3 yrs ago)
rate = goals ÷ games (per season)
2. regress to the mean
R = ( N·r + K·base ) ÷ ( N + K )
N = total games over those seasons
K = 2 + 0.6·(82 − GP last season)
base = position median goals/game
(40+ GP regulars)
3. age factor
A = 1 + 0.014·(27 − age) if age ≤ 27
1 − 0.015·(age − 27) if age > 27
(floor 0.82)
4. projected goals = R · A · games
games = weighted recent GP, max 82
— counting only seasons in which
he was already an NHL regular
(20+ GP, or any season after
his first 20+ GP season)
rounded HALF UP: ⌊x + 0.5⌋
rounding of the published columns
goals and assists are each rounded
to one decimal, and POINTS IS THEIR
SUM AS PUBLISHED — the two columns
on the board always add to the third
Every input is a completed-season box-score number from NHL data — plug a player's last three seasons into the steps above and you'll land on the same number the board shows.
isActive flag. Anyone it reports as inactive is labelled NO NHL CLUB rather than shown under a team he has left, and he stays on the board at his projected rank — the projection is an honest read of a season he really played, and the label fixes itself the moment he signs. Read the flag literally: it means no current NHL club, which covers retirements, unsigned free agents, players in other leagues and players on minor-league deals alike. We don't guess which.The Draft Board
the big boardEvery skater in draft-rank order. Filter by position, or sort by goals, assists, or points. The rank is the call we trust most — a player's ordinal slot holds up better than the exact totals, which carry false precision. Treat the goals and assists as the supporting argument, and the tiers as the cliffs where the talent drops off.
Tap G, A or Pts to re-sort · the # column always shows the model's overall draft rank
| # | Player | Pos | Team | G | A | Pts ▾ | Tier |
|---|
Player vs The League
trajectory & percentilesPick a player and see where they rank against everyone at their position — and which way their trend line points. This is how you know whether a name is worth reaching for, or worth waiting on.
The menu lists every skater in the board's order, so you can scan from the top.
Bars fill once a player is selected — percentiles are computed against everyone who played that position last season.
Cheat Sheet & App
take it to the tableTake the board to the table two ways — a spreadsheet you can mark up, or the phone app, which does the crossing-off for you.
We used to hand out the tracker as an HTML file. It has been withdrawn, because it did not survive being emailed: iPhone Mail previews an attachment without running its JavaScript, so every button was dead, and Gmail on a desktop shows the file as raw source instead of a page. A spreadsheet travels through email intact, and the app does the live drafting properly.
Model A · The Formula. Take a player's scoring rate over his last three seasons — leaning hardest on the most recent — and pull it toward a normal rate for his position, but only as far as his sample is thin: a full-season player barely budges, a half-season sample gets pulled harder. Then adjust for age — a nudge up if he's young and still climbing, down if he's past his prime. Finally, multiply by the games he's expected to play, counting only the seasons in which he was already an NHL regular: a two-game call-up before a player's rookie year says nothing about how available he'll be, while a veteran's injury year says plenty. It's simple enough to check by hand, and across the last four seasons it beat simply repeating last year's numbers by about —.
Model B · The AI. A machine-learning model that works through years of player history and finds patterns a hand formula would miss. It's tuned so it won't underrate the stars the way a cautious average tends to — the cost is that it can give you a number but can't fully explain how it got there. It also weighs how many games a player has missed in past seasons as a durability signal (that's availability, not medical injury data). Across the last four seasons it beat simply repeating last year's numbers by about —.
What no model here knows. Neither one sees anything that hasn't happened yet — a summer trade, a training-camp injury, a new set of linemates. They only know completed seasons, so treat every number as the start of an argument, not the final word. Source: NHL data.
