DegenPredicts — NBA player props

Projections against Kalshi's prop ladders · updated 2026-10-31
☕ Buy me a coffee

Nothing here is staked, and nothing has a record against Kalshi yet. Each rung shows the model's own chance next to Kalshi's price. The price we publish leans on the market: Kalshi's number moved 25% of the way toward the model, until graded rungs show the model deserves more weight. A rung is marked value only when one side is at least 7% cheaper than that published price after Kalshi's fee, with the model between 20% and 80% and within 15 points of Kalshi's own price (a bigger disagreement usually means the market knows something the model doesn't). Every rung is logged and graded, and the record below fills in as games finish.

A player who doesn't play records nothing, so his overs lose. Probabilities are cut by the injury report, on the game board's own scale: Probable plays 90% of the time here, Day-to-day 60%, Questionable half, Doubtful a quarter. When a teammate is out, his shots and minutes go somewhere, and the projection knows it.

Graded so far

13463 rungs graded. Brier score (lower is better): model 0.1595, published 0.1546, Kalshi's own price 0.1558. The market's prices have been more accurate than the model's. The graded rungs support moving Kalshi's price 25% toward the model.

Value flags: 0-1 (0.0%), -0.19 per-contract units, line movement +21.5¢ toward the model.

Board

No props on the board right now. Kalshi lists each game's props on the day of it.

What the backtest found

Walk-forward, 2021-22 to 2025-26: every season projected by models trained only on the seasons before it. There's no free archive of past prop prices, so this scores the model against what happened, not against the market. "Line" here is the player's own trailing average, a crude opener. Books set lines with far more than that, so these rates flatter the model. They show it's competent, not that it has an edge.

MarketError vs trailing avgBrier vs trailing avgConfident side hit"Always under"
Points 4.866 vs 4.995 0.239 vs 0.2474 65.4% n=4260 54.8%
Rebounds 1.968 vs 2.002 0.2387 vs 0.2452 64.9% n=4301 54.9%
Assists 1.423 vs 1.454 0.2347 vs 0.2416 67.0% n=5406 55.5%
Threes 1.068 vs 1.08 0.2335 vs 0.2384 66.8% n=5935 57.0%

The "always under" column is the reason to read the one beside it carefully. A stat line's average sits above its median - one 40-point night lifts a scorer's average more than one 12-point night drags it - so a line at the average goes under more often than not. A model has to beat that, not 50%. The Brier column is the better test: lower is better, and it scores the probabilities themselves.