← 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
8
Lines priced
105
Best bets
9
Leans
16
Updated
Oct 19, 6:03 AM CT
backtest · priced at close

Best Bets

Brent Burns
CAR @ NJD · 6:00 PM CT · D
UNDER 1.5
Price+135
Model46.6%
Book39.8%
EV+9.6%
Fair+115
Stake1.8%
0
1
2
3
4
5
6
7
8
9
10+
Proj 1.63 SOG · 20.2 min (1.3 PP) L 3 SOG · -1.00u
Roman Josi
NSH @ STL · 7:00 PM CT · D
UNDER 2.5
Price+125
Model48.3%
Book41.7%
EV+8.6%
Fair+107
Stake1.7%
0
1
2
3
4
5
6
7
8
9
10+
Proj 2.56 SOG · 22.6 min (2.7 PP) L 5 SOG · -1.00u
David Pastrnak
BOS @ CBJ · 6:00 PM CT · F
UNDER 3.5
Price+115
Model49.2%
Book43.7%
EV+5.8%
Fair+103
Stake1.3%
0
1
2
3
4
5
6
7
8
9
10+
Proj 3.54 SOG · 18.5 min (3.1 PP) role change L 6 SOG · -1.00u
Stefan Noesen
NJD vs CAR · 6:00 PM CT · F
UNDER 1.5
Price+135
Model45.0%
Book39.8%
EV+5.8%
Fair+122
Stake1.1%
0
1
2
3
4
5
6
7
8
9
10+
Proj 1.74 SOG · 16.1 min (2.8 PP) role change L 4 SOG · -1.00u
Brad Marchand
BOS @ CBJ · 6:00 PM CT · F
UNDER 2.5
Price+105
Model51.6%
Book45.5%
EV+5.7%
Fair-106
Stake1.4%
0
1
2
3
4
5
6
7
8
9
10+
Proj 2.43 SOG · 18.9 min (2.9 PP) W 2 SOG · +1.05u
Filip Forsberg
NSH @ STL · 7:00 PM CT · F
UNDER 3.5
Price-115
Model56.5%
Book50.0%
EV+5.6%
Fair-130
Stake1.6%
0
1
2
3
4
5
6
7
8
9
10+
Proj 3.17 SOG · 18.3 min (2.7 PP) W 2 SOG · +0.87u
Matt Boldy
MIN @ DAL · 7:00 PM CT · F
UNDER 3.5
Price-170
Model66.4%
Book58.6%
EV+5.4%
Fair-197
Stake2.3%
0
1
2
3
4
5
6
7
8
9
10+
Proj 2.65 SOG · 19.0 min (3.1 PP) W 1 SOG · +0.59u
Wyatt Johnston
DAL vs MIN · 7:00 PM CT · F
UNDER 2.5
Price+120
Model47.8%
Book42.5%
EV+5.1%
Fair+109
Stake1.1%
0
1
2
3
4
5
6
7
8
9
10+
Proj 2.64 SOG · 18.6 min (2.7 PP) W 2 SOG · +1.20u
Shayne Gostisbehere
CAR @ NJD · 6:00 PM CT · D
UNDER 1.5
Price+110
Model50.0%
Book44.3%
EV+5.1%
Fair-100
Stake1.2%
0
1
2
3
4
5
6
7
8
9
10+
Proj 1.59 SOG · 19.3 min (3.4 PP) W 0 SOG · +1.10u

Full Board

