ATSWINS

How AI Measures True Odds: Stripping the Vig to Find Hidden Value

Posted June 22, 2026, 12:40 p.m. by Luigi 1 min read
How AI Measures True Odds: Stripping the Vig to Find Hidden Value

True odds vs market prices and implied probability is not just jargon, it is basically the whole lens I use to turn messy sportsbook numbers into something that feels structured and actually beatable over time. I approach this like a sports analyst who leans heavily on AI models but still respects the limits of data, randomness, and market efficiency. The goal is simple even if the execution is not. Take odds that look like noise, convert them into clean probabilities, remove the sportsbook margin, and then compare everything against a calibrated model that tries to represent reality as honestly as possible. If there is a gap between what the market implies and what the model believes, that is where value lives.

This write-up is a full breakdown of that process, but in a more conversational way, like I am just walking you through how I think about it day to day. No fluff, no pretending this is magic, just structured probability thinking applied to sports betting.

Alongside this breakdown, one related deep dive that ties directly into the same framework is the article titled “Cracking the Code: How AI Calculates Betting Value and Finds a Market Edge”, which expands on how value detection actually works once probability models meet real sportsbook pricing. That idea connects closely to everything here, especially the part where edges are identified and tested in real market conditions.

Table Of Contents

  • True odds, market prices, and implied probability
  • Data and feature engineering for probability estimation
  • Modeling approaches that actually measure true odds
  • Evaluation, calibration, and backtesting
  • Special notes by market
  • Practical pipeline
  • Interpreting model outputs
  • ATSwins angle
  • Worked example
  • Common pitfalls
  • Deploy and monitoring
  • Final checklist
  • Related Posts
  • Frequently Asked Questions (FAQs)

True odds, market prices, and implied probability

What true odds actually mean in practice

True odds are basically your best estimate of what should happen if you could replay the same game under identical conditions a huge number of times. If a team wins 58 out of 100 identical matchups, then 58 percent is the true probability in that simplified universe. The problem is we never actually get that clean universe in real sports. Everything is noisy, context dependent, and constantly shifting.

Market prices are what sportsbooks publish. These are not pure probabilities. They are probabilities plus a built in margin, plus adjustments for public behavior, plus risk balancing on their side. So when you see a line, you are not seeing truth, you are seeing truth plus tax plus opinion shaping.

Implied probability is what you get when you convert those odds into probability form. But even that is still dirty because it still contains the sportsbook margin. That is why we remove the vig to get something closer to a fair baseline.

Fair odds are the cleaned up version of implied probability where the total probability across outcomes sums to one. That is the reference point I always compare against. If my model cannot consistently beat fair odds, then it is not useful in a betting sense.

Turning odds into probability step by step

When I convert odds, I treat American and decimal formats as just different inputs to the same idea. Everything becomes probability.

For American odds, positive numbers mean underdog and negative numbers mean favorite. The conversion is straightforward once you get used to it. Positive odds convert by dividing 100 by the odds plus 100. Negative odds convert by dividing the absolute value of the odds by the odds plus 100.

So if you see something like minus 150, that becomes 150 divided by 250 which is 0.60. If you see plus 135, that becomes 100 divided by 235 which is about 0.426.

When you add those together you will notice something important. They usually add up to more than one. That extra amount is the sportsbook margin showing up in probability form.

Removing the margin to get fair probability

Once you have raw implied probabilities, you normalize them. You divide each side by the total sum so everything adds to exactly one.

So if one side is 0.60 and the other is 0.426 and the sum is 1.026, you divide each by 1.026. That gives you a fair baseline where the bookmaker edge is stripped out.

This step matters more than beginners realize. Without it, you are basically comparing your model to a distorted reference point.

When a real edge exists

Once everything is normalized, you can finally do something meaningful. You compare your model probability to the fair market probability.

If your model says 62 percent and the market says 58.4 percent, the difference is 3.6 percentage points. That is your edge.

That edge is not money yet. It is just signal. You still need to think about variance, bankroll sizing, and whether that edge survives over time.

At ATSwins , this is the core workflow. Everything starts with clean probability comparison, not hype or gut feeling.

