NBA Player Props Strategy Spec

Version: 2.0 Updated: 2026-04-03 Status: DEPLOYED — all 6 prop scanners operational


OVERVIEW

The NBA Player Props desk prices every Kalshi player prop alt-line rung using probability curves built from FanDuel de-vigged anchor lines. DraftKings provides cross-validation. Edges are detected when model probability diverges from Kalshi price by more than 4 cents after the 7% fee.


PROP TYPES (6 scanners)

Prop Kalshi Series Distribution Status
Points KXNBAPTS Normal (sigma 6.5) DEPLOYED
Rebounds KXNBAREB NegBin (r=1.4) DEPLOYED
Assists KXNBAAST NegBin (r=1.4) DEPLOYED
Threes KXNBA3PT ZINB (r=1.5) DEPLOYED
Blocks KXNBABLK ZIP DEPLOYED
Steals KXNBASTL ZIP DEPLOYED

EDGE DETECTION FLOW

  1. Fetch latest FanDuel props (last 12h) from player_props table
  2. De-vig FD over/under odds to get fair over probability
  3. Cross-validate with DraftKings (flag divergence > 5 cents)
  4. Build probability curve using buildPropCurve() with stat-specific distribution
  5. Match against Kalshi alt-line rungs by player name + team + game date
  6. For each rung: calculate model probability via curve.exceedance(threshold - 1) (N+ format)
  7. Calculate net edge after 7% Kalshi fee
  8. Flag executable if net_edge >= 4 cents AND spread <= 10 cents

KEY PARAMETERS

Parameter Value
Min net edge 4 cents
Kalshi fee rate 7% on profit
Max spread 10 cents
Tail confidence High (0-2 rungs), Medium (3-4), Low (5+)
Kalshi format N+ (X or more, not greater than X)
Curve function curve.exceedance(threshold - 1)
FD anchor Shin de-vig method
Props direction YES/Over only (no Under on Kalshi)

DATA SOURCES

Edge Detection

Source Schedule Details
Prop Edge — Points 8AM/10AM/2PM/6PM + closing Normal distribution
Prop Edge — Rebounds Same NegBin distribution
Prop Edge — Assists Same NegBin distribution
Prop Edge — Threes Same Zero-inflated NegBin
Prop Edge — Blocks Same Zero-inflated Poisson
Prop Edge — Steals Same Zero-inflated Poisson
Prop Edge — All Same Combined view

Odds & Prices

Source Schedule Details
Kalshi NBA player props Every 30min PTS, REB, AST, STL, BLK, 3PT, combos, awards
FanDuel NBA Props (Odds API) 8AM/10AM/2PM/6PM + closing Sharp anchor — over/under with American odds
DraftKings NBA Props (Odds API) Same Cross-validation

Player Data

Source Schedule Details
BBRef Player Game Logs 11 AM daily Last 20+ games — PTS, REB, AST, STL, BLK, 3PM, MIN
NBA Stats API (NBAStuffer) 11 AM daily Season averages, usage rates
Player Advanced Stats (BBRef) 11 AM daily PER, TS%, usage, BPM, VORP — 721 players
Player Rolling Averages 11 AM daily L5, L10, L20, season averages
Player Injuries 11 AM + 5 PM Out/DTD/Questionable/Doubtful
ESPN BPI 11 AM daily Team pace, offensive/defensive ratings

Computed Analytics

Source Schedule Details
Player Prop Profiles 11 AM daily Per-player variance: mean, stdev, CV, sigma, distribution type, consistency class
Player Stat Correlations 11 AM daily Pairwise Pearson correlation — stat coupling for PRA modeling
Minutes Projections 11 AM daily Recency-weighted projection with trend slope
Player Rate Stats 11 AM daily Per-minute and per-possession rates
Matchup Adjustments 11 AM daily Opponent defense + pace multiplier applied to FD anchor line
Usage Cascade 11 AM daily Redistributes stats when a teammate is OUT

INTELLIGENCE PIPELINE (from council ruling)

Timing

Pass Time Purpose
Early scan ~2PM ET Injury report, initial intel
Main pass ~5PM ET Beat updates, rotation, referees
Late sweep ~6:15PM ET Final decisions, scratches
Event-driven On trigger Player OUT confirmation

Minutes-Based Adjustment

new_mean = base_mean * (new_minutes / base_minutes)
new_stdev = base_stdev * sqrt(new_minutes / base_minutes)

Usage Cascade (teammate OUT)

Confidence Gating


SETTLEMENT


FUTURE ENHANCEMENTS (not yet built)

Source: ~/edgeclaw/results/spec-panel/sports-desk/player-props-strategy.md