NBA Model Performance

Last updated: January 3, 2026 – these reflections are based on the live data displayed on my NBA Model (Version 1) on OddsRX.

When I built Dr Cover’s NBA Model, I leaned on machine‑learning and decades of NBA data to estimate win probabilities.  The goal was simple: develop a tool that could help me (and others) make better betting decisions.  The public dashboard shows how the model is performing across several markets — straight‑up winners (“Sides”), against‑the‑spread (ATS) wagers, totals (over/unders) and expected‑value (EV) segments.  In this post I’ll walk through those statistics, share what excites me about the model’s early success, and be candid about where it still needs work.  Importantly, I’ll clarify when win rate matters on its own and when the expected value of a bet — a function of both win probability and payout — is the more appropriate measure of profitability.

Why 52.4 % matters and why EV matters more

Most sports bets carry a vig (often –110 odds), which means you have to win about 52.38 % of bets just to break even on those wagers .  A guide from Leans.ai explains that the break‑even point at –110 odds is calculated using the formula |\text{odds}|/(|\text{odds}|+100) .  This benchmark is particularly relevant for ATS bets, which are typically priced at –110.

For money‑line bets, however, there is no universal break‑even percentage; the required hit rate depends on the odds you’re laying or receiving.  Betting at plus money (e.g., +150) requires winning only about 40 % of the time to break even, while +130 demands roughly 43.5 % .  By contrast, laying a favorite at –110 still requires a 52.4 % hit rate, and high‑priced favorites like –300 need a 75 % success rate .  These examples illustrate why simply comparing a win rate to 50 % can be misleading.

That’s where expected value (EV) comes in.  EV quantifies the average amount you can expect to win or lose on a bet over the long run.  It’s calculated by multiplying the probability of winning by the potential profit and subtracting the probability of losing times the stake .  In formula form:

\text{EV} = P(\text{win}) \times \text{payout} – P(\text{loss}) \times \text{stake} .

If EV is positive, you’d expect to make money over time; if it’s negative, you’d expect to lose.  This metric accounts for the odds attached to each wager, so a 50 % hit rate could be wildly profitable on +150 underdogs and unprofitable on –200 favorites.  Throughout this write‑up I’ll note when a high win rate is impressive and when only an EV calculation can tell us whether the picks are truly profitable.

How my money‑line picks (Sides) are performing

The Sides table shows how often my straight‑up winner picks have been correct across 2,636 games.  My model has provided a solid predictive edge here:

  • Overall, my picks have been right 63.0 % of the time (284 of 451 games).  This high hit rate suggests a strong ability to identify winners.  Whether that translates into profit depends on the average odds of these picks: winning 63 % of games at –200 might not be profitable, while winning 63 % at –110 or shorter could be a significant edge .  Computing EV for each wager helps determine if this success rate is truly yielding a plus‑money return.
  • When my model agrees with the market, accuracy rises to 68.2 %.  I find that encouraging; when my numbers and bookmaker numbers line up, we’re jointly identifying strong favorites.  Again, the profitability of these picks depends on the price — a 68 % hit rate on heavy favorites might not be as profitable as it sounds, but EV calculations can make that clear.
  • Book favorites with implied win probability >55 % have also done well, hitting 68.5 %, and home picks are coming through 65.5 %.  These segments likely skew toward minus‑odds favorites, so the actual ROI will hinge on the average odds associated with them.
  • Even picks with confidence between 56 – 65 % are landing at 67.9 %.  The few high‑confidence selections above 66 % are 5/6 (83.3 %), but that sample is tiny so I don’t put much stock in it yet.

Pain points on the money line

Building a model means facing the data honestly.  Here are areas where I need improvement:

  • Contrarian plays are not working yet.  When my model disagrees with the market, I’m only right 46.2 % of the time.  That tells me my outlier picks may not be sophisticated enough to beat consensus lines.  I’ll re‑examine the features driving those calls and ensure that the EV calculation properly weights these underdog opportunities.
  • Underdogs (<45 % implied win) are also problematic, hitting 40.0 %.  Perhaps my model overestimates dogs’ chances; this will be a focus area.  On the plus side, underdogs often come at plus money, so the break‑even percentage is lower.  I need to calculate EV for these picks to see if their +EV potential outweighs the low hit rate.
  • Performance on back‑to‑back games is mixed.  Picks on teams in the second game of a back‑to‑back have hit 68.3 %, while avoiding B2B spots yields 62.1 %.  This split might be noise, but I’ll monitor it as more data comes in.

How I’m doing against the spread

