← Models / SOG Model

How the Shots on Goal Model Works

What it does

For every player Hard Rock Bet posts a shots-on-goal line for, the model simulates the game 10,000 times and counts how often the player goes over. That gives a probability for every shot count (0, 1, 2 … 10+) — the bars under each pick — and the probability of going over Hard Rock's line.

Model vs Sim: the probability the picks use (Model) blends the simulation with Hard Rock's own de-vigged price, weighted 35% simulation / 65% market. In a two-season backtest the simulation alone was about as accurate as the closing line, but the blend was measurably more accurate than either — each knows things the other doesn't. The weight is re-fitted every week on graded results. Sim (in each row's detail) is the raw simulation.

How a simulation works

  • Game script — each simulated game draws how many power plays each team gets, how the score unfolds (from Hard Rock's moneyline and total), whether a trailing team pulls its goalie late, and whether it goes to 3-on-3 overtime. Every player on a team shares the same script, so a power-play-heavy night lifts the whole PP unit together.
  • Ice time — the player's share of his team's even-strength, power-play, penalty-kill, 6-on-5 and overtime minutes, from his recent deployment, plus a realistic random swing drawn from real games (including nights cut short by injury).
  • Shot rate — shots per 60 minutes in each situation, estimated from his history and pulled toward forward/defenseman norms when the sample is small. Adjusted for the opponent's shot suppression, the arena's scorekeeper tendencies, home ice, back-to-backs, and score state (trailing teams shoot more).

Reading the board

  • Book — Hard Rock's probability for the over with the vig removed.
  • Model — the model's probability for the over (simulation blended with the market, see above).
  • Proj — average simulated shots; TOI — expected minutes (power-play minutes in brackets).
  • EV — expected profit per 1 unit bet at Hard Rock's price on the model's side.
  • Fair — the price at which the bet would break even by the model.

Best bets & leans

Best bet: EV of at least 5% and the model at least 4 percentage points away from the de-vigged line. Lean: EV of at least 2%. Only lines with both an over and an under price can be picks. Stake is 0.25× Kelly as a share of bankroll — a sizing guide, not a promise.

Settlement & timing

Graded like the sportsbooks grade it: overtime counts, shootouts don't, and a player who doesn't take a shift is a void. Predictions refresh every 30 minutes on game days as lines move and lock at puck drop; the locked prediction is what gets graded. Every pick is tracked on Pick history and Performance, including how the line moved after the pick (CLV).

Honest expectations

Shots on goal are noisy — a 3-shot-per-game player still goes under 2.5 often. The model aims to be well calibrated, not to call every game. Results before live tracking come from a walk-forward backtest priced at Hard Rock's closing lines, using only information available before each game.

Informational only. Not betting advice.

Games
9
Lines priced
119
Best bets
4
Leans
10
Updated
Oct 19, 6:03 AM CT
backtest · priced at close

Best Bets

Patrik Laine
MTL @ ANA · 3:00 PM CT · F
UNDER 2.5
Price-105
Model55.5%
Book48.0%
EV+8.4%
Fair-125
Stake2.2%
0
1
2
3
4
5
6
7
8
9
10+
Proj 2.22 SOG · 15.7 min (2.7 PP) role change W 1 SOG · +0.95u
Dylan Larkin
DET @ VAN · 7:00 PM CT · F
UNDER 2.5
Price+135
Model45.2%
Book39.8%
EV+6.2%
Fair+121
Stake1.2%
0
1
2
3
4
5
6
7
8
9
10+
Proj 2.74 SOG · 20.3 min (3.2 PP) W 1 SOG · +1.35u
Artemi Panarin
NYR vs VGK · 5:00 PM CT · F
UNDER 2.5
Price+135
Model45.1%
Book39.8%
EV+6.1%
Fair+122
Stake1.1%
0
1
2
3
4
5
6
7
8
9
10+
Proj 2.75 SOG · 20.2 min (2.8 PP) L 4 SOG · -1.00u
Aaron Ekblad
FLA vs NYI · 5:00 PM CT · D
UNDER 1.5
Price+135
Model44.8%
Book39.6%
EV+5.3%
Fair+123
Stake1.0%
0
1
2
3
4
5
6
7
8
9
10+
Proj 1.74 SOG · 22.6 min (2.4 PP) L 3 SOG · -1.00u

Full Board

PlayerGameLineOverUnder BookModelProjTOI (PP) PickEVResult
BUF vs NJD 12:00 PM CT 1.5 -175 +130 59.4% 61.8% 2.25 18.8 (1.9) — -2.8% 4 SOG
BUF vs NJD 12:00 PM CT 1.5 -165 +125 58.4% 61.3% 2.25 17.8 (1.8) — -1.6% 1 SOG
BUF vs NJD 12:00 PM CT 1.5 -140 +105 54.5% 58.9% 2.17 17.3 (2.7) — +0.9% 3 SOG
NJD @ BUF 12:00 PM CT 1.5 -190 +140 61.1% 58.7% 1.94 16.3 (2.5) — -10.4% 2 SOG
BUF vs NJD 12:00 PM CT 1.5 -155 +115 56.7% 56.6% 1.94 15.1 (1.5) — -6.9% 2 SOG
BUF vs NJD 12:00 PM CT 1.5 -130 +100 53.1% 53.8% 1.88 16.2 (2.8) — -4.8% 0 SOG
NJD @ BUF 12:00 PM CT 1.5 -140 +105 54.5% 53.5% 1.82 17.8 (1.7) — -8.3% 1 SOG
BUF vs NJD 12:00 PM CT 2.5 -135 +100 53.5% 53.2% 2.84 18.4 (2.9) — -7.3% 3 SOG
NJD @ BUF 12:00 PM CT 2.5 -140 +105 54.5% 51.9% 2.68 17.3 (1.7) — -11.1% 4 SOG
NJD @ BUF 12:00 PM CT 3.5 -130 +100 53.1% 47.6% 3.43 19.9 (3.0) UNDER lean +4.8% W 3 SOG · +1.00u
NJD @ BUF 12:00 PM CT 2.5 -115 -115 50.0% 45.9% 2.40 19.0 (2.7) — -14.1% 2 SOG
BUF vs NJD 12:00 PM CT 2.5 +130 -175 40.6% 43.2% 2.51 24.7 (3.1) — -0.6% 1 SOG
NJD @ BUF 12:00 PM CT 2.5 +115 -150 43.7% 43.1% 2.40 18.5 (2.7) — -7.4% 1 SOG
BUF vs NJD 12:00 PM CT 2.5 +140 -190 38.9% 40.4% 2.35 18.0 (2.9) — -3.1% 5 SOG
COL vs PHI 2:00 PM CT 1.5 -165 +125 58.4% 58.2% 1.99 18.6 (2.9) — -6.6% 1 SOG
COL vs PHI 2:00 PM CT 1.5 -160 +120 57.5% 55.5% 1.84 24.6 (1.4) — -9.9% 3 SOG
PHI @ COL 2:00 PM CT 1.5 -115 -115 50.0% 49.9% 1.70 16.8 (1.7) — -6.8% 2 SOG
COL vs PHI 2:00 PM CT 3.5 -125 -105 52.0% 49.8% 3.58 21.6 (3.6) — -10.4% 4 SOG
PHI @ COL 2:00 PM CT 1.5 -115 -115 50.0% 48.4% 1.63 13.3 (2.1) — -9.6% 0 SOG
COL vs PHI 2:00 PM CT 2.5 -125 -105 52.0% 47.5% 2.47 19.4 (3.3) UNDER lean +2.5% L 4 SOG · -1.00u
PHI @ COL 2:00 PM CT 1.5 -105 -125 48.0% 46.3% 1.53 16.7 (1.4) — -9.7% 4 SOG
COL vs PHI 2:00 PM CT 2.5 -110 -120 49.0% 45.5% 2.41 25.0 (3.3) — -13.1% 2 SOG
PHI @ COL 2:00 PM CT 2.5 +130 -175 40.6% 40.8% 2.33 19.7 (2.3) — -6.2% 1 SOG
MTL @ ANA 3:00 PM CT 1.5 -180 +135 60.2% 62.7% 2.28 20.0 (2.9) — -2.5% 2 SOG
ANA vs MTL 3:00 PM CT 2.5 -170 +130 59.2% 58.4% 3.05 17.6 (2.7) — -7.3% 2 SOG
ANA vs MTL 3:00 PM CT 1.5 -165 +125 58.4% 57.8% 1.97 14.3 (2.0) — -7.1% 1 SOG
MTL @ ANA 3:00 PM CT 1.5 -155 +115 56.7% 57.7% 2.03 24.5 (1.9) — -5.1% 1 SOG
MTL @ ANA 3:00 PM CT 1.5 -150 +110 55.8% 56.2% 1.95 13.4 (1.6) — -6.3% 2 SOG
ANA vs MTL 3:00 PM CT 1.5 -145 +110 55.4% 55.6% 1.90 16.9 (2.2) — -6.0% 1 SOG
MTL @ ANA 3:00 PM CT 1.5 -125 -105 52.0% 54.8% 1.97 17.8 (2.8) — -1.3% 2 SOG
ANA vs MTL 3:00 PM CT 1.5 -175 +130 59.4% 54.7% 1.73 22.7 (2.6) UNDER lean +4.3% L 3 SOG · -1.00u
ANA vs MTL 3:00 PM CT 1.5 -120 -110 51.0% 54.4% 1.94 17.2 (2.7) — -0.3% 3 SOG
MTL @ ANA 3:00 PM CT 2.5 -125 -105 52.0% 44.5% 2.22 15.7 (2.7) UNDER best +8.4% W 1 SOG · +0.95u
MTL @ ANA 3:00 PM CT 3.5 +125 -165 41.7% 41.5% 3.32 18.1 (2.8) — -6.6% 3 SOG
ANA vs MTL 3:00 PM CT 2.5 +120 -160 42.5% 39.3% 2.17 16.7 (2.3) — -13.6% 2 SOG
ANA vs MTL 3:00 PM CT 2.5 +140 -190 38.9% 37.8% 2.18 16.4 (2.5) — -9.4% 0 SOG
FLA vs NYI 5:00 PM CT 1.5 -190 +140 61.1% 59.0% 1.99 21.7 (0.3) — -9.9% 3 SOG
FLA vs NYI 5:00 PM CT 1.5 -185 +135 60.4% 55.2% 1.74 22.6 (2.4) UNDER best +5.3% L 3 SOG · -1.00u
FLA vs NYI 5:00 PM CT 1.5 -140 +105 54.5% 52.3% 1.73 14.0 (1.6) — -10.3% 2 SOG
FLA vs NYI 5:00 PM CT 1.5 -135 +105 54.1% 51.7% 1.67 15.3 (1.3) — -10.0% 3 SOG
FLA vs NYI 5:00 PM CT 2.5 -140 +105 54.5% 51.6% 2.68 18.6 (2.8) — -11.6% 6 SOG
NYI @ FLA 5:00 PM CT 2.5 -140 +105 54.5% 51.5% 2.72 19.9 (3.0) — -11.7% 2 SOG
NYI @ FLA 5:00 PM CT 1.5 -125 -105 52.0% 51.5% 1.75 17.0 (1.4) — -7.4% 1 SOG
FLA vs NYI 5:00 PM CT 2.5 -140 +105 54.5% 50.2% 2.55 16.7 (1.7) UNDER lean +2.2% L 5 SOG · -1.00u
FLA vs NYI 5:00 PM CT 2.5 -140 +105 54.5% 49.1% 2.50 16.2 (2.6) UNDER lean +4.4% L 3 SOG · -1.00u
FLA vs NYI 5:00 PM CT 2.5 -115 -115 50.0% 45.1% 2.34 18.8 (2.6) UNDER lean +2.7% W 1 SOG · +0.87u
NYI @ FLA 5:00 PM CT 2.5 +130 -170 40.9% 40.9% 2.38 19.3 (2.8) — -6.0% 3 SOG
NYI @ FLA 5:00 PM CT 2.5 +135 -180 39.8% 40.6% 2.36 17.9 (2.6) — -4.5% 7 SOG
FLA vs NYI 5:00 PM CT 2.5 +120 -165 42.2% 40.3% 2.26 19.2 (2.7) — -11.3% 2 SOG
NYI @ FLA 5:00 PM CT 2.5 +140 -190 38.9% 32.7% 1.83 20.6 (1.8) UNDER lean +2.7% W 1 SOG · +0.53u
NYR vs VGK 5:00 PM CT 1.5 -200 +150 62.5% 64.4% 2.34 18.2 (1.5) — -3.4% 1 SOG
VGK @ NYR 5:00 PM CT 1.5 -140 +105 54.5% 60.2% 2.26 20.7 (3.2) OVER lean +3.1% W 4 SOG · +0.71u
VGK @ NYR 5:00 PM CT 1.5 -165 +125 58.4% 59.5% 2.11 22.3 (3.2) — -4.4% 3 SOG
NYR vs VGK 5:00 PM CT 1.5 -165 +125 58.4% 58.5% 2.03 16.5 (2.5) — -6.0% 4 SOG
NYR vs VGK 5:00 PM CT 2.5 -180 +135 60.2% 54.9% 2.75 20.2 (2.8) UNDER best +6.1% L 4 SOG · -1.00u
VGK @ NYR 5:00 PM CT 1.5 -145 +110 55.4% 54.4% 1.84 23.1 (1.1) — -8.2% 1 SOG
VGK @ NYR 5:00 PM CT 1.5 -145 +110 55.4% 53.1% 1.77 21.4 (1.1) — -10.3% 0 SOG
NYR vs VGK 5:00 PM CT 1.5 -135 +105 54.1% 50.5% 1.62 22.4 (2.7) — -12.1% 1 SOG
VGK @ NYR 5:00 PM CT 1.5 -110 -120 49.0% 48.4% 1.64 14.4 (1.5) — -7.6% 0 SOG
VGK @ NYR 5:00 PM CT 2.5 -120 -110 51.0% 46.8% 2.44 16.5 (2.7) — -14.2% 1 SOG
NYR vs VGK 5:00 PM CT 2.5 +115 -155 43.4% 41.9% 2.31 20.2 (2.6) — -10.0% 0 SOG
VGK @ NYR 5:00 PM CT 3.5 +125 -170 41.4% 41.7% 3.37 21.9 (3.3) — -6.2% 4 SOG
VGK @ NYR 5:00 PM CT 2.5 +125 -165 41.7% 40.0% 2.25 17.4 (3.3) — -9.9% 3 SOG
NYR vs VGK 5:00 PM CT 2.5 +130 -175 40.6% 36.3% 2.02 17.9 (2.6) — -16.5% 5 SOG
CBJ @ DAL 5:00 PM CT 1.5 -165 +125 58.4% 59.8% 2.13 18.3 (2.3) — -4.0% 6 SOG
DAL vs CBJ 5:00 PM CT 1.5 -150 +110 55.8% 58.1% 2.08 16.7 (2.6) — -3.2% 2 SOG
DAL vs CBJ 5:00 PM CT 1.5 -140 +105 54.5% 56.4% 1.99 18.1 (2.6) — -3.3% 3 SOG
DAL vs CBJ 5:00 PM CT 1.5 -185 +135 60.4% 56.2% 1.81 13.4 (1.8) UNDER lean +3.1% L 2 SOG · -1.00u
CBJ @ DAL 5:00 PM CT 2.5 -145 +110 55.4% 55.6% 2.98 26.7 (2.5) — -6.1% 3 SOG
CBJ @ DAL 5:00 PM CT 1.5 -120 -110 51.0% 53.7% 1.93 17.4 (1.2) — -1.5% 1 SOG
DAL vs CBJ 5:00 PM CT 2.5 -125 -105 52.0% 48.2% 2.54 18.3 (3.1) — -13.2% 3 SOG
DAL vs CBJ 5:00 PM CT 2.5 +100 -130 46.9% 47.8% 2.64 18.9 (3.0) — -4.4% 8 SOG
CBJ @ DAL 5:00 PM CT 2.5 +110 -150 44.3% 44.7% 2.50 19.6 (2.5) — -6.2% 2 SOG
DAL vs CBJ 5:00 PM CT 2.5 +125 -165 41.7% 41.8% 2.39 16.0 (1.6) — -6.0% 3 SOG
CBJ @ DAL 5:00 PM CT 2.5 +140 -190 38.9% 38.7% 2.25 19.4 (1.9) — -7.1% 5 SOG
DAL vs CBJ 5:00 PM CT 2.5 +145 -190 38.4% 35.7% 2.03 16.1 (2.4) — -12.7% 1 SOG
DAL vs CBJ 5:00 PM CT 2.5 +150 -200 37.5% 34.3% 1.98 23.6 (1.6) — -14.2% 2 SOG
UTA vs STL 6:00 PM CT 1.5 -190 +140 61.1% 63.4% 2.29 18.8 (3.0) — -3.2% 0 SOG
STL @ UTA 6:00 PM CT 1.5 -190 +140 61.1% 60.8% 2.10 17.5 (1.7) — -7.1% 1 SOG
STL @ UTA 6:00 PM CT 1.5 -180 +135 60.2% 58.0% 1.92 18.7 (2.3) — -9.8% 4 SOG
STL @ UTA 6:00 PM CT 1.5 -170 +125 58.6% 57.6% 1.95 18.7 (2.3) — -8.5% 3 SOG
UTA vs STL 6:00 PM CT 1.5 -180 +135 60.2% 55.7% 1.79 15.1 (1.4) UNDER lean +4.1% L 3 SOG · -1.00u
UTA vs STL 6:00 PM CT 1.5 -145 +110 55.4% 54.5% 1.84 14.8 (2.4) — -7.9% 1 SOG
UTA vs STL 6:00 PM CT 1.5 -125 -105 52.0% 53.6% 1.87 24.3 (3.0) — -3.6% 2 SOG
UTA vs STL 6:00 PM CT 1.5 -145 +110 55.4% 51.9% 1.65 13.9 (1.4) — -12.4% 1 SOG
UTA vs STL 6:00 PM CT 1.5 -135 +100 53.5% 51.6% 1.71 19.2 (1.7) — -10.1% 2 SOG
STL @ UTA 6:00 PM CT 2.5 -135 +100 53.5% 50.4% 2.61 17.4 (2.2) — -12.3% 2 SOG
STL @ UTA 6:00 PM CT 1.5 -115 -115 50.0% 50.3% 1.73 17.6 (1.7) — -5.9% 1 SOG
STL @ UTA 6:00 PM CT 1.5 -115 -115 50.0% 49.9% 1.70 23.6 (0.7) — -6.8% 2 SOG
UTA vs STL 6:00 PM CT 2.5 -115 -115 50.0% 49.8% 2.71 19.0 (3.0) — -6.9% 3 SOG
STL @ UTA 6:00 PM CT 1.5 -110 -120 49.0% 47.5% 1.58 19.9 (1.8) — -9.3% 1 SOG
DET @ VAN 7:00 PM CT 1.5 -180 +135 60.2% 59.9% 2.07 16.8 (3.0) — -6.8% 3 SOG
VAN vs DET 7:00 PM CT 1.5 -165 +125 58.4% 58.6% 2.03 17.0 (2.2) — -5.9% 0 SOG
DET @ VAN 7:00 PM CT 1.5 -155 +115 56.7% 55.4% 1.85 26.5 (3.3) — -8.9% 1 SOG
DET @ VAN 7:00 PM CT 2.5 -180 +135 60.2% 54.8% 2.74 20.3 (3.2) UNDER best +6.2% W 1 SOG · +1.35u
DET @ VAN 7:00 PM CT 1.5 -105 -125 48.0% 47.4% 1.61 15.2 (1.9) — -7.5% 1 SOG
DET @ VAN 7:00 PM CT 1.5 -110 -120 49.0% 45.7% 1.49 15.9 (1.2) — -12.8% 1 SOG
VAN vs DET 7:00 PM CT 2.5 +135 -185 39.6% 42.2% 2.48 18.3 (2.7) — -0.9% 4 SOG
DET @ VAN 7:00 PM CT 2.5 +115 -155 43.4% 42.2% 2.37 17.6 (3.1) — -9.3% 6 SOG
VAN vs DET 7:00 PM CT 2.5 +135 -180 39.8% 39.9% 2.28 18.2 (3.0) — -6.3% 3 SOG
DET @ VAN 7:00 PM CT 2.5 +130 -170 40.9% 37.7% 2.11 19.2 (3.0) — -13.2% 1 SOG
VAN vs DET 7:00 PM CT 2.5 +145 -195 38.2% 36.9% 2.13 18.6 (2.9) — -9.6% 1 SOG
CGY @ SEA 8:00 PM CT 1.5 -180 +135 60.2% 62.5% 2.25 18.9 (1.5) — -2.7% 0 SOG
CGY @ SEA 8:00 PM CT 1.5 -170 +130 59.2% 61.0% 2.15 24.0 (2.2) — -3.2% 2 SOG
SEA vs CGY 8:00 PM CT 1.5 -160 +120 57.5% 60.6% 2.16 20.4 (2.6) — -1.6% 0 SOG
SEA vs CGY 8:00 PM CT 1.5 -180 +135 60.2% 60.4% 2.10 16.3 (2.2) — -6.0% 2 SOG
SEA vs CGY 8:00 PM CT 1.5 -170 +130 59.2% 59.6% 2.09 15.8 (2.5) — -5.3% 0 SOG
CGY @ SEA 8:00 PM CT 2.5 -155 +115 56.7% 58.9% 3.19 19.4 (2.2) — -3.1% 3 SOG
CGY @ SEA 8:00 PM CT 1.5 -140 +105 54.5% 56.9% 2.02 19.5 (2.2) — -2.5% 2 SOG
CGY @ SEA 8:00 PM CT 1.5 -135 +100 53.5% 55.4% 1.95 17.2 (2.0) — -3.6% 2 SOG
SEA vs CGY 8:00 PM CT 1.5 -115 -115 50.0% 52.7% 1.88 17.6 (1.5) — -1.6% 1 SOG
CGY @ SEA 8:00 PM CT 1.5 -135 +105 54.1% 52.3% 1.76 22.7 (1.5) — -8.9% 0 SOG
CGY @ SEA 8:00 PM CT 1.5 -130 -105 52.5% 51.6% 1.76 15.4 (2.0) — -8.7% 5 SOG
SEA vs CGY 8:00 PM CT 1.5 -120 -110 51.0% 48.2% 1.59 13.9 (0.8) — -11.6% 1 SOG
SEA vs CGY 8:00 PM CT 2.5 +105 -135 45.9% 44.2% 2.42 23.3 (2.0) — -9.4% 8 SOG
SEA vs CGY 8:00 PM CT 2.5 +130 -170 40.9% 41.7% 2.40 19.0 (2.7) — -4.1% 3 SOG
CGY @ SEA 8:00 PM CT 2.5 +115 -155 43.4% 41.5% 2.28 17.7 (1.5) — -10.9% 3 SOG
CGY @ SEA 8:00 PM CT 2.5 +125 -170 41.4% 40.4% 2.29 17.0 (2.1) — -9.1% 3 SOG
SEA vs CGY 8:00 PM CT 2.5 +140 -190 38.9% 36.2% 2.05 21.5 (2.6) — -13.2% 4 SOG

Click a row for the shot distribution and model inputs. Hard Rock lines only. Model fitted through 2026-10-18.