Panel Ruling: NBA Player Props Research & Intelligence Pipeline
Date: 2026-03-31
Panel: Opus 4.6, Sonnet 4.6, Gemini 3.1 Pro, Grok 3, GPT-4.1 (via OpenRouter)
Topic: How should research/intel work for the NBA Player Props desk
Winner: Opus (Advisor B) — scored 1st by multiple reviewers
Consensus Decisions (all 5 advisors agree)
1. Separate Pipeline
Build a separate player props research pipeline, not an extension of the team module. Player props research has different timing, different queries, and different output format than team-level research.
2. Multi-Pass Timing
Run multiple passes, not a single pre-game sweep:
| Pass |
Time |
Purpose |
| Early scan |
~2PM ET |
Injury report drops, initial lineup intel |
| Main pass |
~5PM ET |
Beat reporter updates, rotation news, referee assignments |
| Late sweep |
~6:15PM ET |
Final injury decisions, late scratches |
| Event-driven |
On trigger |
Fires immediately when team module confirms a player OUT |
3. Hybrid Auto-Adjust with Confidence Gating
- AUTO-ADJUST (no human review): Confirmed OUT status, official minutes restrictions, verified lineup changes
- FLAG for review: Ambiguous injury language ("questionable," "game-time decision"), narrative/rumor intel, coaching hints
- Cap: No single auto-adjustment exceeds 20% on any parameter
4. Minutes-Based Scaling (sqrt rule)
When a player's projected minutes change:
- Mean scales proportionally:
new_mean = base_mean * (new_minutes / base_minutes)
- Stdev scales by square root:
new_stdev = base_stdev * sqrt(new_minutes / base_minutes)
- This is mathematically correct — variance in counting stats scales linearly with opportunity, so stdev scales by sqrt. Linear stdev scaling (which some advisors proposed) understates uncertainty for minutes-restricted players.
5. Usage Cascade Model
When a teammate is confirmed OUT:
- Redistribution factor: Only ~60% of a missing player's usage gets redistributed (not 100%)
- Stat-specific sensitivity multipliers: Points 1.0x, Assists 0.7x, Rebounds 0.4x (validates against existing 3012-row game log)
- Rebound redistribution is NOT even: 70% to direct replacement, 20% other frontcourt, 10% guards
- Formula:
adjusted_stat = base_stat + (missing_player_stat * absorption_rate * redistribution_factor * sensitivity_multiplier)
6. Key Data Sources
| Source |
Type |
Cost |
| NBA official injury report |
Mandatory |
Free |
| Beat reporter X/Twitter feeds |
High value |
Free (scrape) |
| Referee assignment databases |
High value |
Free |
| Coach pre-game media availability |
Medium value |
Free (transcripts) |
| DFS ownership projections |
Contrarian signal |
Free/cheap |
| Practice reports |
SKIP — too noisy |
N/A |
7. Output Format
Structured JSON extraction from LLM (not free-text parsing):
interface IntelAdjustment {
player_name: string;
stat_type: string;
adjustment_type: 'mean_shift' | 'variance_shift' | 'minutes_cap';
magnitude: number;
confidence: 'HIGH' | 'MEDIUM' | 'LOW';
source: string;
timestamp: string;
}
Key Unique Insights
Opus (winner):
- Shared-runner/pluggable-profile design that scales to all 13 desks
- Sigma scales with sqrt of minutes ratio (mathematically correct)
- 0.6 redistribution factor for absent player usage
- "Kill switch" Telegram command (
freeze props) to instantly disable all auto-adjustments
- Blowout risk should both reduce minutes AND increase sigma by 1.15x
Sonnet:
- Stat-specific sensitivity multipliers (0.4 reb, 0.7 ast) with regression validation against game logs
- Milestone effects as mixture distribution (90% base, 10% "milestone push" with mean+3, halved stdev)
- Confidence gating with clear HIGH/MEDIUM/LOW action rules
Gemini:
- Response was truncated (cut off) — limited evaluation possible
Grok:
- Solid foundational coverage, correct on hybrid auto-adjust and 20% cap
- DFS ownership as sentiment overlay
GPT-4.1:
- Event-driven PIM should subscribe to team module output as trigger
- Coach pre-game media transcripts as specific query target
Blind Spots (all 5 missed)
- Live in-game research for second-half props or live betting adjustments — all advisors focused exclusively on pre-game research
Raw council files: /home/ubuntu/edgeclaw/data/councils/2026-03-31/player-props-research/
Source: ~/edgeclaw/results/panel-results/player-props-research-ruling.md