Panel Ruling: NBA Player Props Data Audit & Custom Metrics
Date: 2026-03-31
Panel: Opus 4.6, Sonnet 4.6, Gemini 3.1 Pro, Grok 3, GPT-4.1 (via OpenRouter)
Topic: Audit the NBA player props data collection, identify gaps, and recommend custom metrics
Winner: Opus (Advisor E) — 24/25 points
Scoreboard
| Model |
Advisor ID |
Score |
| Opus 4.6 |
E |
24/25 (1st by 4 reviewers) |
| GPT-4.1 |
D |
~18/25 |
| Sonnet 4.6 |
B |
~16/25 |
| Gemini 3.1 Pro |
C |
~13/25 |
| Grok 3 |
A |
~12/25 |
Consensus (3+ advisors agree)
Missing Data — Must Collect
- Usage Rate (USG%) — The single most important missing metric. Formula:
100 * ((FGA + 0.44*FTA + TOV) * (Team_Minutes / 5)) / (Minutes * (Team_FGA + 0.44*Team_FTA + Team_TOV)). Source: computable from existing game logs + team box scores.
- True Shooting % (TS%) —
PTS / (2 * (FGA + 0.44 * FTA)). Computable from existing data.
- Per-36 and Per-100 Possession Rates — Raw material for minutes-adjusted projections. Isolates pace effects.
- Assist Rate, Rebound Rate — Position-relative capture rates, independent of pace/minutes.
- On/Off Splits — How Player X's stats change when Teammate Y is on/off court. Source: NBA Stats API
playerdashonoffdetails (free).
- Player Tracking Data — Touches, drives, potential assists, hustle stats. Source: NBA Advanced Stats API (free, rate-limited).
- Lineup/Stint Data — On/off per 100, minutes in 5-man units. Source: Cleaning the Glass (~$25/mo) or NBA Stats API.
Matchup Adjustments
- Use Pace-Adjusted Defense vs Position (DvP), not raw "team allows X to SFs"
- Group players by offensive role (Primary Ball Handler, Wing Scorer, Spot-up, Rim Roller, Versatile Big), not just position
- Opponent Defense Multiplier with 30-day rolling window
- Shrinkage factor (lambda 0.2-0.4) to blend player-specific and population priors
Custom Metrics to Build
- Minutes Projection Model — Highest ROI gap. Weighted: 40% L5 + 30% L10 + 20% L20 + 10% season. Factors: B2B, rest days, opponent pace, blowout probability.
- Pace + Usage Adjusted Projections —
Player_Rate_per36 / 36 * Projected_Minutes * (Tonight_Pace / League_Pace) * Usage_Factor
- B2B/Fatigue Multipliers — Player-specific, not population averages. Average impacts: Points -4.2%, Assists -6.8%, Threes -7.4%, Rebounds -2.1%.
- Blowout Risk Adjustment — Reduce projected minutes 35-55% for non-stars in projected blowouts (>12 pt lead in 4Q).
- Variance Profiles — Player-specific over-dispersion parameters. Profile classes: consistent (CV<0.25), volatile, boom-bust (CV>0.5).
- Correlation Matrix — Pairwise stat correlations per player for PRA/combo/double-double pricing.
Distribution Upgrades
- Zero-Inflated Poisson/NegBin for blocks, steals, and low-volume threes
- Player-specific dispersion via Bayesian shrinkage (not league-wide constants)
- Matchup-dependent variance — inflate sigma vs elite defenders or weak rebounding teams
- PIT calibration — probability integral transform test + Brier scores vs FD implied
Noise to Trim
- Raw plus_minus (extremely noisy)
- Single-game fg3_pct or ft_pct (almost pure noise)
- Season averages without recency weighting
- Generic team off/def rating without pace or role adjustment
Key Unique Insights
Opus (winner): The event-driven snapshot window — the 30-60 minute lag after a star is ruled out is the most exploitable moment in player props. Also: Bayesian shrinkage for player sigma, cleanest usage-shift model.
GPT-4.1: 13-metric audit table, 7-step matchup process with shrinkage tuning, season-stage adjustment (league priors early, player-specific after game 50).
Sonnet: Flagged Normal distribution for points as inappropriate — should be skewed/mixture. Sportsbook-specific line behavior (DK/FD/PrizePicks move differently).
Gemini: Skewness and kurtosis modeling for tail events, Kalshi alt-line specific optimization.
Grok: DFS ownership as contrarian signal, five named custom metrics.
Blind Spots (all 5 missed)
- Referee assignment data — NBA ref crews have 15-20% variance in foul rates, directly affecting points/assists/rebounds/steals props. Free data, available ~9AM ET game day.
- Garbage-time stat inflation — Bench players padding stats in blowouts contaminates rolling averages. Need score-differential weighting.
- Roster transaction lag — Post-trade data reset windows are high-edge but no advisor specified how to handle them.
- Book-specific limit structures — A +EV prop is useless if the book limits you to $50 after one winning month.
Raw council files: /home/ubuntu/edgeclaw/data/councils/2026-03-31/player-props-audit/
Source: ~/edgeclaw/results/panel-results/player-props-data-audit-ruling.md