NHL Player Props Research Pipeline — Council Ruling

Date: 2026-04-01 Process: Full 5-phase council (Advisory → Anonymization → Peer Review → Chairman Synthesis → Boss Ruling) Advisors: Opus, Sonnet, Gemini 3.1 Pro, Grok 4.20 Reasoning, gpt-oss-120b Winner: Sonnet (3 of 5 peer review votes; gpt-oss got 2) Status: PENDING BOSS RULING on open questions


COUNCIL SUMMARY

Where Advisors Agreed (Consensus)

  1. Player matchup cards must be separate for skaters vs goalies — different data needs entirely
  2. 7 edge scanners required — one per prop type (Goals, Assists, Points, SOG, Saves, Anytime GS, First Goal)
  3. Poisson distribution for goals with zero-inflated variant for low-usage players
  4. FanDuel alt lines are the foundation for building probability curves per prop
  5. Goalie change cascades differently per prop — saves props change drastically, skater props change based on opposing goalie quality
  6. Power play assignment is the #1 individual intelligence variable — PP1 players have 30-65% higher goal/assist/point production per minute
  7. Multiplicative adjustments consistent with game desk ruling
  8. IntelAdjustment JSON format with audit trail for every prop adjustment
  9. 3-pass research schedule aligned with game desk (morning skate, afternoon, pre-game)

Where Advisors Disagreed

  1. Distribution for shots on goal: gpt-oss says Negative Binomial (for over-dispersion), Gemini says Normal, Sonnet says Poisson-adjusted. Council consensus: Negative Binomial is correct — shots have higher variance than goals.
  2. Distribution for saves: gpt-oss says Beta-Binomial, Gemini says Normal/Skew-Normal, Sonnet says Normal with goalie-specific parameters. Council consensus: Normal is pragmatic for saves (high count, roughly symmetric).
  3. Points distribution: gpt-oss proposes Skellam/Compound Poisson (mathematically rigorous), Sonnet proposes Monte Carlo simulation with ~0.4 correlation between goals and assists. Council consensus: Monte Carlo with correlation is more practical and correct.
  4. Database engine: gpt-oss recommends PostgreSQL, others assume SQLite. For player props with high-frequency alt-line ingestion, PostgreSQL or SQLite WAL is needed.

Strongest Argument (from peer review)

Sonnet's design is the most operationally deployable:

Biggest Blind Spot (unanimous)

Gemini (Advisor D): All 5 reviewers flagged Gemini as weakest. Database schema was a sketch with ellipses, edge scanner design lacked fitting methods and sample size requirements, research queries were generic and wouldn't return useful results from actual beat reporter searches.

What Everyone Missed (from peer reviews)

Five critical gaps no advisor addressed:

  1. Kalshi market structure — Kalshi is an exchange with order books, not a bookmaker. Liquidity is thin on NHL player props. Need: liquidity threshold, bid-ask spread cost in edge calculation, price staleness detection.

  2. Portfolio risk across correlated props — Betting Goals + Assists + Points + Anytime GS on the same player is not 4 independent bets. Need: correlation matrix, exposure limits per player/line/game, aggregate risk dashboard.

  3. Empty net goals and 3-on-3 overtime — 10-15% of goals scored on empty nets. 20-25% of games go to OT. Both inflate scoring props for star players. Need: ENG frequency by team, P(overtime) from game desk, TOI adjustment for 3v3.

  4. Price staleness and edge timing — Edge found at 2 PM may be gone by 3:30 PM. Need: timestamp on every edge calculation, staleness threshold, real-time Kalshi price recheck before verdict.

  5. Model calibration loop — No advisor designed a feedback system to check if Poisson/NB parameters stay accurate over time. Need: weekly calibration plots, Brier scores, rolling Sharpe tracking.


BUILD PLAN

Phase 1: Player Data Foundation

Phase 2: Matchup Cards

Skater Matchup Card:

PLAYER: [Name] | POS: [C/LW/RW/D] | TEAM: [vs OPP]
LINE: [1st/2nd/3rd/4th] | PP: [PP1/PP2/None] | Confirmed: [Y/N/Expected]

RECENT FORM (Last 10 GP):
  Goals: [avg] | Assists: [avg] | Points: [avg] | SOG: [avg] | TOI: [avg]
  PP Goals: [n] | PP Points: [n] | PP TOI/G: [avg]

SEASON RATES (per 60 min):
  Goals/60: [rate] | Assists/60: [rate] | Points/60: [rate] | Shots/60: [rate]

MATCHUP CONTEXT:
  Opposing Goalie: [Name] | SV%: [season] | SV% Last 10: [recent]
  Opp GA/G: [team avg] | Opp SA/G: [shots allowed — for SOG context]
  Opp PK%: [penalty kill — for PP production context]

