Version: 2.0 Updated: 2026-04-03 Status: DEPLOYED — all 6 prop scanners operational
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 | 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 |
player_props tablebuildPropCurve() with stat-specific distributioncurve.exceedance(threshold - 1) (N+ format)| 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) |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
new_mean = base_mean * (new_minutes / base_minutes)
new_stdev = base_stdev * sqrt(new_minutes / base_minutes)