ATS bets are tougher because of the vig; hitting 52.4 % is the bare minimum for –110 bets .  My ATS results cover 3,073 games, and while not as eye‑popping as the money‑line numbers, they still show promise:

  • Overall ATS accuracy is 54.9 % (241/439).  That clears the break‑even hurdle and suggests a small edge.  Because ATS bets are almost always priced around –110, the hit rate corresponds closely to expected profit.
  • Backing underdogs against the spread has been slightly better, at 55.1 %.
  • Picks where my win confidence is between 50 – 55 % have actually performed the best, covering 58.7 %.  I love seeing moderate‑confidence calls generate value.
  • Home teams have covered 56.9 %, versus 53.2 % for away teams.  It looks like my model accounts for home‑court advantage fairly well.
  • Tight spreads (≤3.5 points) have been a sweet spot at 60.5 %, suggesting I’m reading closely contested games accurately.

Where ATS results need work

  • Medium confidence (56 – 65 %) picks are underperforming, covering only 48.6 %.  That’s below break even, so I need to refine how I translate model confidence into ATS selection.
  • When I match the money‑line winner against the spread, I cover 56.3 %, but disagreeing with the money‑line winner drops to 54.0 %; both are only modestly above break even.
  • Bigger spreads (favored by >7.5 points or in the 4–7.5 range) hover around 52 – 53 %, leaving little value.
  • As with sides, confidence above 75 % consists of one pick.  I ignore such tiny samples until I collect more data.

What my expected‑value segments reveal

I bucket my picks by expected value (EV) — the difference between my model’s probability and the implied probability from odds.  In theory, positive EV bets (where the model’s win probability exceeds the market’s implied probability) should outperform negative EV bets.  Ideally you’d see higher win rates and better returns as the EV band increases.  Right now, the results are puzzling:

  • Negative EV bets are hitting 68.3 %, far above break even.  That could mean I’m underestimating certain situations, or it could be noise from sample size.  Because these picks are mathematically –EV, I would normally expect them to lose money over time.  Seeing them hit at nearly 70 % suggests either the odds offered were extremely favorable (plus money) or my EV calculation is off.  I need to revisit how I derive implied probabilities and vig adjustments.
  • Positive EV bets are only 50.4 %, basically break even.  As the EV threshold increases (10 %, 15 %, 20 %), accuracy drops into the mid‑40 % range.  This is a clear red flag.  It suggests my model’s probability estimates may be miscalibrated or that I’m not properly accounting for line movement and juice.  I plan to cross‑check my EV computation against the standard formula (win probability × payout minus loss probability × stake) and adjust accordingly.

Totals and pace: my toughest challenge

Betting totals is notoriously hard.  My data across 1,008 games confirms that:

  • Overall, my totals bets are only 49.0 % accurate (205/418), below break even.  There’s no edge here yet.
  • Predicting unders hits 49.4 %, and predicting overs hits 46.3 %; both lose money.
  • Even when there’s a ≥5‑point gap between my projected total and the betting line, my unders hit 44.0 % and overs hit 49.3 %.  Clearly my approach to totals needs a major overhaul.

I also looked at pace and variance (836 games).  Whether games were slow or fast, or had low or high scoring variance, results hover around 49 %.  So far, those factors aren’t giving me an edge.

My takeaways and next steps

  1. My model shines at picking straight‑up winners. A 63 % hit rate overall (and up to ~68 % in certain segments) shows a strong predictive edge.  But win rate alone doesn’t equate to profit; I need to evaluate the EV of those picks to ensure the return is positive .
  2. ATS results are modest but encouraging. Covering 54.9 % clears the vig but with only a small cushion.  I’m going to focus on small spreads and home teams, where my edge is greatest, and tread lightly elsewhere.
  3. Contrarian and large‑spread plays are liabilities. I’ll revisit these algorithms to see whether additional features or calibration can improve them.  If not, I may simply avoid such scenarios or limit unit size on them.
  4. The expected‑value metric needs work. It’s alarming that negative EV bets outperform positive ones.  This tells me the way I calculate EV or apply it to bet selection may be flawed.  I will re‑derive implied probabilities from odds and make sure the EV formula matches the standard definition .
  5. Totals and pace have no edge — yet. With accuracy around 49 %, I’m effectively flipping a coin.  I either need to overhaul my totals model or exclude totals from my recommendations until version 2 shows improvement.
  6. Remember the sample‑size caveat. Some categories have fewer than 10 games.  As I’ve noted on the site, tiny samples should be treated as noise, not insight.  I’ll keep collecting data before drawing strong conclusions.

Closing thoughts

Developing a predictive model is an iterative journey.  I’m encouraged by the strong performance in picking winners and modest edge against the spread, but I’m also humbled by the misfires in contrarian plays, EV classification and totals.  By focusing on expected value — not just win rate — I can better gauge where the model is truly profitable.  As I continue to refine my algorithms and incorporate more data, I expect these reflections to evolve.  For now, the data tells me where I’m on the right track and where I need to put in more work — and I wanted to share that candidly with you.