Data and feature engineering for probability estimation

Building the dataset without fooling yourself

The hardest part of this whole system is not modeling. It is data alignment. You have to make sure every feature you use would actually have been available at the time you pretend to place the bet.

That means no future information, no post game stats leaking into training, and no accidentally using updated injury reports that were not known at decision time.

I usually think of each game as a frozen snapshot in time. Whatever is known at that moment is fair game. Everything after that moment is illegal from a modeling perspective.

What actually matters in features

You do not need thousands of features. Most of them are noise. What actually matters tends to be stable and interpretable.

Team strength over rolling windows is one of the most important signals. Recent performance matters more than season averages because sports are dynamic.

Player availability is another big one. A single star being out can swing probabilities massively, especially in NBA and NFL contexts.

Rest and travel also matter more than people expect. Back to backs, long road trips, altitude changes, and compressed schedules all affect performance.

Matchup context matters too. Some teams are stylistically bad against others even if their overall records look similar.

Market movement can also be included carefully as a feature, but only if you are sure it is timestamped correctly and does not leak future information.

Avoiding data leakage

Leakage is the silent killer of sports models. It makes everything look amazing in backtests and then completely fail in real life.

The rule is simple. If you would not have known it at decision time, you cannot use it.

That includes updated injury statuses that were announced after your cutoff, final lineup confirmations that came later, or closing lines if you are modeling earlier time windows.

Labels and structure

For moneyline prediction, labels are binary. Win or lose.

For spreads, it is cover or not cover.

For totals, it is over or under.

The important part is consistency. If your labels are messy, your model will learn noise instead of signal.

Modeling approaches that actually measure true odds

Starting simple with logistic regression

I always like starting with logistic regression because it forces discipline. It does not hide mistakes behind complexity.

It directly outputs probabilities, which is exactly what we want. It also helps you understand which features actually matter instead of guessing.

Regularization is important here because sports data is noisy. You do not want coefficients exploding just because of small sample quirks.

Moving to gradient boosted models

Once the baseline is stable, I usually bring in gradient boosted trees. These are great at capturing nonlinear relationships that simple models miss.

They handle interactions between features without you manually engineering every combination.

But they can also overfit if you are not careful. That is why I keep depth limited and rely heavily on time based validation.

Calibration is where truth actually shows up

Even good models are not automatically well calibrated. That means a predicted 70 percent outcome might only happen 62 percent of the time.

Calibration fixes this mismatch.

Methods like Platt scaling or isotonic regression adjust outputs so probabilities actually match reality over time.

Without calibration, you are basically pretending your model is more confident than it should be.

Stacking models for stability

I sometimes combine multiple models into a single meta model. The idea is not to get fancy. It is to stabilize predictions.

A simple logistic regression on top of multiple model outputs often works better than trying to build one perfect model.

Uncertainty matters

I do not trust single point predictions. I think in ranges and distributions.

If a model says 62 percent, I want to know how often that 62 becomes 55 or 70 under different conditions.

This is important for bankroll decisions because uncertainty directly affects how aggressive you should be.

Evaluation, calibration, and backtesting

How I measure if a model is good

Brier score is one of my favorite metrics because it directly measures probability accuracy. Lower is better.

Log loss is stricter and punishes confident wrong predictions more heavily.

Accuracy alone is not enough because you can be right often but still miscalibrated.

Backtesting like it actually matters

The biggest mistake people make is random splitting. Sports data is time dependent, so you must use walk forward testing.

You train on past seasons and test on future seasons. Then you roll forward and repeat.

This simulates real life where you only know the past.

Converting probabilities into betting decisions

Once you have probabilities, you convert them back into fair odds and compare them to the market.

If your model probability is higher than the market implied probability after removing vig, you have potential value.

But value is not enough. You also have to consider slippage, limits, and variance.

Bankroll sizing

I use fractional Kelly instead of full Kelly because full Kelly is too volatile.

Half or quarter Kelly smooths out variance while still scaling with edge size.

You also have to consider correlation between bets. If multiple bets depend on the same injury, they are not independent.