PlayerGameLineOverUnder BookModelProjTOI (PP) PickEVResult
CHI @ BUF 6:00 PM CT 1.5 -200 +145 62.0% 62.4% 2.16 25.0 (2.6) — -6.4% 2 SOG
CHI @ BUF 6:00 PM CT 1.5 -170 +125 58.6% 61.3% 2.24 16.0 (2.1) — -2.6% 1 SOG
CHI @ BUF 6:00 PM CT 1.5 -150 +115 56.3% 59.2% 2.10 15.8 (1.4) — -1.4% 0 SOG
CHI @ BUF 6:00 PM CT 1.5 -145 +110 55.4% 57.1% 2.01 17.3 (2.7) — -3.6% 3 SOG
BUF vs CHI 6:00 PM CT 2.5 -160 +120 57.5% 53.5% 2.71 24.7 (3.2) UNDER lean +2.2% L 3 SOG · -1.00u
BUF vs CHI 6:00 PM CT 1.5 -130 +100 53.1% 52.1% 1.74 23.2 (1.9) — -7.9% 3 SOG
CHI @ BUF 6:00 PM CT 2.5 +100 -135 46.5% 48.2% 2.70 21.4 (2.7) — -3.7% 4 SOG
BUF vs CHI 6:00 PM CT 2.5 -120 -110 51.0% 47.7% 2.49 17.6 (2.8) — -12.6% 2 SOG
BUF vs CHI 6:00 PM CT 2.5 +105 -140 45.5% 44.0% 2.39 18.3 (2.2) — -9.7% 3 SOG
BUF vs CHI 6:00 PM CT 2.5 +120 -160 42.5% 40.7% 2.28 16.9 (2.3) — -10.5% 1 SOG
BUF vs CHI 6:00 PM CT 2.5 +115 -155 43.4% 40.1% 2.21 15.4 (2.7) — -13.9% 1 SOG
BUF vs CHI 6:00 PM CT 3.5 +115 -155 43.4% 37.6% 2.94 17.8 (2.9) UNDER lean +2.6% W 1 SOG · +0.65u
BUF vs CHI 6:00 PM CT 2.5 +130 -170 40.9% 35.7% 1.95 15.5 (2.3) UNDER lean +2.2% L 4 SOG · -1.00u
BUF vs CHI 6:00 PM CT 2.5 +145 -190 38.4% 33.8% 1.90 14.2 (1.5) — -17.2% 2 SOG
DET vs TOR 6:00 PM CT 1.5 -185 +140 60.9% 60.8% 2.09 18.7 (3.1) — -6.3% 1 SOG
TOR @ DET 6:00 PM CT 1.5 -165 +125 58.4% 56.4% 1.88 21.1 (2.4) — -9.4% 1 SOG
DET vs TOR 6:00 PM CT 1.5 -145 +110 55.4% 55.7% 1.91 25.0 (3.0) — -5.8% 2 SOG
TOR @ DET 6:00 PM CT 2.5 -175 +130 59.4% 55.5% 2.82 18.6 (2.8) UNDER lean +2.3% W 0 SOG · +1.30u
DET vs TOR 6:00 PM CT 1.5 -145 +110 55.4% 54.9% 1.87 15.1 (2.0) — -7.2% 2 SOG
TOR @ DET 6:00 PM CT 1.5 -135 +100 53.5% 51.2% 1.69 13.9 (1.4) — -10.8% 2 SOG
DET vs TOR 6:00 PM CT 2.5 -120 -110 51.0% 49.1% 2.62 19.9 (3.1) — -9.9% 7 SOG
TOR @ DET 6:00 PM CT 3.5 -120 -110 51.0% 48.0% 3.50 20.2 (3.5) — -12.0% 0 SOG
DET vs TOR 6:00 PM CT 2.5 -105 -125 48.0% 46.0% 2.48 16.8 (2.9) — -10.2% 4 SOG
TOR @ DET 6:00 PM CT 2.5 -105 -125 48.0% 44.2% 2.36 20.6 (3.0) — -13.7% 5 SOG
DET vs TOR 6:00 PM CT 2.5 +115 -150 43.7% 41.6% 2.31 16.8 (2.9) — -10.5% 2 SOG
TOR @ DET 6:00 PM CT 2.5 +105 -145 45.2% 41.0% 2.22 14.5 (0.9) — -15.9% 2 SOG
TOR @ DET 6:00 PM CT 2.5 +125 -170 41.4% 37.2% 2.07 14.5 (1.5) — -16.4% 1 SOG
NJD vs CAR 6:00 PM CT 1.5 -180 +135 60.2% 55.0% 1.74 16.1 (2.8) UNDER best +5.8% L 4 SOG · -1.00u
CAR @ NJD 6:00 PM CT 1.5 -180 +135 60.2% 53.4% 1.63 20.2 (1.3) UNDER best +9.6% L 3 SOG · -1.00u
CAR @ NJD 6:00 PM CT 1.5 -150 +110 55.8% 50.0% 1.59 19.3 (3.4) UNDER best +5.1% W 0 SOG · +1.10u
NJD vs CAR 6:00 PM CT 2.5 -140 +105 54.5% 49.2% 2.53 17.1 (1.8) UNDER lean +4.1% W 1 SOG · +1.05u
CAR @ NJD 6:00 PM CT 2.5 -105 -125 48.0% 44.4% 2.36 18.3 (3.4) — -13.3% 1 SOG
CAR @ NJD 6:00 PM CT 2.5 -115 -115 50.0% 44.4% 2.32 16.9 (3.3) UNDER lean +4.0% L 3 SOG · -1.00u
NJD vs CAR 6:00 PM CT 3.5 -110 -125 48.5% 44.2% 3.25 20.1 (3.5) — -15.6% 4 SOG
CAR @ NJD 6:00 PM CT 2.5 -115 -115 50.0% 43.9% 2.24 19.6 (3.3) UNDER lean +4.9% W 0 SOG · +0.87u
NJD vs CAR 6:00 PM CT 2.5 +105 -140 45.5% 42.2% 2.27 19.7 (3.0) — -13.4% 2 SOG
NJD vs CAR 6:00 PM CT 2.5 +115 -155 43.4% 41.1% 2.29 18.3 (3.1) — -11.7% 1 SOG
NJD vs CAR 6:00 PM CT 2.5 +120 -160 42.5% 40.9% 2.29 20.1 (3.1) — -10.1% 3 SOG
CAR @ NJD 6:00 PM CT 2.5 +130 -175 40.6% 36.0% 2.00 18.9 (3.3) — -17.1% 2 SOG
CBJ vs BOS 6:00 PM CT 1.5 -195 +145 61.8% 61.7% 2.16 17.7 (3.0) — -6.6% 5 SOG
BOS @ CBJ 6:00 PM CT 1.5 -190 +140 61.1% 60.3% 2.05 19.2 (2.7) — -8.0% 1 SOG
BOS @ CBJ 6:00 PM CT 1.5 -190 +140 61.1% 59.5% 1.98 16.5 (1.5) — -9.2% 1 SOG
BOS @ CBJ 6:00 PM CT 1.5 -195 +145 61.8% 58.5% 1.91 17.7 (2.9) — -11.5% 0 SOG
CBJ vs BOS 6:00 PM CT 2.5 -155 +120 57.2% 57.6% 3.08 27.2 (3.4) — -5.3% 6 SOG
BOS @ CBJ 6:00 PM CT 1.5 -165 +125 58.4% 56.1% 1.88 23.5 (3.0) — -9.9% 1 SOG
CBJ vs BOS 6:00 PM CT 1.5 -165 +125 58.4% 55.2% 1.83 17.0 (2.9) — -11.3% 3 SOG
CBJ vs BOS 6:00 PM CT 1.5 -160 +120 57.5% 54.9% 1.83 15.7 (1.6) — -10.8% 3 SOG
BOS @ CBJ 6:00 PM CT 3.5 -150 +115 56.3% 50.8% 3.54 18.5 (3.1) UNDER best +5.8% L 6 SOG · -1.00u
CBJ vs BOS 6:00 PM CT 2.5 -130 -105 52.5% 49.5% 2.62 19.1 (3.1) — -12.4% 3 SOG
BOS @ CBJ 6:00 PM CT 2.5 -140 +105 54.5% 48.4% 2.43 18.9 (2.9) UNDER best +5.7% W 2 SOG · +1.05u
CBJ vs BOS 6:00 PM CT 2.5 +110 -145 44.6% 44.3% 2.47 20.5 (3.0) — -6.9% 4 SOG
CBJ vs BOS 6:00 PM CT 2.5 +135 -180 39.8% 36.9% 2.08 17.1 (1.5) — -13.2% 1 SOG
STL vs NSH 7:00 PM CT 1.5 -190 +140 61.1% 59.6% 2.03 20.3 (3.0) — -9.1% 4 SOG
NSH @ STL 7:00 PM CT 1.5 -195 +145 61.8% 59.5% 1.99 21.2 (1.6) — -10.0% 2 SOG
STL vs NSH 7:00 PM CT 1.5 -150 +115 56.3% 59.3% 2.15 24.1 (2.3) — -1.2% 1 SOG
STL vs NSH 7:00 PM CT 1.5 -145 +110 55.4% 57.1% 1.97 16.8 (2.7) — -3.6% 0 SOG
NSH @ STL 7:00 PM CT 1.5 -150 +115 56.3% 55.7% 1.89 13.5 (1.6) — -7.1% 1 SOG
NSH @ STL 7:00 PM CT 1.5 -135 +105 54.1% 55.0% 1.88 18.6 (2.4) — -4.2% 3 SOG
STL vs NSH 7:00 PM CT 1.5 -140 +105 54.5% 54.6% 1.89 17.5 (1.6) — -6.5% 1 SOG
NSH @ STL 7:00 PM CT 2.5 -140 +105 54.5% 54.0% 2.88 18.6 (2.7) — -7.5% 2 SOG
STL vs NSH 7:00 PM CT 2.5 -135 +105 54.1% 52.3% 2.75 17.5 (2.8) — -8.9% 3 SOG
NSH @ STL 7:00 PM CT 2.5 -165 +125 58.4% 51.8% 2.56 22.6 (2.7) UNDER best +8.6% L 5 SOG · -1.00u
NSH @ STL 7:00 PM CT 2.5 +105 -140 45.5% 43.9% 2.39 18.1 (2.9) — -10.1% 3 SOG
NSH @ STL 7:00 PM CT 3.5 -115 -115 50.0% 43.5% 3.17 18.3 (2.7) UNDER best +5.6% W 2 SOG · +0.87u
STL vs NSH 7:00 PM CT 2.5 +120 -155 42.8% 40.6% 2.24 19.1 (2.7) — -10.8% 1 SOG
STL vs NSH 7:00 PM CT 2.5 +145 -195 38.2% 35.3% 2.06 16.2 (1.3) — -13.5% 5 SOG
MIN @ DAL 7:00 PM CT 1.5 -185 +135 60.4% 56.6% 1.86 14.8 (1.3) UNDER lean +2.1% L 3 SOG · -1.00u
DAL vs MIN 7:00 PM CT 1.5 -165 +125 58.4% 55.5% 1.84 16.9 (2.4) — -10.8% 1 SOG
DAL vs MIN 7:00 PM CT 1.5 -170 +130 59.2% 55.4% 1.81 15.1 (2.5) UNDER lean +2.6% W 0 SOG · +1.30u
DAL vs MIN 7:00 PM CT 2.5 -160 +120 57.5% 52.2% 2.64 18.6 (2.7) UNDER best +5.1% W 2 SOG · +1.20u
MIN @ DAL 7:00 PM CT 1.5 -150 +110 55.8% 51.7% 1.63 22.2 (2.7) — -13.9% 2 SOG
DAL vs MIN 7:00 PM CT 2.5 -110 -120 49.0% 43.3% 2.26 17.1 (2.8) UNDER lean +4.0% W 2 SOG · +0.83u
DAL vs MIN 7:00 PM CT 2.5 +100 -130 46.9% 41.1% 2.18 24.7 (3.5) UNDER lean +4.3% W 0 SOG · +0.77u
DAL vs MIN 7:00 PM CT 2.5 +130 -170 40.9% 39.3% 2.22 15.8 (2.0) — -9.6% 4 SOG
DAL vs MIN 7:00 PM CT 2.5 +120 -160 42.5% 37.8% 2.05 16.9 (2.5) — -16.9% 4 SOG
MIN @ DAL 7:00 PM CT 2.5 +120 -160 42.5% 36.4% 1.99 18.5 (2.9) UNDER lean +3.3% W 1 SOG · +0.63u
DAL vs MIN 7:00 PM CT 2.5 +145 -195 38.2% 34.4% 1.96 15.3 (2.1) — -15.8% 2 SOG
MIN @ DAL 7:00 PM CT 3.5 +125 -170 41.4% 33.6% 2.65 19.0 (3.1) UNDER best +5.4% W 1 SOG · +0.59u
MIN @ DAL 7:00 PM CT 2.5 +145 -195 38.2% 33.4% 1.92 19.3 (2.7) — -18.2% 0 SOG
DAL vs MIN 7:00 PM CT 2.5 +145 -195 38.2% 32.3% 1.85 23.0 (1.6) UNDER lean +2.5% L 3 SOG · -1.00u
UTA vs COL 8:30 PM CT 1.5 -180 +135 60.2% 60.5% 2.09 17.3 (2.9) — -6.0% 2 SOG
UTA vs COL 8:30 PM CT 1.5 -175 +130 59.4% 57.0% 1.87 25.6 (3.2) — -10.4% 1 SOG
COL @ UTA 8:30 PM CT 3.5 -160 +120 57.5% 53.8% 3.79 21.5 (4.2) — -12.6% 4 SOG
UTA vs COL 8:30 PM CT 2.5 -140 +105 54.5% 52.1% 2.71 19.0 (3.4) — -10.7% 2 SOG
COL @ UTA 8:30 PM CT 1.5 -125 -105 52.0% 52.1% 1.79 25.0 (1.7) — -6.2% 2 SOG
COL @ UTA 8:30 PM CT 2.5 -130 -105 52.5% 51.6% 2.74 20.9 (4.2) — -8.7% 3 SOG
COL @ UTA 8:30 PM CT 2.5 -130 +100 53.1% 50.3% 2.64 20.5 (3.8) — -11.0% 3 SOG
UTA vs COL 8:30 PM CT 2.5 -115 -115 50.0% 44.6% 2.34 16.3 (3.3) UNDER lean +3.5% L 5 SOG · -1.00u
UTA vs COL 8:30 PM CT 2.5 +125 -165 41.7% 40.5% 2.27 19.0 (3.3) — -9.0% 3 SOG
COL @ UTA 8:30 PM CT 2.5 +150 -200 37.5% 38.4% 2.26 21.2 (2.4) — -4.0% 4 SOG
COL @ UTA 8:30 PM CT 2.5 +145 -195 38.2% 35.9% 2.05 16.6 (3.1) — -12.2% 2 SOG
COL @ UTA 8:30 PM CT 3.5 +135 -180 39.8% 35.3% 2.81 25.6 (4.2) — -17.1% 4 SOG
VGK @ SJS 9:30 PM CT 1.5 -195 +145 61.8% 62.6% 2.20 19.3 (2.8) — -5.3% 4 SOG
VGK @ SJS 9:30 PM CT 1.5 -190 +140 61.1% 58.9% 1.97 22.6 (1.4) — -10.2% 3 SOG
VGK @ SJS 9:30 PM CT 1.5 -155 +115 56.7% 57.4% 1.96 22.6 (1.6) — -5.5% 3 SOG
SJS vs VGK 9:30 PM CT 2.5 -140 +105 54.5% 49.9% 2.58 16.4 (2.6) UNDER lean +2.7% L 3 SOG · -1.00u
VGK @ SJS 9:30 PM CT 2.5 -110 -120 49.0% 45.1% 2.38 18.1 (1.8) — -14.0% 5 SOG
VGK @ SJS 9:30 PM CT 3.5 +105 -135 45.9% 44.6% 3.39 20.5 (3.0) — -8.7% 2 SOG
VGK @ SJS 9:30 PM CT 2.5 +115 -150 43.7% 43.9% 2.48 15.8 (1.9) — -5.6% 4 SOG
VGK @ SJS 9:30 PM CT 2.5 -105 -125 48.0% 42.9% 2.26 17.4 (2.9) UNDER lean +2.8% W 1 SOG · +0.80u
SJS vs VGK 9:30 PM CT 2.5 +125 -165 41.7% 41.6% 2.36 21.8 (2.8) — -6.4% 4 SOG
SJS vs VGK 9:30 PM CT 2.5 +130 -175 40.6% 38.9% 2.18 17.8 (1.5) — -10.6% 3 SOG
VGK @ SJS 9:30 PM CT 2.5 +120 -165 42.2% 38.5% 2.13 21.4 (2.8) — -15.4% 3 SOG
SJS vs VGK 9:30 PM CT 3.5 +130 -170 40.9% 36.5% 2.91 20.3 (2.8) — -16.2% 2 SOG
VGK @ SJS 9:30 PM CT 2.5 +130 -175 40.6% 36.1% 2.00 14.8 (2.1) — -17.1% 0 SOG

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