10 games · times in Phoenix · generated 2026-08-10 20:53 UTC
Side is the only validated column. Total* and NRFI* are not — see the notes at the bottom.
Probabilities: calibrated on 2,112 games from the prior year.
2026 backtest at real prices: -6.1% ROI over 1,443 games. The loss was statistically indistinguishable from paying the vig with zero skill (residual -2.1%, z=-0.90).
| LIVE | all | 0-0 | — | no graded picks yet |
| LIVE | HIGH | 0-0 | — | no graded picks yet |
| LIVE | MEDIUM | 0-0 | — | no graded picks yet |
| LIVE | LOW | 0-0 | — | no graded picks yet |
| RECONSTRUCTED | all | 749-696 | 0.5183 | 95% CI [0.4926, 0.5440] · -117.4u · b/e 0.5649 |
| backtest | all | 4015-3190 | 0.5573 | 95% CI [0.5458, 0.5687] · -291.6u · b/e 0.5825 |
Bands were measured on 8,326 out-of-sample games and did not separate. HIGH hit 0.5208 with a 95% CI of [0.4960, 0.5456] — an interval that contains 0.50 and overlaps LOW. Incremental R-squared over the posted line is +0.0022. Calibrated but uninformative.
| LIVE | all | 0-0 | — | no graded picks yet |
| RECONSTRUCTED | all | 693-684 | 0.5033 | 95% CI [0.4769, 0.5296] · -61.0u · b/e 0.5254 |
| backtest | all | 3528-3367 | 0.5117 | 95% CI [0.4999, 0.5235] · -283.8u · b/e 0.5337 |
No historical NRFI price exists anywhere, so hit-rate-against-break-even and Brier-against-market are uncomputable, not merely poor. Two of the three metric tiers cannot run, so there is no break-even column and no band.
| LIVE | all | 0-0 | — | no graded picks yet |
| RECONSTRUCTED | all | 757-688 | 0.5239 | 95% CI [0.4981, 0.5495] · win% only, no price exists |
| backtest | all | 3712-3489 | 0.5155 | 95% CI [0.5039, 0.5270] · win% only, no price exists |
These three are never added together. Only LIVE is evidence.
LIVE — Read from data/live/published_picks.csv, which is written at publish time and refuses any pick for a game that has already started. It is the only source that can support a forward claim.
RECONSTRUCTED — 2026 walk-forward output. Those picks came from a model fit on a different fold than the card uses, and every design choice in the pipeline was made with these results already visible. Treat as an upper bound, never as evidence.
backtest — 2021-2025 walk-forward. The model never saw these rows, but the feature pipeline was built while looking at this era.
Side is the only column checked against real results — and it came out in the right order.
Total and NRFI have not been checked. The model has an opinion; nobody has verified it.
HIGH / MED / LOW on Side were measured against what actually happened.
weak / mid / strong on Total and NRFI are only how sure the model feels. Untested.
Different words on purpose, so one can never be read as the other.
Tested on 1,443 real 2026 games at real prices, this lost 6.1%.
That is what paying the bookmaker’s cut (the “vig”) costs you, with no skill at all.
Nothing here has been shown to make money.
TOTAL* — tested and FAILED. Bands were measured on 8,326 out-of-sample games and did not separate. HIGH hit 0.5208 with a 95% CI of [0.4960, 0.5456] — an interval that contains 0.50 and overlaps LOW. Incremental R² over the posted line is +0.0022. Calibrated but uninformative. The 2026 backfill added ~2,200 priced games and the verdict did not move.
NRFI* — UNGRADED, never tested at all. No historical NRFI price exists anywhere, so hit-rate-against-break-even and Brier-against-market are uncomputable, not merely poor. No break-even is shown because there is no price.
weak / mid / strong is model conviction, NOT validation. It is which third of the claim-strength distribution the number falls in, and has not been shown to predict anything. A “strong” total is not a HIGH side.
SIDE re-measured on 8,650 games: HIGH 0.6001 [0.5760, 0.6243], MEDIUM 0.5693 [0.5505, 0.5881], LOW 0.5197 [0.5049, 0.5345]. The ordering holds, but HIGH and MEDIUM now overlap — on the earlier 6,367-game window they did not. HIGH beats MEDIUM on the point estimate and is not proven distinct from it; MEDIUM over LOW is still clean. Only side HIGH is shaded. Break-even is shown beside every priced pick and never filters — every game gets an output, there is no “no bet”.
When Total* is empty there are two reasons. Either no posted total exists, in which case the model has nothing to read P(over) off and the blank is a missing input; or a line exists but the game is inside the 21-day sealed window that is deliberately not graded. Since the archive backfill posted lines for 2,299 games of the 2026 season, the second is the usual reason on the newest slate.
Probabilities are recalibrated against the trailing year. The raw model runs overconfident on recent data — reliability 0.0006 on 2022–2025 against 0.0043 on 2026, always the same direction. The correction is a Platt map fitted strictly earlier than the slate it is applied to, and it is monotone, so band ordering is untouched: only the numbers move. On 2026 it cuts reliability to 0.0026 and closes the HIGH band’s stated-minus-actual gap from +0.0298 to +0.0012. It does not fully fix the drift.
Never pooled. Different base rates, different validation status, different meanings.
====================================================================================================
TRACKING — THREE SEPARATE LEDGERS
====================================================================================================
These three markets are NEVER pooled. Different base rates, different
validation status, different meanings. There is no combined record
anywhere in this report, by design.
Live begins 2026-01-01 (first scheduled 15:30 UTC run). Backtest and live are never summed.
####################################################################################################
# BACKTEST
# 2021-2025 walk-forward. The model never saw these rows, but the
# feature pipeline was designed while looking at this era.
####################################################################################################
----------------------------------------------------------------------------------------------------
MONEYLINE — VALIDATED, but the claim has weakened. Re-measured on
8,650 games: HIGH 0.6001 / MEDIUM 0.5693 / LOW 0.5197.
Ordering holds; HIGH and MEDIUM intervals now OVERLAP
([0.5760,0.6243] vs [0.5505,0.5881]), where the earlier
6,367-game window showed none. MEDIUM > LOW is clean.
----------------------------------------------------------------------------------------------------
hit rate by band, with 95% CI, stated vs actual, and units.
n = all graded games (hit rate, calibration).
n_priced = the subset with a real price (units, ROI). The 2026
archive backfill priced 2,299 of the 2,301 games that had none,
so n_priced now nearly equals n; the two games still missing
start before the snapshot that was bought.
group n hit_rate ci_lo ci_hi ci_width stated stated_minus_actual units roi n_priced
HIGH 1392 0.6056 0.5797 0.6310 0.0513 0.6242 0.0186 -57.48 -0.0413 1391
MEDIUM 2274 0.5668 0.5464 0.5871 0.0407 0.5797 0.0128 -92.94 -0.0409 2272
LOW 3539 0.5321 0.5156 0.5485 0.0329 0.5370 0.0050 -141.17 -0.0400 3529
calibration by probability bucket:
bucket n stated actual gap ci_lo ci_hi
0.136-0.442 901 0.3955 0.440622 -0.045139 0.4085 0.4732
0.442-0.481 900 0.4628 0.461111 0.001697 0.4288 0.4938
0.481-0.508 901 0.4951 0.529412 -0.034277 0.4968 0.5618
0.508-0.533 900 0.5208 0.505556 0.015225 0.4729 0.5381
0.533-0.556 901 0.5444 0.546060 -0.001667 0.5134 0.5783
0.556-0.582 900 0.5684 0.568889 -0.000535 0.5363 0.6009
0.582-0.618 901 0.5981 0.587125 0.010975 0.5547 0.6188
0.618-0.809 901 0.6576 0.624861 0.032736 0.5928 0.6559
----------------------------------------------------------------------------------------------------
TOTALS* — BANDS WERE TESTED AND FAILED.
HIGH hit 0.5208, 95% CI [0.4960, 0.5456] — an interval that
CONTAINS 0.50 and overlaps LOW. Incremental R^2 over the
posted line is +0.0022. weak/mid/strong below is CLAIM
STRENGTH ONLY, not a validated band.
----------------------------------------------------------------------------------------------------
group n hit_rate ci_lo ci_hi ci_width stated stated_minus_actual units roi n_priced
strong 2299 0.5407 0.5202 0.5610 0.0407 0.6142 0.0736 19.26 0.0084 2299
mid 2298 0.4961 0.4757 0.5165 0.0409 0.5518 0.0558 -159.24 -0.0693 2298
weak 2298 0.4983 0.4778 0.5187 0.0409 0.5160 0.0177 -143.79 -0.0626 2298
calibration by probability bucket:
bucket n stated actual gap ci_lo ci_hi
0.088-0.425 862 0.3814 0.438515 -0.057122 0.4057 0.4718
0.425-0.460 862 0.4438 0.476798 -0.032995 0.4436 0.5102
0.460-0.488 862 0.4746 0.502320 -0.027735 0.4690 0.5356
0.488-0.511 861 0.4994 0.497096 0.002292 0.4638 0.5304
0.511-0.535 862 0.5232 0.460557 0.062595 0.4275 0.4939
0.535-0.561 862 0.5485 0.477958 0.070524 0.4448 0.5113
0.561-0.595 862 0.5765 0.517401 0.059080 0.4840 0.5506
0.595-0.801 862 0.6313 0.537123 0.094144 0.5037 0.5702
----------------------------------------------------------------------------------------------------
NRFI* — UNGRADED. No historical price exists for this market, so
break-even, units and market comparison are UNCOMPUTABLE,
not merely absent. Hit rate only.
----------------------------------------------------------------------------------------------------
group n hit_rate ci_lo ci_hi ci_width stated stated_minus_actual
strong 2401 0.5235 0.5035 0.5435 0.0399 0.5709 0.0473
mid 2400 0.5083 0.4883 0.5283 0.0400 0.5324 0.0241
weak 2400 0.5146 0.4946 0.5345 0.0400 0.5101 -0.0045
####################################################################################################
# RECONSTRUCTED
# 2026 REBUILT FROM WALK-FORWARD OUTPUT. NOT a live record: these
# picks were never published, the model was re-run afterwards on a
# different fold, and the pipeline was designed with these results
# already visible. An upper bound, never evidence.
# The live record lives in data/live/published_picks.csv and is shown on the card.
####################################################################################################
----------------------------------------------------------------------------------------------------
MONEYLINE — VALIDATED, but the claim has weakened. Re-measured on
8,650 games: HIGH 0.6001 / MEDIUM 0.5693 / LOW 0.5197.
Ordering holds; HIGH and MEDIUM intervals now OVERLAP
([0.5760,0.6243] vs [0.5505,0.5881]), where the earlier
6,367-game window showed none. MEDIUM > LOW is clean.
----------------------------------------------------------------------------------------------------
hit rate by band, with 95% CI, stated vs actual, and units.
n = all graded games (hit rate, calibration).
n_priced = the subset with a real price (units, ROI). The 2026
archive backfill priced 2,299 of the 2,301 games that had none,
so n_priced now nearly equals n; the two games still missing
start before the snapshot that was bought.
group n hit_rate ci_lo ci_hi ci_width stated stated_minus_actual units roi n_priced
HIGH 247 0.5628 0.5004 0.6232 0.1228 0.6138 0.0510 -18.81 -0.0762 247
MEDIUM 471 0.5626 0.5175 0.6067 0.0892 0.5754 0.0128 -9.79 -0.0208 470
LOW 727 0.4746 0.4385 0.5109 0.0724 0.5322 0.0576 -88.82 -0.1225 725
HIGH: ! n=247 — interval is wide; treat as provisional
calibration by probability bucket:
bucket n stated actual gap ci_lo ci_hi
0.277-0.460 181 0.4218 0.469613 -0.047863 0.3983 0.5422
0.460-0.495 180 0.4782 0.544444 -0.066241 0.4715 0.6155
0.495-0.519 181 0.5080 0.414365 0.093632 0.3451 0.4872
0.519-0.539 180 0.5290 0.505556 0.023405 0.4332 0.5777
0.540-0.558 181 0.5487 0.491713 0.056938 0.4198 0.5640
0.559-0.579 180 0.5685 0.538889 0.029600 0.4660 0.6101
0.579-0.607 181 0.5922 0.558011 0.034232 0.4852 0.6284
0.608-0.753 181 0.6340 0.651934 -0.017931 0.5800 0.7175
----------------------------------------------------------------------------------------------------
TOTALS* — BANDS WERE TESTED AND FAILED.
HIGH hit 0.5208, 95% CI [0.4960, 0.5456] — an interval that
CONTAINS 0.50 and overlaps LOW. Incremental R^2 over the
posted line is +0.0022. weak/mid/strong below is CLAIM
STRENGTH ONLY, not a validated band.
----------------------------------------------------------------------------------------------------
group n hit_rate ci_lo ci_hi ci_width stated stated_minus_actual units roi n_priced
strong 459 0.4902 0.4447 0.5358 0.0911 0.6125 0.1223 -36.19 -0.0792 457
mid 459 0.4880 0.4426 0.5337 0.0911 0.5488 0.0608 -31.91 -0.0695 459
weak 459 0.5316 0.4859 0.5768 0.0909 0.5157 -0.0159 7.12 0.0155 459
calibration by probability bucket:
bucket n stated actual gap ci_lo ci_hi
0.107-0.425 172 0.3758 0.511628 -0.135868 0.4375 0.5853
0.425-0.463 172 0.4465 0.540698 -0.094156 0.4661 0.6135
0.464-0.490 172 0.4774 0.505814 -0.028462 0.4318 0.5796
0.491-0.513 172 0.5020 0.494186 0.007812 0.4204 0.5682
0.513-0.535 172 0.5244 0.511628 0.012767 0.4375 0.5853
0.535-0.556 172 0.5450 0.494186 0.050770 0.4204 0.5682
0.557-0.589 172 0.5723 0.453488 0.118833 0.3809 0.5281
0.589-0.732 173 0.6237 0.543353 0.080330 0.4690 0.6158
----------------------------------------------------------------------------------------------------
NRFI* — UNGRADED. No historical price exists for this market, so
break-even, units and market comparison are UNCOMPUTABLE,
not merely absent. Hit rate only.
----------------------------------------------------------------------------------------------------
group n hit_rate ci_lo ci_hi ci_width stated stated_minus_actual
strong 482 0.5436 0.4989 0.5875 0.0886 0.5710 0.0274
mid 481 0.5156 0.4710 0.5600 0.0890 0.5333 0.0177
weak 482 0.5124 0.4679 0.5568 0.0889 0.5108 -0.0016
====================================================================================================
READING THESE NUMBERS
====================================================================================================
Every hit rate above carries a 95% interval. A rate whose interval
contains the relevant break-even (or 0.50) has not demonstrated
anything, however good the point estimate looks.
At ~140 live picks by season end the interval is about +/- 8 points,
which is wider than any edge worth having. Live conclusions should
not be drawn this season.