Special notes by market

Moneyline models are the cleanest because they map directly to binary outcomes.

Spreads are trickier because margin of victory introduces extra variance.

Totals depend heavily on pace and style, especially in basketball and football.

Player props are the hardest because sample sizes are smaller and roles change frequently.

Practical pipeline

A working system usually looks like this in practice.

First you collect data and freeze it at decision time. Then you build rolling features like team strength and rest factors.

Next you train a baseline logistic model. After that you add boosted trees for extra signal.

Then you stack them and calibrate probabilities.

Finally you backtest using walk forward validation and apply fractional Kelly sizing to simulate real betting conditions.

At ATSwins, this pipeline is essentially how models are structured before they ever reach production.

Interpreting model outputs

One thing I always emphasize is interpretability.

If the model says a team has a 62 percent chance to win, I want to know why.

Tools like feature attribution help break this down into rest advantage, lineup strength, and market movement influence.

This is not just for curiosity. It helps detect bugs or leakage in the system.

ATSwins angle

ATSwins takes this entire workflow and turns it into something usable for bettors.

Instead of raw probabilities, you get structured picks, props, and betting insights across major sports leagues.

The system continuously compares model probabilities to market odds and highlights where edges exist.

It also tracks performance so you can see how predictions behave over time instead of relying on short term streaks.

Worked example

Imagine a basketball game where the market sets a team at minus 150.

That implies about 60 percent chance before adjusting for vig.

After removing vig, maybe the fair probability is around 58.4 percent.

Now suppose your model says 61.5 percent.

That gives you a 3.1 percent edge.

You then convert that into expected value and adjust for slippage.

After that you size the bet using fractional Kelly, maybe around one percent of bankroll.

The key point is that even a small edge can matter if it is consistent over many games.

Common pitfalls

A lot of models fail because they overfit noise.

Others fail because they accidentally include future information.

Some fail because they ignore calibration completely.

And many fail because they assume backtests equal real life performance.

The fix is always the same. Simpler features, stricter validation, and realistic assumptions.

Deploy and monitoring

Once a model is live, you have to monitor it.

If input data drifts, predictions become unreliable.

If injuries or roster changes shift league dynamics, you need recalibration.

If performance drops, you retrain using the most recent data window.

This is not a one time build. It is a continuous system.

Final checklist

Before trusting any model output, I make sure the data is time aligned, the model is calibrated, the backtest is walk forward, the edges are net of vig, and the bankroll sizing is conservative.

If any of those pieces are missing, I do not trust the signal.

Related Posts

A deeper extension of these ideas can be found in “ Cracking the Code: How AI Calculates Betting Value and Finds a Market Edge ,” which expands on how models translate probability into actual betting value and how market inefficiencies are detected in practice. Alongside that, ATSwins also covers related breakdowns on NBA sportsbook odds versus true probability, AI expected value betting in playoffs, and broader guides on understanding betting odds and probability. All of these connect back to the same foundation: converting odds into probability, removing margin, and comparing against calibrated model output.

Frequently Asked Questions

How AI measures true odds is basically about converting sportsbook lines into probability form, removing margin, and comparing those values to model outputs built from historical and real time data. The goal is not prediction for its own sake but identifying consistent pricing inefficiencies.

Removing vig works by converting odds into implied probabilities, summing them, and normalizing so they add to one. That creates a fair baseline that removes bookmaker margin.

The most important data for building true odds models includes team strength metrics, player availability, rest and travel factors, matchup styles, and properly timestamped market lines.

Calibration and bankroll sizing matter because even accurate models can be miscalibrated or volatile. Techniques like fractional Kelly help translate probability edges into controlled bet sizes.

ATSwins applies this framework by turning probability models into actionable betting insights, tracking performance over time, and helping users understand where real value exists in markets rather than relying on raw odds alone.

A more realistic day to day way this actually plays out

In real life, this whole system does not feel as clean as it looks on paper. Most of the time I am not sitting there doing perfect math with calm conditions. It is more like checking updates, watching lines move, and constantly deciding whether anything meaningful actually changed or if it is just noise.

