How NHL Predictions Work
Full methodology · Data sources · Limitations
OVERVIEW
SandmanEdge uses a two-stage prediction pipeline. First, a statistical confidence engine scores the matchup using 20 weighted factors from the database. That score is passed to the SandmanEdge engine along with detailed team and player data, which generates the final picks, reasoning, and score prediction. Neither stage should be used for real betting decisions.
STAGE 1 — STATISTICAL CONFIDENCE SCORE
Before calling the SandmanEdge engine, we calculate a Stat Score from 52–85% representing the home team's statistical edge. This is a pure formula — no AI involved. It's built from 20 weighted factors (max 93 pts above the 50-point baseline). The engine then reads this score alongside all the detailed context and outputs its own Engine Confidence — which can differ significantly when it identifies things the formula missed, like narrative momentum, travel fatigue, or a team hiding injuries.
FACTORS (hover each for details in the Score Breakdown):
1
Net Rating
±10 pts
Primary efficiency signal: goals scored minus goals allowed per game. The single best predictor of team quality. A +1.5 net team vs a -0.5 net team earns the full swing. Uses real last-20 game defensive data when available.
2
Win %
±8 pts
Season win percentage differential. A 65% win-rate team vs a 45% team earns the full ±8. Slightly reduced — win% alone can be inflated by schedule strength, which is why Net Rating carries more weight.
3
Form (L5)
±8 pts
Wins in each team's last 5 completed games. A 5-0 team vs a 0-5 team earns the full ±8. Heavily weighted because recent form reflects current momentum, injuries, and line combinations far better than season averages.
4
Injuries
±10 pts
Tiered player value model. Goalie Out = 8 pts penalty, Top-6 Forward/Top-4 D Out = 3.5, Second-line = 2.0, Third/Fourth-line = 1.0. Multiplied by status: Out×1.0, Doubtful×0.75, Questionable×0.45. Goalie injuries are heavily weighted as they are the most impactful position. Capped at 10 per team.
5
Defense
±6 pts
Goals against per game over the last 20 games. Every 0.5 GAA difference in defensive quality = ±2 pts, capped at ±6. Only applied when real game-log data is available — season stat estimates are skipped.
6
Special Teams
±6 pts
Combined Power Play % and Penalty Kill % differential. A team with 25% PP and 85% PK vs 18% PP and 78% PK earns significant edge. Special teams win playoff series and close games. Every 5% net advantage = ±2 pts, capped at ±6.
7
Rest
±4 pts
Days of rest between games. A back-to-back team (1 day rest) is penalized vs a rested team (3+ days). Full ±4 swing for back-to-back vs well-rested opponent. Rest fatigue is critical in hockey due to physical demands.
8
Faceoff Win %
±4 pts
Faceoff win percentage differential. Winning faceoffs controls possession and dictates play flow. Every 3% FO% advantage = ±2 pts, capped at ±4. Critical in defensive zone draws and last-minute situations.
9
Shot Quality
±4 pts
Combined shooting % and save % differential. A team that scores on 10% of shots vs 8% while saving .920 vs .900 has significant edge. Every 2% net advantage = ±2 pts, capped at ±4.
10
Clutch
±3 pts
Win % in games decided by 1 goal (minimum 4 close games required). Captures late-game composure and goalie performance when it matters most. Capped at ±3 because clutch sample sizes are inherently small.
11
Goalie Matchup
±3 pts
Starting goalie save percentage and GAA differential. Elite starter (.920+ SV%, <2.5 GAA) vs backup (.900, 3.0+ GAA) = ±3. Goalie quality often decides NHL games. Based on season stats when starter is known.
12
Travel Fatigue
±5 pts
Real travel distance between arenas using GPS coordinates. Cross-country trips (2000+ miles) = -4 to -5 for the away team. Regional hops (<500 miles) = -1. Home team on a 4+ game homestand gets +1. Based on actual arena coordinates.
13
Line Depth
±4 pts
Scoring distribution across lines. Teams with balanced scoring (3+ players with 15+ goals) vs top-heavy teams (one 40-goal scorer, rest under 10) have more sustained offense. Every 0.3 goals/game depth advantage = ±2 pts, capped at ±4.
14
Home Ice
+4 flat
Flat bonus applied to the home team on every prediction. NHL home teams win roughly 55% of games historically. Last line change advantage and crowd energy matter.
15
Str. of Schedule
±4 pts
Average opponent win% across all completed games. Teams with .540+ SOS have been tested against winning teams; .460- SOS indicates a soft schedule. Every 4% SOS gap = ±2 pts, capped at ±4.
16
Schedule Density
±3 pts
Games played in last 7 days. NHL average is ~3.5 games/week. Teams playing 5+ games in 7 days face cumulative fatigue. 5+ = heavy, 4 = compressed, ≤2 = light. Differential between teams.
17
Momentum
±3 pts
L10 vs L11-30 trend direction. Improving teams (better recent win% and margin) get a boost; declining teams penalized. Captures mid-season surges and slumps in NHL.
18
Fatigue Stack
±2 pts
Compound modifier when rest + travel + density all stack negatively. 3 flags vs 0-1 = ±2; 2 flags vs 0 = ±1. Captures compounding fatigue beyond individual factors.
19
Pace
±2 pts
Pace differential based on average game totals (goals). Fast-paced games (>6.5 goals) vs slow (<5.5) get an edge. Captures tempo mismatch in NHL.
20
Vegas (30%)
blend
Vegas implied win probability blended at 30% weight into the final score. Calculated from moneylines: a -300 favorite implies ~75% win probability. This blend anchors extreme statistical outliers toward market consensus. The other 70% is our stat formula.
The raw score starts at 50 and all factors are added or subtracted. This score is passed to the SandmanEdge engine as a starting point, not a final answer.
STAGE 2 — SANDMANEDGE ANALYSIS
The SandmanEdge engine receives all available data and generates a structured prediction. Here is exactly what data is analyzed:
→ Team Season Stats
Win-loss-OTL record, goals per game, goals against, shots, save %, shooting %, power play %, penalty kill %, faceoff win %. All per-game rates.
→ Home / Away Splits
Each team's record, scoring average, and scoring margin split by home vs away games. Reveals if a team performs significantly differently at home — some teams have massive home/away splits that the overall record masks.
→ Goalie Matchup
Starting goalie save % and GAA differential. Confirmed starters (from SportsDataIO) are preferred; falls back to best goalie by SV%. The goalie matchup carries ±5 pts — a .925 SV% starter vs a .900 backup is a major edge.
→ Special Teams
Power play % and penalty kill % differentials. A team with 25% PP and 82% PK vs 18% PP and 76% PK has a significant special teams edge that often decides close games.
→ Injury Report
All players listed as Out, Doubtful, or Questionable with position and body part affected. Injuries are sorted by player importance so the most impactful absences appear first.
→ Recent Form
Results, scores, and opponents from each team's last 5 completed games. Context on momentum and recent schedule difficulty.
→ Head-to-Head History
Last 5 meetings between these two teams with dates, scores, and winner. Some teams have significant H2H edges regardless of overall record.
→ Rest & Fatigue
Days since each team's last game plus travel distance (GPS-based) between arenas. Back-to-backs, cross-country trips, and compressed schedules are all factored in.
→ Divisional Context
Matchup type detection — divisional (high familiarity, rivalry intensity), conference, or interconference. Divisional matchups weight H2H and trends more heavily.
→ Clutch Record
Win % in close games (1-goal margin). Some teams consistently win close games while others collapse.
→ Vegas Lines
Actual moneyline, spread, and over/under from SportsDataIO. The engine evaluates whether the predicted margin supports or challenges the spread.
→ Calibration Feedback
The engine's recent accuracy is fed back in: ML/ATS/O&U records, accuracy by confidence bucket, and average score deviation. If recent predictions are off, the engine self-corrects.
→ Statistical Confidence Score
The Stage 1 score (52–85%) from 20 weighted factors is passed to the engine as a starting point, blended with 30% Vegas implied probability.
→ Advanced Statistical Models
Four independent models run alongside the confidence engine: ELO ratings (chess-style power ratings updated after each game), Pythagorean W% (expected win rate from points scored/allowed), Log5 (head-to-head probability from each team's true strength), and an Ensemble that blends all models with Vegas implied probability. These are displayed in the Advanced Models card below the Score Breakdown.
→ Adaptive Factor Weights
The engine tracks which confidence factors historically correlate with correct vs. incorrect predictions. Factors that consistently predict well get boosted (up to 1.5x), while unreliable factors get dampened (down to 0.5x). This self-tuning requires 20+ graded predictions to activate.
→ Closing Line Value (CLV)
After games are graded, the system compares the lines at prediction time to the closing lines. Consistently beating the closing line (positive CLV) indicates genuine edge over the market. Track CLV trends on the History page's CLV Tracker tab.
HOW EACH PICK IS GENERATED
MONEYLINE
SandmanEdge predicts the winner and confidence percentage. The moneyline odds shown are calculated from the engine's confidence using standard probability-to-odds conversion — they are our model's implied odds, not the sportsbook's line.
PUCK LINE
The puck line displayed is the real Vegas line from SportsDataIO. If the puck line is -1.5 and the engine predicts a 2-goal win, the favorite covers. The line never changes between predictions — only the cover pick changes based on the engine's score prediction.
OVER / UNDER
SandmanEdge predicts a final score for both teams. The predicted total is compared to the Vegas O/U line. Confidence is based on how far the predicted total deviates from the line. Confidence is capped at 75% because totals are notoriously difficult to predict.
LOW CONFIDENCE FLAG
The engine flags low_confidence: true when it detects significant uncertainty — for example, key injury statuses that are listed as Questionable (could play or not), very evenly matched teams where the data is inconclusive, or missing data for a key player. When flagged, a gold warning banner appears above the picks. This is SandmanEdge being honest about its own limitations rather than always projecting false certainty.
KNOWN LIMITATIONS
—
Player stats require game logs to be refreshed regularly. If logs are stale, last-5-game averages may not reflect current form.
—
Opponent points per game (defensive rating) may be null if the SQL population query has not been run. This reduces the accuracy of the scoring margin factor.
—
The pace estimate is based on combined game totals, not true possession count. It is an approximation.
—
Vegas lines (spread, moneyline, O/U) are only as current as the last data refresh. Lines can move significantly on game day.
—
SandmanEdge's analysis reflects the data it is given — garbage in, garbage out. Stale injuries or missing player logs will hurt prediction quality.
—
No model can consistently predict = strtoupper($sport) ?> games at better than ~60% accuracy over a full season. Anyone claiming otherwise is misleading you.
SandmanEdge Prediction Engine · For entertainment purposes only · Not financial or betting advice
Select a Game to Analyze
Last refresh: 11:39 AM EDT