NBA 3PM Model Diagnostics

KSplit NBA model · 2026-27 · graded Oct 20 through Nov 9

Updated Nov 10, 4:36 AM ET

How to read this page

The question here is whether the probabilities are honest: when the model says 30%, does it happen about 30% of the time? Every graded 3PM line counts, not a hand-picked set of bets. A z beyond ±2 in a bucket with a real sample is a miscalibration; inside ±2 is normal noise. Updated every night after games are graded.

Probabilities are the final pre-tip numbers, blended with the market the same way as on the 3PM projections page. Pushes and players who didn't play are excluded.

Main lines graded

1,691

predicted 46.4% · actual 45.4%

Vs market (log loss)

+0.32%

z +1.30 · positive = model sharper

Beat the close

45.7%

1,691 lines · avg CLV +0.02%

3PM error per player

0.86

bias -0.02 · 3,363 player-games

Main line calibration

Probability of the over on every graded 3PM main line, bucketed. Points on the dashed line are perfectly calibrated; the bars are 95% ranges, and bigger dots are bigger samples.

0%0%20%20%40%40%60%60%80%80%100%100%20-30%: predicted 27.3%, hit 24.3% (n=37)30-35%: predicted 33.1%, hit 31.6% (n=139)35-40%: predicted 37.7%, hit 38.9% (n=278)40-45%: predicted 42.5%, hit 42.3% (n=357)45-50%: predicted 47.4%, hit 50.9% (n=279)50-55%: predicted 52.4%, hit 46.8% (n=235)55-60%: predicted 57.5%, hit 57.3% (n=218)60-65%: predicted 62.2%, hit 55.0% (n=129)Model probabilityActual hit rate
PredictedLinesAvg predActualGap95% rangez
20-30%3727.3%24.3%-2.9%13% to 40%-0.40
30-35%13933.1%31.6%-1.4%25% to 40%-0.35
35-40%27837.7%38.9%+1.2%33% to 45%+0.40
40-45%35742.5%42.3%-0.2%37% to 47%-0.07
45-50%27947.4%50.9%+3.5%45% to 57%+1.18
50-55%23552.4%46.8%-5.6%41% to 53%-1.73
55-60%21857.5%57.3%-0.2%51% to 64%-0.06
60-65%12962.2%55.0%-7.2%46% to 63%-1.68

Model leans over

542 lines · said 51.7% · hit 49.5% · z -1.06

Model leans under

1,149 lines · said 56.1% · hit 56.6% · z +0.31

Model vs market: log loss 0.6782 vs 0.6804 for the de-vigged market on 1,691 lines, 0.32% better (z +1.30).

Ladder rung calibration

Every priced +1, +2 and +3 rung this season (one, two and three more threes than the main line), the blended probability vs how often it hit.

0%0%10%10%20%20%30%30%40%40%50%50%0-3%: predicted 2.4%, hit 1.5% (n=395)3-6%: predicted 4.4%, hit 3.4% (n=953)6-10%: predicted 7.8%, hit 6.3% (n=919)10-15%: predicted 12.4%, hit 13.3% (n=753)15-20%: predicted 17.5%, hit 18.4% (n=561)20-25%: predicted 22.3%, hit 22.7% (n=449)25-30%: predicted 27.4%, hit 25.8% (n=333)30-40%: predicted 33.7%, hit 31.6% (n=335)40-100%: predicted 41.5%, hit 31.3% (n=16)Model probabilityActual hit rate
RungLinesAvg predActualGapz
+11,61123.7%23.7%+0.0%+0.02
+21,59210.8%10.7%-0.1%-0.20
+31,5114.7%3.0%-1.7%-3.09
PredictedLinesAvg predActualGap95% rangez
0-3%3952.4%1.5%-0.8%1% to 3%-1.09
3-6%9534.4%3.4%-1.1%2% to 5%-1.62
6-10%9197.8%6.3%-1.5%5% to 8%-1.73
10-15%75312.4%13.3%+0.9%11% to 16%+0.77
15-20%56117.5%18.4%+0.9%15% to 22%+0.55
20-25%44922.3%22.7%+0.4%19% to 27%+0.20
25-30%33327.4%25.8%-1.6%21% to 31%-0.65
30-40%33533.7%31.6%-2.0%27% to 37%-0.78
40-100%1641.5%31.3%-10.2%14% to 56%-0.83

