Methodology
Five independent models. Bayesian confidence scoring. Full audit trail.
Glass Box β audit us.Five Models
No single model solves the NBA. We run five independent methodologies in parallel and surface where they disagree.
Efficiency Ratings
Baseline PerformanceOffensive and Defensive Rating adjusted for Pace. The expected outcome when both teams play to their statistical averages.
Pythagorean Regression
Luck vs. SkillPoint differentials reveal teams over-performing in close games or under-performing due to variance. Separates sustainable skill from noise.
Schedule Fatigue
Physical ConstraintsBack-to-backs, timezone-crossing travel, game density. Even elite talent degrades under physiological stress.
Injury Context
Situational VarianceBayesian-smoothed injury impact differentials and the cascading effects of missing players on teammate production.
Market Consensus
Implied ProbabilityThe closing line as the efficient aggregate of all public information β the control group against which the other four models are tested.
Where They Disagree
When all five models align, the market has usually priced it in. The value exists in the divergence β when one model sees something the others don't. We surface the conflict, not the consensus.
The multi-model display is being built on our existing data infrastructure: team ratings, game context taxonomy, injury impact engine, and line movement capture. The data exists. The display layer is next.
How It Works
Normalization, confidence scoring, regime classification, and accountability.
What We Surface
The engine scans every game for situations where context diverges from what the market expects. A key rotation player ruled out two hours before tip. A team on the back end of a road trip facing a rested opponent. A spread bucket where the covering team has historically dominated.
We surface the patterns and the data behind them. You decide if there's edge.
Normalization
A player averaging 18 points might be doing it in 32 minutes one night and 22 the next. We normalize performance per-36 minutes so a starter coasting in a blowout doesn't skew the data.
When a player is absent, usage redistributes. We measure the actual historical shift in each teammate's per-36 production across every relevant game β not estimates, measurements.
Every impact signal displays the number of games backing it. Higher counts mean a confirmed pattern. Lower counts mean a developing signal with higher volatility.
Confidence Scoring
Small samples mislead. When evidence is thin, projections anchor to the player's established baseline. As games accumulate, the observed data takes over. This is Bayesian smoothing β it prevents volatile early-season signals from distorting projections.
Every projection includes a floor and ceiling: the range of probable outcomes given the volatility in both groups (with the player and without). A tight range is a strong pattern. A wide range means uncertainty remains.
Strong evidence, tight range.
Real signal, wider range.
Developing situation. High volatility.
The Wilson Shadow
Drag the sliders. Watch the shadow shrink as evidence accumulates.
Wilson 95% CI: 39.7% β 89.2% (width: 49.5%)
With only 10 games, the true rate could be anywhere from 40% to 89%. This is a guess, not a signal.
Regime Classification
Not all matchups have the same statistical character. The engine classifies each game into regimes based on recent performance variance:
Stable β tight performance clusters on both sides. Projections carry weight.
Volatile β wide variance on one or both sides. Error bars expand.
Regime classification feeds directly into confidence scoring. Volatile matchups widen floor-ceiling ranges and temper confidence badges. A HIGH signal in a Stable game carries more weight than the same signal in a Volatile one.
We also cross-reference against line movement from 39 sportsbooks. When the market diverges from what the stats suggest, that's worth investigating.
Track Record
The engine generates assertions β timestamped, machine-generated claims locked before tip-off β and grades every one against actual box scores the next morning.
The pipeline: Gating filters signals through minimum hit rate and sample size thresholds. Assertion records the exact claim, threshold, and market odds. Grading compares against the official box score. CLV measures whether we captured value versus the closing line.
Hit rates use Wilson score confidence intervals, not raw percentages. Going 7/10 feels like 70%, but the 95% CI is [38%, 90%]. Wilson intervals account for sample size. As assertions accumulate, the intervals tighten and the true signal becomes visible.
Closing Line Value is the gold standard in professional handicapping. Consistently beating the closing line means edge β regardless of short-term variance. We track CLV on every assertion to measure signal quality independent of result luck.
Signal Reliability
Each dot shows an observed rate with its 95% Wilson confidence interval. The dashed line marks 50% β a coin flip. Green dots have intervals that exclude chance.
Injury Alerts
NBA teams submit injury reports by 5:30 PM ET. Our engine runs at 6:00 PM ET after reports finalize. We filter for meaningful transitions: a player ruled OUT, upgraded from a worse status, or returning after missed time. Routine PROBABLE designations are excluded.
Each alert includes beneficiary impact: which teammates have historically absorbed the usage, with per-36 normalized differentials, Bayesian-smoothed confidence, and current prop lines for context.
Impact baselines use temporal decay weighting with a 60-day half-life. Recent form is weighted over season averages. Both βwithβ and βwithoutβ game groups use identical decay, isolating the absence effect from mid-season trends.
Alerts are generated from the 6 PM ET scraper run, not real-time. For time-sensitive markets, verify current status through official sources.
The Fading Echo
Toggle modes. Watch old games fade and the average shift toward what matters now.
Simple average: 28.0 pts. Every game counts the same, whether it was last night or three months ago.
Query Receipts
The Lab lets you build custom prop queries with historical hit rates. Query Receipts close the loop: did the pattern hold going forward?
When you save a query, the system snapshots your parameters, the targeted players, their current prop lines, and the applicable games. After those games complete, the resolver grades every player against their actual box score.
Over means the stat exceeded the line. Under means it fell below. Exact ties push (excluded from hit rate). Players who didn't play are voided. Resolution runs at 4 AM ET after box scores finalize.
Over time, receipts reveal which queries produce forward-looking edge and which were overfitting. 80% historical but 45% on receipts is a red flag. 65% historical and 62% on receipts is a confirmed pattern.