Momentum WindowsGenesis & method
MOMENTUM WINDOWS / 2024-2025 NHL SEASON

Faceoff Momentum Windows in the NHLAn analysis of how faceoffs, turnovers, and restarts shape short-term momentum and shot generation in the 2024-2025 NHL season.

THE GENESIS

Do they actually exist in the numbers?

Anyone who has watched enough hockey knows that there are moments that you just have to stand up for. These sweat-inducing, high-stakes moments where the next 10-30 seconds feels like the difference between getting ahead or falling behind are an essential part of the game.

01 / THE MOMENT

The next 10-30 seconds.

Do they actually exist in the numbers or is this simply a phenomenon that we as hockey fans have collectively constructed in our heads?

02 / THE DEFINITION

Momentum as a short-horizon probability.

Momentum = the probability your team records a shot attempt in the next 30 seconds.

03 / THE QUESTION

Who is more likely to shoot next?

To answer this question, I built a pipeline that analyzes NHL play-by-play + boxscore + shift charts across completed games.

THE METHOD

An end-to-end hockey analytics pipeline.

This report documents an end-to-end hockey analytics pipeline that constructs “momentum windows” from play-by-play events, trains predictive models for near-future shot generation, estimates causal effects of interpretable in-window patterns, and quantifies team-level faceoff “set-play” performance and prevention.

01

Data sources

Data were collected via community-documented NHL endpoints, primarily under two base domains: api-web.nhle.com for schedule/score and gamecenter data, and api.nhle.com/stats/rest for shift charts.

score · gamecenter · shiftcharts
02

Time and attribution

Each event is assigned a game_time_sec defined as seconds from game start. Team attribution uses event owner fields when present, otherwise a player ID mapped to team via shift charts.

game_time_sec
03

Momentum windows

Feature window: 30 seconds of “what just happened.” Outcome window: the next 30 seconds. Updated every 5 seconds.

[t, t+30) → [t+30, t+60)
04

Shot attempts

A shot attempt is defined as any of the event types shot-on-goal, missed-shot, blocked-shot, or goal.

shot · miss · block · goal
HOW IT EVOLVED

A scalable local pipeline.

All raw API responses were cached to disk as JSON to make the pipeline restartable and to avoid repeated API calls. Processed tables were stored as Parquet for speed.

BLOG / 587 GAMES

Defining momentum.

To do that, I broke the games into overlapping windows: 30 seconds of “what just happened,” the next 30 seconds, updated every 5 seconds.

WHITE PAPER / 1,398 GAMES

Predictive and causal layers.

The design is motivated by recent work that combines micro-event weighting, sequence modeling, and causal estimation, but is implemented using only publicly accessible NHL endpoints.

REPRODUCIBILITY

Methodological clarity.

I emphasized methodological clarity, reproducibility, and logical validity for a hockey-analytics audience.

Loading corrected event table…Creation and suppression stay separate; neither is folded into a synthetic set-play index.
OZ REFERENCE POPULATION

League-wide defensive zone vs offensive zone set-play scores

own shot attempt ≤10sopponent shot attempt ≤10s
OPPONENT SHOT ATTEMPT RATE
OWN SHOT ATTEMPT RATE →

OZ For Rate asks whether the same team records a shot attempt in the 10 seconds after an offensive-zone faceoff. DZ Against Rate asks whether the opponent records one after a defensive-zone faceoff.

OZ FOR

Offensive set-play creation

For each offensive-zone faceoff, define success as a shot attempt by the same team in the next 10 seconds.

SOZ = 1{∃ shot attempt in [tf, tf + 10]}
DZ AGAINST

Defensive set-play prevention

For each defensive-zone faceoff a team takes, define conceded success as an opponent shot attempt in the next 10 seconds.

SDZ, against = 1{∃ opponent shot}
NET INDEX

Creation minus prevention

Set-Play Index = OZ For Rate − DZ Against Rate. It contrasts creation vs prevention using a common time horizon.

How well do you cash in, and prevent the opponent from cashing in right back?
LEADERBOARD

Top teams by OZ set-play creation

Sorted by own shot-attempt rate ≤10s
TEAMOZ DRAWSWIN RATEOWN SHOT ≤10sOPP SHOT ≤10sELIGIBLE
FEATURE WINDOW30 secondswhat just happened: faceoffs · hits · turnovers · score state
OUTCOME WINDOWthe next 30 secondsat least one shot attempt?
↻ 5s stride
MODEL OUTPUT

Near-term offensive-pressure probability

This defines the predictive target: near-future shot probability. By shifting the label to the next 30 seconds, the model predicts future offense from current micro-events rather than re-describing the same window.

lower pressurehigher pressure
EVALUATION SNAPSHOT

Regular-season rolling folds and the playoff transport holdout are reported separately.

WHITE PAPER REFERENCE

Results: causal effects of zone and late-window events.

Within a 30-second feature window, these estimates ask what is the causal effect of a treatment on the probability that the team records at least one shot attempt in the next 30 seconds.

+10.65 pp

Offensive-zone faceoff

An offensive-zone faceoff increased near-future shot probability by 10.65 percentage points.

−5.18 pp

Defensive-zone faceoff

A defensive-zone faceoff reduced near-future shot probability by 5.18 percentage points.

−6.07 pp

Late giveaway

A giveaway in the final five seconds of the feature window reduced near-future shot probability by 6.07 percentage points.

01

Faceoffs: outcome versus execution.

Two offensive-zone faceoffs can look identical in public data. One could be a scripted set play that creates a clean shot; another could be a broken play salvaged by individual skill. The difference between just saying that a team is good after OZ draws and actually knowing why is substantial.

02

Shot attempts are a blunt proxy for danger.

A low-danger point shot through traffic and a one-timer off a cross-ice pass both count as shot attempts. Without shot location, pre-shot movement, defensive pressure, and goalie positioning, the model measures shot generation, not shot quality.

03

Turnovers lack positional geometry.

A D-to-D pass intercepted at the blue line, a middle-lane feed picked off, and a bobbled puck under pressure can all be coded as the same event type. Tracking data would tell us whether the turnover came from pressure, poor spacing, or a bad decision.

04

Limitations and threats to validity.

There is no puck tracking, player coordinates, shot quality, or manpower context. Windows overlap, team attribution can require inference from shift charts, and causal estimates depend on consistency, positivity, and no unmeasured confounding conditional on the chosen covariates.

NEXT EXTENSIONS

What team-level data would unlock.

Team-level data could separate designed execution from improvised recovery, and shot quantity from shot danger.

STRUCTURE

Pre-draw structure

Winger depth, weak-side defense positioning, center stick orientation, and pre-draw alignment.

THREAT

Shot preconditions

Shot location, shot type, pre-shot movement, defensive pressure, and goalie positioning.

TRANSITION

Turnover context

Pressure-induced errors, outlet availability, defensive gap control, and opponent posture.

SOURCE RECORD

The methodology and interpretation on this site draw directly from the December 27, 2025 white paper and the Faceoff Moment Economy post, with minor edits for page layout and grammar.