Think of the Sanity Score as a confidence score: how strong and confident the modelling is about the recommendation. It runs from 0 to 10, with 10/10 the maximum. In short, it is how confident the AI is about the insight and the recommendation, taking in questions like how fresh the odds are and how statistically sound the modelling is.
The score is built from four components, each shown in the Sanity table on your analysis, so you can see what is driving a high or low score.
Model variance checks that the model’s own output is internally sound for this market. The probabilities it produces need to add up the way probabilities should, and no single outcome should carry an extreme likelihood unless the underlying data (the xG picture, the match state) supports it. Full marks here mean the model’s numbers hang together; a reduced contribution means part of the output rests on an estimate the data does not fully back.
Data freshness confirms that the odds, and for live games the match stats, behind this run are current. For pre-match markets it checks the odds were verified within the last 5 minutes; a delayed feed or an unconfirmed timestamp pulls this component down. It exists because value is a comparison against the market’s price, and the comparison is only as good as the price it was computed against. A freshness drop on a re-run is a signal about the feed rather than a verdict on the fixture, and it does not undermine a bet you placed on fresh data earlier.
Market consistency grades the bookmaker’s side of the comparison. Prices on a market carry a margin, and this component measures how tight and coherent that book is, including whether related markets that should agree with each other do agree. A tight, consistent book is a reliable benchmark to measure value against. A wide or self-contradictory one makes any edge measured against it less trustworthy, and the component reflects that.
Divergence assessment reads the relationship between the model’s view and the market’s view on the fixture. Close alignment between the two adds confidence, since model and market are cross-validating each other. An extreme gap on any market reduces confidence, because one side of that comparison is likely to be unreliable at that moment. This component judges the relationship, and a gap is a reason to look closer rather than proof the model is wrong. In-play it is calibrated differently, because healthy gaps between a live model and a live market run far wider than pre-match ones.
Read the score alongside +EV rather than on its own. A high score with thin value means the market is already priced sharp; a big price gap with a low score means the data behind it is shakier. The two indicators most users look for together are a Sanity Score of 7+ and +EV of 5%+. And when a score changes between runs, the Sanity table tells you which component moved: model variance and market consistency are the ones to watch, while data freshness and divergence assessment are more often technical.
Related articles
- Why did my Sanity Score change when I re-ran the same analysis?
- What does EV mean and how should I use it?
- How fresh is the data, and when does it update?
- The divergence flag: what it is and what it means for you
- Getting started: a simple strategy for your first weeks
LOG IN