The model
Every projection is built the same way, by hand-written rules you can read
and check — not a black box and not a hunch. The guiding idea: project the process, not
last year's results. A player who scored on 20% of his shots won't do it again; a player
whose scoring chances went up probably will. The model separates the two everywhere.
↓
1
Deployment — how much he plays
Project ice time at all strengths, 5-on-5, and the power play.
Anchor on how the role ended (the second half, nudged by the final quarter), trust
that finish more when the coach stays and for ascending young players, and regress toward
the three-year norm by age.
↓
2
Rates — how much he produces per minute
Each stat's per-60 rate is projected off the underlying process
(shot quality, shot volume, chance creation), then last year's finishing luck is
regressed only as far as the chances support it.
↓
Reality checks
Blend the one-year read toward the player's three-year body of work
(weighted by age), apply a small age curve, give rookies and young risers a development step
instead of a flat repeat, and steady injury-shortened seasons toward a multi-year pace.
↓
3
Counts — the projected line
Rate × ice time × 82/60, computed for each strength and
summed. Output: goals, assists, points, power-play points, shots, penalty minutes, hits, and
blocks — all per 82 games.
The core equation
Everything reduces to one line, applied category by category:
count (per 82) = projected rate/60 × projected TOI/GP × 82 / 60
The two halves are projected separately because they behave differently. Minutes
(deployment) are a coaching decision that tends to carry from how a season ended. Rate
(production per minute) is a skill that has to be separated from luck. Multiplying two honest
projections beats fitting one blended number to last year's total.
Step 1 · Deployment
Rather than average a whole season, the model leans on how the role ended — the
second half is the ~40-game read, tilted by (not dominated by) the final quarter. A player
promoted to the top power-play unit in January shouldn't be projected off the minutes he played
in October.
- Coach continuity. If the coach who set the end-of-year role stays,
the role that ended is the role that continues, so the strong (or weak) finish carries more
weight. A new bench discounts the finish until the new staff sets usage.
- Age. Players 24 and under usually grow into more minutes; 25–30
hold; 31+ slowly taper. A declining older role is never pulled back up toward his younger, higher
average.
- Star floor. An established top-of-league role (top 20% of the league,
stable for years) that only dipped a little late is treated as rest or wear, not lost usage, and
held steady. A genuine large collapse still projects down.
- Context & curated bets. A verified role change the raw data
can't see yet — a trade, a new depth chart, a power-play promotion — can set or scale
the minutes directly. Because every count ladders off this ice time, one honest minutes bet
cascades correctly into points and the power-play line, instead of a blind points multiplier.
Step 2 · Rates — process over results
This is the heart of it. Each category is projected off the repeatable signal, and the
noisy part is regressed toward the multi-year norm.
Goals
Goals are shot volume × finishing. Shot volume is one of the most repeatable things a
skater does, so last year is trusted heavily. Finishing percentage is not — it's regressed
toward the multi-year mark, and then capped at what the player's own shot quality
(expected goals) implies. A career shooting year on flat chances regresses hard; a player
whose chances genuinely rose keeps most of the gain.
Assists
Primary assists (the pass that sets up the goal) repeat far better than secondary assists, so
they're trusted more and the volatile secondary slice is reverted harder. The luck signals —
on-ice shooting percentage and the share of goals a player is in on — are regressed toward
the norm unless the underlying chance creation (high-danger involvement, primary-assist
rate) actually rose with them, in which case the step-up is treated as real.
Power play
Power-play conversion barely repeats year to year, so a hot power-play shooting season is
regressed aggressively. The projection is rebuilt from the second-half top-unit role and
its own chance quality. Power-play points are the sum of the projected power-play goals and
assists — one projection, so the power-play line always agrees with the points line.
Peripherals (hits, penalty minutes, blocks)
These are role and temperament stats, anchored on how the year ended. Fighting-driven penalty
minutes regress harder than ordinary minors (they're streakier). Hits are deliberately not
reverted toward the multi-year average: a scan of four seasons showed big year-over-year hit
swings persist about 80% of the time — a player who stops hitting stays stopped — so
reverting them would erase exactly what sticks.
Why "process over results" matters. Two players both score 30 goals.
One did it on a normal 12% shooting rate and heavy chances — the model projects him to
repeat. The other did it on an unsustainable 22% with average chances — the model projects
a pullback. Same past total, different future, because the model reads the how.
The reality checks
- Three-year hedge. The one-year read is blended toward the player's
recent body of work, weighted by age: prime players (25–30) hedge hardest because one year
is mostly noise for them; ascending youngsters hedge least because last year is their new level;
declining veterans aren't pulled back up toward better past seasons. A real role change loosens
the hedge.
- Age curve. A small one-year decline for the coming season only
(forwards from ~33, defensemen from ~35), never a full career haircut re-applied on top of an
already-aged season.
- Development curve. A rookie or a young riser with only one real
season has no trend to grow, so a plain model would just repeat his rookie line. Instead he gets
a modest growth step in both role and rate — a young player improves on last year rather
than repeating it — bounded so a late-season ramp doesn't balloon into an implausible leap.
- Small-sample seasons. An injury-shortened year is a shaky anchor,
so it's steadied toward the age-adjusted multi-year pace in proportion to how few games it was.
The human layer
The model is usually right about regression and often blind to real-world news. So a curated set
of hand-checked bets sits on top — a signed contract, a playoff role, a depth-chart change, an
injury timeline — and the rule is to bet only where there's real information the model lacks,
never to overrule its regression on a hunch. When two reads conflict, the bet is a hedge (a lean),
not a coin flip. The Lines page marks which teams have been through this
hand review.
A quick glossary
- TOI/GP — time on ice per game, the "minutes" half of every
projection.
- ixG (expected goals) — the quality of a player's own shots:
how many goals an average shooter would score from those spots. The process anchor for finishing.
- iSH% (shooting %) — the share of a player's shots that go in.
Noisy year to year; regressed toward the norm and capped by ixG.
- SOG — shots on goal (volume). Highly repeatable.
- on-ice SH% / IPP — how often the team scores with him out
there, and the share of those goals he points on. Luck-prone; regressed unless the chances back
it up.
- high-danger chances — shots from the most dangerous areas;
the "did the process actually rise?" check behind the luck regressions.
- per 82 — every line is scaled to a full 82-game season so
players are comparable regardless of games played.
What it doesn't do
- It's a draft-prep tool built before the season — not an in-season streamer or a
live-updating model.
- It's deterministic: one honest projected line per player, not a simulated range of
outcomes.
- It's tuned for head-to-head category (banger) leagues — goals, assists, points,
power-play points, shots, hits, blocks, penalty minutes — and covers skaters, not goalies.