A typical cycle starts with data updates. Injuries come in, rosters get confirmed, and the market starts shifting. The first thing I do is freeze the time window in my head. I ask myself what was known at T minus X hours and ignore everything that came after.

Then I run the model outputs. Not once, but multiple times with slightly different assumptions. One run might assume normal minutes for a questionable player. Another might assume reduced minutes. I am not trying to predict the future perfectly. I am trying to understand sensitivity.

If the probability barely changes across assumptions, then the edge is probably weak. If it swings a lot, then the market might be mispricing uncertainty rather than outcome.

After that I compare everything to no vig market probabilities. This is where most of the decision making happens. Not the raw prediction, but the gap between prediction and fair price.

Why most people misunderstand edges

One of the biggest misconceptions in betting is thinking that a small edge guarantees profit in the short term. That is not how probability works.

Even if you have a real edge, variance can easily dominate small sample sizes. You can be correct in logic and still lose for long stretches. That is normal, not failure.

Another mistake is overreacting to recent wins or losses. If you win five bets in a row, it does not mean your model improved. If you lose five in a row, it does not mean it broke.

What matters is long term calibration. Over hundreds or thousands of bets, the probabilities should match outcomes. That is the only real test that matters.

People also tend to overvalue complex models. In reality, a simple but well calibrated model often beats a complicated but unstable one. Stability beats cleverness almost every time in this space.

Expanding the ATSwins perspective in practice

From a systems point of view, ATSwins is basically a wrapper around everything described above, but designed to make it usable without requiring someone to build the infrastructure themselves.

Instead of just seeing raw probabilities, the system translates them into actionable insights. That includes identifying where the model edge is strongest, how stable that edge is, and how it behaves under different conditions.

It also focuses heavily on tracking. That part is underrated. A single prediction does not mean much. What matters is how predictions behave across time, across leagues, and across different market types.

For example, if NBA moneyline edges are consistently profitable but NFL totals are not, that tells you something important about model structure or feature quality. Without tracking, you would never see that.

The goal is not just to generate picks but to understand why those picks exist and whether they are reliable.

A deeper look at backtesting mistakes

Even when people use walk forward testing correctly, they still often make subtle mistakes.

One common issue is assuming that past market conditions are identical to current ones. They are not. Sportsbooks adjust quickly, and liquidity changes over time. So a model that looked great in an older environment might degrade in a newer one even if nothing else changes.

Another issue is ignoring correlation between bets. If you place multiple bets that depend on the same underlying assumption, like a key player being healthy, then your variance is much higher than it looks on paper.

Backtests also tend to assume perfect execution. In reality, you will not always get the exact line you modeled. Sometimes the price moves before you can act. Sometimes limits prevent full sizing.

That is why I always mentally discount backtest performance slightly. If something looks too perfect, it probably is.

Thinking in probabilities instead of outcomes

The biggest mental shift required for this entire system is learning to stop thinking in terms of wins and losses and start thinking in distributions.

A single game is meaningless in isolation. What matters is how your probability estimates behave across many games.

If you consistently bet into 55 percent edges, you are not trying to be right every time. You are trying to be right often enough that the math works out over time.

This is uncomfortable for most people because humans naturally think in narratives. But sports betting with models is not narrative driven. It is distribution driven.

How uncertainty changes everything

Uncertainty is not just a side detail. It is part of the decision itself.

Two bets can both show a 3 percent edge, but if one is highly uncertain and the other is stable, they should not be treated the same.

That is where ensemble methods and Bayesian thinking help. They force you to acknowledge that your model is not a single truth generator. It is an approximation system with error bars.

Once you start thinking that way, bankroll management becomes more logical. You are no longer betting on certainty. You are betting on expected value adjusted for risk.

Final mindset shift

At the end of the day, the entire idea of true odds versus market prices is about humility.

The market is not always wrong. Models are not always right. The goal is not domination, it is small consistent advantages stacked over time.

If you approach it like that, everything becomes more stable. You stop chasing perfect predictions and start building systems that survive randomness.

That is really the whole point of this framework. Not to guess better, but to think clearer.