Edgehalla

Signature stats

Sequence xG: expected goals adjusted for rebound flurries

A goalie makes a save, the puck drops in the crease and three players whack at it. Plain xG adds all three chances together. But the play can only produce one goal: if the first shot had gone in, the second and third would never have happened. Sequence xG fixes that double counting.

Updated · Method version sequences v1

How it's calculated

Sequence xG for the i-th shot of a play

sxG_i = xG_i × (1 − xG_1) × (1 − xG_2) × … × (1 − xG_(i−1))

xG_j
raw xG of each earlier unblocked attempt by the same team in the same play (between whistles)
Σ sxG
the probability that the play produced at least one goal

This is the approach MoneyPuck popularised as flurry adjustment. The first shot in a play keeps its full xG. Each later shot is discounted by the chance that the play was still alive when it was taken.

  • A play is everything between two whistles. A turnover to the other team ends the sequence for the attacking team.
  • Blocked attempts carry no xG, so they neither add to nor discount the sequence.
  • A scramble is three or more same-team attempts within 6 s. We flag them separately: about 1.9 per game, and 10.4% end in a goal.
Example data

Raw xG vs sequence xG in one flurry

Example data: invented for illustration

Three shots in one play: raw xG totals 0.75, sequence xG totals 0.58.

Shot 1 · 14:02 · Point shot through traffic
Shot 2 · 14:04 · Rebound from the left post
Shot 3 · 14:05 · Second rebound, whack at the crease
Play total
  • Raw xG
  • Sequence xG

Worked example

A three-shot flurry

Includes example data

A point shot (xG 0.25) is saved, the rebound (0.30) hits the post, and a second rebound (0.20) is covered by the goalie. All in one play.

  1. Raw xG: 0.25 + 0.30 + 0.20 = 0.75.
  2. Shot 1 keeps its xG: 0.25.
  3. Shot 2: 0.30 × (1 − 0.25) = 0.225.
  4. Shot 3: 0.20 × (1 − 0.25) × (1 − 0.30) = 0.105.
  5. Sequence total: 0.25 + 0.225 + 0.105 = 0.58, which equals 1 − (0.75 × 0.70 × 0.80), the chance at least one of the three went in.

The flurry is worth 0.58 goals, not 0.75. The xG values are illustrative; the arithmetic is exactly what the site runs.

Reliability

Sequence xG is a correction to a measurement, not a new trait, so it inherits xG's reliability. What we tested was whether a related player skill exists: it does not.

MeasureSplit-half rSampleVerdict
League total effect−5.5% of xG.—200 games, 2025-26Stable
Shooter "rebound creation"Not published.≈ 0Split-half, 200 gamesNoise
Scramble goal rate10.4% become goals.—About 1.9 scrambles per gameNot measured yet

Split-half r: we split each sample in two (for example odd and even games) and correlate the two halves across players or teams. Near 0 means the stat is mostly noise; near 1 means it is a stable trait.

Limitations

  • The formula assumes shots within a play are independent chances. Real flurries are correlated (a goalie out of position stays out of position), so the adjustment may be slightly too strong or too weak.
  • Play boundaries come from whistles in the feed. A long offensive-zone shift with several separate chances counts as one play if nothing stops it.
  • Players don't get sequence xG as individual shooters: a player shouldn't lose credit for a good rebound chance because a teammate shot first.

FAQ

What is flurry-adjusted xG?

An adjustment that stops rebound sequences from counting as more than one goal. Each shot's xG is multiplied by the chance that the earlier shots in the same play did not score.

Why not just use raw xG?

Raw xG overrates teams that generate scrambles: three rebounds worth 0.75 xG can only produce one goal. In our 2025-26 sample the adjustment lowered league xG by 5.5% and moved single-game differentials by up to 0.72.

Do player ixG totals use sequence xG?

No. Individual shooting stays on raw xG, because a shooter should get full credit for the chance he had. Sequence xG is used for team and game views.

Is creating rebounds a skill?

Not one we can measure. A shooter's rate of generating rebounds had a split-half correlation of about zero in our sample, so we don't publish it.