Blend vs market: log loss 0.3396 vs 0.3471 for the de-vigged market on 4,714 lines, 2.14% better (z +4.85).

Main line results by EV and edge band

Every graded main line, betting the side the model leans at the final best price, flat stakes (minus odds risk to win 1u, plus odds risk 1u). These are not the Discord plays: it's the whole board, so the low bands are expected to lose. Actual ROI tracking expected ROI is the check.

BandLinesW-LAvg probHitP/LROIExpected ROIz
Negative1,029555-47454.3%53.9%-56.37u-3.9%-2.8%-0.38
0-4%446239-20754.7%53.6%-9.73u-1.7%+1.7%-0.78
4-8%12972-5754.9%55.8%+13.97u+8.6%+5.4%+0.39
8-12%4423-2157.6%52.3%-0.06u-0.1%+9.8%-0.71
12-20%2620-657.1%76.9%+17.37u+56.1%+15.3%+2.15
20%+158-766.0%53.3%+1.33u+7.5%+28.4%-0.90

EV = the model's probability at the posted price, per unit risked.

Ladder results by EV and edge band

Every priced +1, +2 and +3 rung this season, the over at its best price from the last pre-tip run, flat 1u. These are not the Discord ladder posts: it's every rung on the board, so the low bands are expected to lose. Actual ROI tracking expected ROI is the check.

BandRungsMedian oddsW-LAvg probHitP/LROIExpected ROIz
-30% or less1,542+162051-14914.7%3.3%-817.52u-52.4%-30.5%-2.54
-30 to -15%1,364+800136-122811.1%10.0%-317.07u-23.3%-11.3%-1.54
-15 to 0%1,357+380288-106920.3%21.2%+104.50u+7.7%-2.1%+1.65
0-10%374+28096-27827.3%25.7%+25.51u+6.8%+7.6%-0.07
10-20%73+25527-4630.8%37.0%+40.19u+55.0%+18.2%+1.64

Edge = how far the blended probability is from the de-vigged market probability for that rung, relative to the market: a rung the market has at 5% and the blend at 6% is +20%. +1 is one more three than the main line, +2 two more, +3 three more. A band shows once it has 15 rungs.

Projection accuracy

Projected 3PA and 3PM (first final pre-tip run) against what each player actually did, grouped by projected threes. Players who didn't play are excluded.

Projected 3PMPlayer-gamesProj 3PAActual 3PAProj 3PMActual 3PM3PM diff
0.0-0.58990.550.710.190.21+0.02
0.5-1.06532.132.250.740.78+0.04
1.0-1.56483.523.541.261.20-0.06
1.5-2.05484.784.811.731.63-0.10
2.0-2.53226.065.822.242.10-0.14
2.5-3.01867.257.462.722.77+0.05
3.0-3.5738.528.073.233.04-0.19
3.5+3410.3011.093.874.29+0.42

Average miss per player: 0.86 threes made (bias -0.02), 1.47 attempts (bias +0.06).

Week by week

Main lines graded each week: the average predicted over rate against the actual, and log loss for the model and the market (lower is better).

Week ofLinesAvg predActualGapModel LLMarket LL
Nov 98247.4%54.9%+7.5%0.71980.7160
Nov 256047.6%44.6%-2.9%0.67440.6776
Oct 2657146.1%44.8%-1.3%0.68080.6814
Oct 1947845.1%45.2%+0.1%0.67250.6762