Why College Basketball Is Our Strongest Market
College basketball is a fundamentally different betting market from the professional leagues. There are 363 Division I teams, most of which play 30+ games per season. The sheer volume of games creates pricing inefficiencies that professional leagues rarely show. Sportsbooks devote less attention per game to CBB than to the NBA, and the information asymmetry between sharp and casual bettors is wider.
The college game also has structural features that favor simulation-based analysis. Roster turnover is high (players transfer, graduate, or get injured), coaching changes happen frequently, and conference strength varies dramatically. A regression model trained on last season's data can become stale within weeks. A simulation model that uses current player-level data adapts automatically.
How the CBB Engine Works
1. 5-on-5 Player-Level Modeling
Unlike team-level models that treat each squad as a single entity with aggregate statistics, the Savant Ultra engine models each team as five individual players on the court at any given time. Each player has a profile that includes offensive BPR (Box Plus Rating), defensive BPR, minutes distribution, shooting efficiency, rebounding rates, and turnover tendencies.
When the simulation runs, it resolves possessions based on the specific five players on the court for each team. A matchup between two teams' starters produces different expected points than a matchup between their benches. This matters because substitution patterns and bench depth vary enormously across college basketball. A team that goes 10-deep will perform differently in simulation than a team that relies on six players, even if their aggregate efficiency stats are similar.
2. EvanMiya BPR Integration
EvanMiya is the gold standard for college basketball player-level analytics. Their Bayesian Performance Rating (BPR) system quantifies each player's per-minute offensive and defensive impact, adjusted for strength of schedule and teammate quality. We integrate EvanMiya data directly into player profiles, using BPR as the primary driver of per-player efficiency in the simulation.
This integration follows a strict data hierarchy. Win/loss records come from the ESPN API (authoritative, live). BPR ratings and efficiency metrics come from EvanMiya. When these sources conflict (which is rare), ESPN records take precedence for outcomes and EvanMiya takes precedence for player-level metrics.
3. Data-Driven Defensive Matchups
Version 5.0.1 introduced data-driven defensive matchup modeling. Rather than applying a single defensive adjustment to the opposing team's efficiency, the engine maps each defender's profile against the offensive players they are most likely to guard. A team with elite perimeter defenders will have a different simulation impact against a three-point-heavy offense than against a team that attacks the paint.
This matchup layer uses box_obpr (offensive box plus rating against the specific defensive profile) and chemistry metrics that account for how well a team's defensive unit works together. The result is that the simulation captures game-specific defensive effects that aggregate stats miss.
4. Regime Calibration and Adaptive Thresholds
The CBB market changes throughout the season. Early-season games have thinner data and wider lines. Conference play tightens matchup familiarity. March Madness introduces neutral-court games with entirely different dynamics. The engine adapts to these shifts through regime calibration.
Regime calibration works by monitoring the model's recent ATS performance across different "buckets" of picks, categorized by edge size, cover probability, home/away, favorite/underdog, and conference tier. When a bucket underperforms (e.g., large-spread road favorites hit a cold streak), the adaptive threshold engine tightens requirements for that bucket. When a bucket outperforms, requirements relax slightly. This creates a self-correcting system that responds to market conditions without manual intervention.
The thresholds update daily based on resolved picks. The minimum cover probability required for a pick to qualify is currently 60% (raised from 55% after empirical analysis of 131 games showed that the 55-60% bucket hit only 33% ATS, while 60%+ hit 53%). The strong cover probability threshold is 65%.
5. Conference Strength Adjustments
College basketball conferences vary in quality from top to bottom. A team with an 18-5 record in a low-major conference is not equivalent to an 18-5 team in the Big 12 or SEC. The engine accounts for this through conference strength adjustments that modify each team's efficiency ratings based on the quality of opponents they have faced.
These adjustments are derived from the full conference's collective performance against out-of-conference opponents. A mid-major team that has beaten multiple high-major opponents will receive a smaller adjustment than one that has played exclusively within its conference.
Data Sources
- ESPN API — Live schedules, scores, win/loss records (authoritative for outcomes)
- EvanMiya — BPR ratings, player efficiency metrics, and team profiles (manual parquet uploads via admin panel)
- RotoWire — Injury reports via JSON API, providing 400+ active injury designations across all D-I programs
- The Odds API — Real-time spread, moneyline, and total lines from multiple sportsbooks
ATS Regime Buckets Explained
The regime bucket system categorizes every potential pick into one of several performance zones based on historical outcomes. Each zone has its own threshold for inclusion in the final pick slate.
| Dimension | Categories | Purpose |
|---|---|---|
| Edge size | Small (2-4pt), Medium (4-7pt), Large (7+pt) | Historically, medium edges outperform large edges in CBB. The system gates accordingly. |
| Cover probability | <55%, 55-60%, 60-65%, 65%+ | Picks below 60% cover probability are excluded. The 55-60% bucket has a verified 33% ATS hit rate. |
| Side | Home favorite, home dog, away favorite, away dog | Home underdogs historically outperform in CBB ATS markets. |
| Conference tier | Power 5, High-major, Mid-major, Low-major | Line quality and market efficiency differ by conference. Power 5 lines are sharper. |
| Spread size | Tight (1-5pt), Medium (5-12pt), Wide (12+pt) | Large-spread games have higher variance and lower ATS accuracy across all models. |
Each bucket maintains a rolling sample of recent outcomes. When a bucket's ATS hit rate drops below the calibrated threshold (determined by the regime calibrator), picks from that bucket require stronger edges or higher cover probabilities to qualify. This prevents the model from continuing to push picks in categories where it is currently underperforming.
CBB Model Outputs
For each college basketball game, the simulation produces:
- Projected margin — Median margin of victory across simulations, with standard deviation (calibrated at 12.0 to match empirical RMSE)
- Spread cover probability — Percentage of simulations where each team covers the current Vegas spread
- Projected total — Median combined score with over/under probabilities at the current market line
- Moneyline probability — Win probability for each team, calibrated with a 60/40 model/market blend
- Edge calculations — Spread edge (in points), total edge, and moneyline edge after Bayesian shrinkage
March Madness Adjustments
The NCAA tournament introduces unique dynamics that the regular-season model must adapt to. All tournament games are played on neutral courts, eliminating home-court advantage. Matchups frequently cross conference lines, making conference-relative adjustments more important. And single-elimination format introduces psychological factors (nerves, urgency) that affect game flow.
For March Madness, the engine activates neutral-court mode (zeroing out home-court advantage), increases the weight of out-of-conference performance data, and adjusts margin standard deviation upward to account for higher tournament variance. These are automatic mode switches triggered by the tournament schedule, not manual overrides.
Explore Other Models
NBA Model
Possession MC V5.0.2 — possession-by-possession simulation with Beta shooting distributions and 13-player rosters.
NHL Model
V19.1 Pinnacle — MoneyPuck xG, real danger zones, per-zone goalie modeling.
NFL Model
Elite V1.1 Pinnacle — EPA metrics with CDF edge calculation and drive sequencing.
Soccer Model
V16.3 PBP — FBref xG, isotonic calibration, formation analysis, and BTTS modeling.
MLB Model
Elite Matchup V4.2 — count-state simulation, catcher framing, bullpen fatigue, and park factors.
LoL Model
Championship v2.1 — 5-layer Glicko-2 with market blend and patch-aware meta analysis.