INTELLIGENCE:
  [Research findings tagged CRITICAL/MODERATE/CONTEXT]
  [Line combo changes, PP unit changes, injury status]

Goalie Matchup Card:

GOALIE: [Name] | TEAM: [vs OPP]
STATUS: [Confirmed/Expected/Unconfirmed] | Source: [DailyFaceoff/BeatReporter]

RECENT FORM (Last 5 Starts):
  SV%: [avg] | SA/G: [shots faced] | Saves/G: [avg] | GAA: [avg]

SEASON:
  SV%: [season] | GSAx: [goals saved above expected] | GP: [games]

SAVES CONTEXT:
  Opp GF/G: [goals for] | Opp SF/G: [shots for — drives saves volume]
  Opp xGF/G: [expected goals — drives saves quality]
  Opp PP%: [power play — more PPs = more shots on goal]

WORKLOAD:
  Starts last 7d: [n] | Back-to-back: [Y/N] | Fatigue score: [composite]

INTELLIGENCE:
  [Research findings]

Phase 3: Edge Scanners (7 scanners)

Common engine:

Per-prop scanner specifics:

Prop Distribution Key Parameters Unique Logic
Goals Poisson (zero-inflated for 4th liners) λ from goals/60 × projected TOI × matchup multiplier Goalie quality adjustment, PP time boost
Assists Poisson λ from assists/60 × projected TOI × line chemistry factor PP quarterback role multiplier, linemate shooting talent
Points Monte Carlo (10K sims) Correlated goals + assists draws (r ≈ 0.4) Joint distribution, not independent sum
Shots on Goal Negative Binomial μ from shots/60 × TOI, overdispersion k from player history Coaching system (shot-heavy vs pass-first), matchup pace
Saves Normal μ from opp shots/G × goalie SV%, σ from historical variance Opponent shot volume is the primary driver, goalie pull caps upside
Anytime GS Bernoulli P = 1 - P(0 goals from Poisson) Derived from goals scanner, not independent model
First Goal Weighted Bernoulli P(first goal) = P(any goal) × first-period scoring share × lineup position Opening faceoff team boost, first-shift deployment, low sample sizes

Phase 4: Research Pipeline

Prop-specific queries (beyond game desk queries):

How research cascades per prop type on goalie change:

On player scratch:

Phase 5: Database Schema

Tables needed:

  1. nhl_player_game_logs — G, A, P, SOG, TOI, PP_TOI, line, opponent, date
  2. nhl_player_baselines — rolling averages, EWMA rates, season totals
  3. nhl_player_matchup_cards — generated card content per player per game date
  4. nhl_prop_research_findings — IntelAdjustment records for prop-specific intelligence
  5. nhl_prop_edge_results — scanner output per player per prop per game
  6. nhl_prop_alt_lines — FanDuel/DK alt line prices per player per prop
  7. nhl_prop_results — actual outcomes (for calibration: did the over hit?)
  8. nhl_goalie_saves_context — opponent shot volume, quality metrics per goalie matchup
  9. nhl_prop_audit_trail — which finding caused which adjustment to which prop

Phase 6: Dashboard

Boss dashboard views:


OPEN QUESTIONS FOR BOSS RULING

  1. Portfolio limits: Maximum exposure per player across all prop types? Suggested: 5% of daily bankroll per player, 15% per game.

  2. Empty net goal handling: Should the goals/points/anytime GS model explicitly incorporate P(empty net) based on game state projections, or treat it as noise? Gemini reviewer flagged this as a major gap.

  3. Overtime inflation: Should we adjust TOI projections and scoring rates for P(overtime)? 20-25% of games go to OT, 3v3 OT has ~3x the scoring rate of 5v5.

  4. Kalshi liquidity threshold: Minimum Kalshi volume/open interest to flag a prop edge as tradeable? Below this threshold, edge exists but can't be executed.

  5. Price staleness window: How old can an edge calculation be before it must be rechecked? Suggested: 45 minutes maximum.

  6. Calibration cadence: Weekly calibration review, or more/less frequent?


COUNCIL METADATA

Detail Value
Council date 2026-04-01
Advisory responses 5 (all completed)
Peer reviews 5 (all completed)
Strongest advisor Sonnet (3/5 votes)
Runner-up gpt-oss (2/5 votes)
Biggest blind spot Gemini (5/5 votes — weakest)
Full council data /home/ubuntu/edgeclaw/data/councils/2026-04-01/nhl-player-props-research/
Source: ~/edgeclaw/results/panel-results/nhl-player-props-research-ruling.md