The Very Low Tier Post-Mortem: Why a 46.8% Win Rate Wasn't a Calibration Failure
TL;DR β Our narrowest confidence band (50.0%β55.0% win probability, the "Very Low" tier) closed the season at 46.83% (59Wβ67L, n=126) against a calibrated expectation of 52.48%. That 6.4pp gap looked, on the surface, like a calibration collapse. It wasn't. Exact binomial testing, Murphy's Brier decomposition, covariate drift analysis, and 10,000-iteration bootstrap resampling all converge on the same conclusion: the deficit is statistically indistinguishable from noise, concentrated almost entirely in a 14-day pre-trade-deadline window, and driven by a resolution failure (the model has no signal to spend, not the wrong signal) rather than a reliability failure (miscalibrated probabilities). We rejected Platt re-calibration and feature rework. We shipped a tier governance change instead.
Executive Summary
Every live-deployed model eventually produces a number that looks wrong. The question is never "does this look wrong" β it is whether the wrongness survives contact with a null hypothesis. This post walks through the full audit we ran on our XGBoost_TOP17_v1.4_Platt model's worst-performing confidence band after a full NBA season of live predictions, and why β after nine sections of statistical testing β we changed nothing about the model itself.
The short version: n=126 is not enough evidence to convict a classifier, and the specific way it underperformed (a two-week cluster, near-zero Murphy resolution, zero correlation with any of 17 input features) points at sampling variance and an inherently low-signal decision region, not a broken pipeline.
The Symptom
Our production tiering logic buckets every prediction by winner_probability into four bands: Very Low (50.0% to 55.0%), Low, Medium, and High. The Very Low band is, by construction, the coin-flip-adjacent edge of the model's output β games where the classifier believes it has some edge over a naive 50/50 split, but not much.
At season close, the active Platt-scaled model (XGBoost_TOP17_v1.4_Platt, 742 resolved games) showed this for the Very Low tier:
| Metric | Value |
|---|---|
| Sample size (n) | 126 games (16.98% of active-model volume) |
| Record | 59W β 67L |
| Observed win rate | 46.83% |
| Mean predicted probability (nominal target) | 52.48% |
| Observed gap vs. target | β5.65 pp |
| Observed gap vs. midpoint (52.5%) | β5.67 pp |
A confidence band with a sub-parity win rate is the kind of number that triggers an immediate instinct: re-fit Platt's A and B parameters, audit the feature pipeline for drift, maybe retrain. Before touching any of that, we ran the number through a standard significance workflow.
A single band underperforming its target is a fact. Whether that fact is evidence of a defect is a separate question β and it is the one nobody asks before opening a pull request.
Calibration vs. Variance
Statistical power, first
Before testing significance, we checked whether the test even had the power to detect a real effect at this sample size. Given n = 126 and alpha = 0.05 (one-sided), the power to detect a genuine drop from 52.5% to 46.8% was only 35.6% β meaning even if the true effect were real, we would have missed it roughly two-thirds of the time. Reaching conventional 80% power for a gap this size would require n β 479 resolved games β nearly four full seasons of Very Low tier volume at current rates.
That does not prove the gap is noise. It does mean a single-season read should never have been treated as dispositive in either direction.
Exact binomial and likelihood ratio tests
We ran an exact two-sided binomial test comparing the observed record (59Wβ67L) against both the model's calibrated target and theoretical parity:
Hβ: p = 0.5248 (calibrated target) p = 0.2125
Hβ: p = 0.5000 (parity) p = 0.5331
Neither clears alpha = 0.05. We cross-checked with a likelihood ratio test comparing the empirical MLE (pΜ = 0.4683) to the calibrated target:
LLR = 2 Β· [β(pΜ) - β(pβ)] = 1.6153, ΟΒ²(df=1), p = 0.2038
Same verdict: fail to reject H0. The Clopper-Pearson exact 95% confidence interval on the observed record is [37.88%, 55.92%] β an 18-point-wide band that comfortably encloses both the 52.48% target and 50.00% parity.
Reconciling four interval methods
Because interval width matters more than any single point estimate here, we did not stop at one method. We ran the observed 59/126 record through four independent 95% interval constructions plus a 10,000-iteration non-parametric bootstrap:
| Method | Type | 95% Lower | 95% Upper | Width (pp) | Covers 52.48%? |
|---|---|---|---|---|---|
| Empirical Bootstrap (B = 10,000) | Non-parametric | 38.10% | 55.56% | 17.46 | β |
| Wilson Score | Parametric, continuity-free | 38.34% | 55.50% | 17.17 | β |
| Clopper-Pearson | Exact binomial inversion | 37.88% | 55.92% | 18.04 | β |
| Wald (Normal approx.) | Asymptotic normal | 38.11% | 55.54% | 17.43 | β |
The four methods agree to within 0.46 percentage points at both bounds β the interval is not an artifact of a particular approximation. All four cover both the calibrated target and parity. At the 99% level, the bootstrap envelope widens to [35.71%, 57.94%], and the bootstrap's own resampled distribution shows that 26.3% of resamples land at or above parity and 9.0% land at or above the 52.48% target β an ordinary tail event, not an outlier.
The empirical bootstrap standard error on this sample is 4.44 percentage points. The entire Very Low tier band is only 5.0 percentage points wide. One standard error alone covers nearly the full designed range of the tier β which is itself informative, and comes back in the Production Directives below.
Signal Dissection: Reliability vs. Resolution
Statistical insignificance tells us the gap could be noise. It does not tell us why the tier behaves the way it does. For that we turned to Murphy's (1973) decomposition of the Brier score:
Brier Score = Reliability (calibration error)
- Resolution (discrimination)
+ Uncertainty (base-rate entropy)
Reliability measures whether stated probabilities match observed frequencies (a calibration defect). Resolution measures whether the model can rank-order outcomes at all within a band (a discrimination defect). These are different failure modes with different fixes β the first says "adjust the sigmoid," the second says "there is no more signal to extract here".
For the Very Low tier specifically:
| Component | Value | Interpretation |
|---|---|---|
| Brier Score | 0.2531 | Total error, elevated vs. uncertainty ceiling |
| Reliability (error, β is better) | 0.0067 | Small β probabilities are roughly honest |
| Resolution (signal, β is better) | 0.0022 | Near zero β almost no discrimination |
| Uncertainty (max entropy at this base rate) | 0.2490 | The theoretical floor for a coin-flip band |
Curious what the model looks like outside this band?
The Very Low tier is one narrow slice β see the full calibration curve across every probability range the model predicts.
Resolution sits at roughly 0.9% of the uncertainty ceiling. For context, across the full active-model deployment (N = 742), resolution runs at 7.5% of uncertainty with a positive Brier Skill Score of +0.0674. Within the Very Low band alone, the ROC AUC collapses to 0.4698 β statistically indistinguishable from a coin flip, against 0.6684 overall.
The model is not lying about its confidence in this band. It is telling the truth: it does not know much more than a coin flip does here, and the Brier decomposition proves it is telling the truth honestly β the small residual error sits almost entirely in resolution, not reliability.
We also tested internal homogeneity β whether the deficit was concentrated in one sub-pocket of the band or spread evenly across it. A chi-square test across three internal sub-bins ([0.500, 0.517) at 50.0%, [0.517, 0.533) at 44.9%, [0.533, 0.550) at 46.1%) returned p = 0.8896: the sub-bins are statistically homogeneous. Splitting the band in half at 52.5% tells a sharper storym though - the lower half ([50.0%, 52.5%), n = 62) hit 51.61%, right on target, while the upper half ([52.5%, 55.0%), n = 64) hit 42.19%, carrying essentially the entire deficit. The mean sigmoid gradient across the band, βP/βz β 0.2492, confirms the model is operating at maximum sensitivity to raw-score perturbations in this region β exactly where a small amount of noise produces the largest probability swings.
Temporal & Covariate Autopsy
An acute drawdown, not a chronic drift
A 14-day rolling-window scan of the season immediately isolated where the deficit lived. Between January 20 and February 2, 2026 β the pre-trade-deadline window, when NBA rotations are at their most volatile β the Very Low tier went 5Wβ16L (23.81%) across 21 games, a net deficit of β11 games in two weeks. A Fisher exact test comparing that window against the remaining 105 games of the season returned p = 0.0298, a genuinely significant divergence.
Crucially, this was not tier-specific noise: control tiers (Low through High confidence) simultaneously recorded their lowest accuracy of the entire season (58.5%) during the same window β market-wide volatility around the deadline, not a Very Low tier defect.
Excluding that 14-day window entirely, the tier's ex-slump record is 54Wβ51L (51.43%) across the remaining 105 games β squarely inside the designed [50.0%, 55.0%] band, and statistically indistinguishable from the 52.48% target (p = 0.8456).
Interval Reconciliation, restated as a story: every method we tried β exact binomial, Wilson, Clopper-Pearson, Wald, 10,000-sample bootstrap β puts the true win rate of this tier comfortably inside its design band once you account for a two-week shock that also hit every other tier simultaneously.
A cumulative sum (CUSUM) of prediction residuals (Ξ΅i = yi β pΜi) bottomed out at β9.81 games below expectation on March 7, 2026, then recovered steadily β peaking at 61.5% (8Wβ5L) in early April and stabilizing at or above 50% through the remainder of spring.
No feature signature, no covariate drift
Two independent lines of evidence rule out a pipeline or feature defect:
Residual regression. We regressed the outcome residual Ξ΅i = yi β pΜi against all 17 standardized model features using OLS, restricted to the Very Low tier. The model-level F-statistic came back at p = 0.8216 with an adjusted R-squared of β0.0463. Zero of 17 coefficients reached significance (best candidate, away_tov_pct_l10, at p = 0.2138). If a specific feature β rest asymmetry, recent efficiency, head-to-head history β were driving the miss, it would show up here as a significant predictor of error direction. None do.
Population stability. Comparing feature distributions between the first and second half of the season via Population Stability Index (PSI) and two-sample KS tests, core inputs were stationary: b2b_diff (PSI = 0.0107), away_optimal_rest (PSI = 0.0017), pf_l10_diff (PSI = 0.0396), pie_diff (PSI = 0.0591) β all well under the 0.10 "stable" threshold, and tail outliers (|z|>3) stayed under 2% across every feature. The handful of features that did shift significantly (home_l, PSI = 1.7666; h2h_dominance, PSI = 3.4364; home_e_net_rating, PSI = 0.3631) are exactly what you'd expect from natural season progression β cumulative game counts rising, early-season head-to-head noise compressing as rivalry matchups repeat, standings differentials widening as contenders separate from tanking rosters. None of it is a leakage or pipeline symptom.
One structural pattern did emerge, though it's descriptive rather than a defect: Very Low tier games disproportionately feature a visiting team that is higher-quality on paper than the home team (w_diff: β1.42 vs. +1.04 in control, KS p < 0.0001). Because the model's learned home-court prior works against that matchup type, these games land directly on the 50β55% margin by construction β and when the model backs the away side in this band specifically, accuracy drops to 43.4% (23Wβ30L) versus 49.3% (36Wβ37L) when it backs home. That is a real, explainable population effect, not a bug β narrow-margin, quality-inverted matchups are inherently the hardest games on the slate to call, for any forecaster.
Diagnostic Synthesis
Pulling all four investigative threads together:
| Dimension | Primary Metric | Evidence | Verdict |
|---|---|---|---|
| 1. Statistical Significance | Binomial p = 0.2125 (target), p = 0.5331 (parity) | 95% CI [37.9%, 55.9%] fully covers the 52.48% target | Consistent with finite-sample noise β fail to reject H0 |
| 2. Signal Decomposition | Brier = 0.2531 (Rel = 0.0067, Res = 0.0022, Unc = 0.2490) | Zero separation power in-band; peak gradient βP/βz β 0.2492 | Resolution failure, not a reliability/calibration failure |
| 3. Nature of Deficit | Drawdown 23.8% (n = 21) vs. ex-slump 51.4% (n = 105), Fisher p = 0.0298 | Entire β11 win deficit fell inside a 14-day pre-deadline window | Date-bounded acute drawdown, not a structural drift |
| 4. Segment Concentration | Sub-bin split: 51.6% (n = 62) vs. 42.2% (n = 64) | Deficit clustered in upper slice; schedule/rest features stable (PSI < 0.05) | Localized sub-band variance, no systematic feature bias |
Four independent lines of inquiry β significance testing, signal decomposition, temporal isolation and feature/population analysis β converge on the same conclusion from four different directions. That convergence is what turns "probably noise" into an actual engineering decision.
Production Directives
This is the part of a post-mortem that's easy to get backwards. The instinct after seeing a red number is to do something β retune Platt's parameters, add features, retrain on a shifted window. Every one of those actions would have been the wrong move here, and here's the accounting for why:
| Remediation Path | Status | Rationale |
|---|---|---|
| Platt re-calibration | β Rejected | The scaling parameters (A, B) are functioning correctly β p=0.2125, uniform probability coverage across [0.50, 0.55). Re-fitting on an n=126 sample contaminated by a known 14-day shock would overfit noise and distort calibration in the adjacent tier that currently works fine. |
| Feature space rework | β Rejected | Core features are stationary (PSI < 0.10), residuals show zero correlation with any of the 17 inputs (p=0.8216 overall), and observed shifts are natural season-lifecycle effects, not corruption. There's no feature-level defect to fix. |
| Production tier governance | β Approved | The failure is operational, not architectural: treating a [50.0%, 55.0%) band as an actionable signal ignores that its standard error (4.44 pp) is nearly as wide as the entire band (5.0 pp), and that its Murphy resolution is statistically zero. |
Concretely, we shipped three changes:
- Tier reclassification. The [50.0%, 55.0%) band is now labeled "Neutral / No-Action" rather than an active prediction tier. Production publication requires a minimum probability of P β₯ 0.5500.
- Uncertainty cushioning. Because the empirical standard error (4.44 pp) nearly matches the entire tier width, we now require a safety margin of at least 1.28 Γ SE β 5.7 pp above 50.0% β roughly a 90% one-sided confidence buffer β before a prediction is tagged as actionable edge.
- Volatility circuit breaker. A monitoring flag now watches for late-January-style schedule congestion: if rolling 14-day control-tier accuracy drops below 60%, confidence thresholds escalate automatically across all lower tiers until the window clears.
None of this required touching the model weights. The classifier was doing exactly what a well-calibrated model should do at the edge of its own confidence: telling us, correctly, that it did not know much β and we were the ones who built a product decision on top of that honesty without asking it to be more certain than the math allows.
The general lesson: a single band underperforming its target over one season is not, on its own, evidence of anything. Before touching a model, ask the sequence in order β is the gap statistically distinguishable from noise; if not distinguishable, is the shape of the deficit (temporal clustering, feature correlation, sub-band structure) still worth investigating; and only once both of those have been exhausted does "retrain" become the answer rather than the reflex.
Join the Journey
Preview Tier
See 1-2 predictions daily
Free
Core Tier
Access all predictions with confidence levels
β¬9.90/month
Insight Tier
Full methodology, advanced analytics, calibration data
β¬24.90/month
Every prediction is timestamped. Every result is tracked. Every performance metric is public.
Because in a world of 80% claims, 67.5% honesty is the competitive advantage.
Questions about methodology or the model's features? The methodology page covers the full feature set, training pipeline, and calibration approach. The calibration dashboard shows live Brier scores, ECE, and reliability diagrams updated after each game.