CLV / +EV / no-vig
CLV and +EV explained: closing line value and no-vig fair odds
+EV asks whether a price pays more than the outcome is worth. CLV asks whether the price you took was better than the closing line. Both come down to a few lines of arithmetic, worked through here with real numbers.
What +EV means
Expected value (EV) is what a bet returns on average if you could place it many times at the same price. A bet is +EV when the price you are offered is longer than the fair price for that outcome.
That needs two numbers: the offered price, which any book shows you, and a fair price, which nobody shows you. The fair price is an estimate. The most common way to estimate it is to take a market's prices and remove the book's margin, known as the vig.
Remove the vig from a two-way market
Take a two-way market priced -120 on Team A and +100 on Team B. Convert each side to implied probability:
The two sides add to more than 100%. The extra 4.55% is the vig. To remove it, divide each side by the total. This is called the multiplicative method, and it is the one most no-vig calculators use:
The fair probabilities now add to 100%. Other methods (additive, power, Shin) split the margin differently between favorite and underdog. Pick one, test it on your own data, and keep it consistent.
Which market you devig is your choice too. Some builders use one book's market. Others average the no-vig prices of several books for a consensus. An odds API with many books in one response makes either approach one request.
Expected value: the maths
Say another book offers Team B at +115, and your fair chance for Team B is 47.83%. Expected value per $100 staked:
The same check in one line: multiply the fair chance by the decimal odds and subtract 1. 0.4783 × 2.15 - 1 = 0.028. Anything above zero is +EV against your fair price; anything below is -EV.
That 2.8% is only as good as the fair estimate behind it. Change the market you devig or the method and the number changes. An +EV screen does this calculation for every side at every book and lists the prices above fair.
What closing line value (CLV) is
The closing line is a book's last price before the game starts. By then the book has seen the most money and the most news, so the close is the most informed price that book ever posts. Closing line value is how your price compares with it.
If you took a better price than the close, you have positive CLV. Over many bets, people use CLV as a check on their process, because it builds up much faster than results do. A season of results is noisy; the gap between your prices and the closing prices shows up after far fewer bets.
Measure CLV against the same book's closing line. You took the price at one book, so compare it with that book's close. Each book closes at its own number for its own customers. Grading your price against a different book's close mixes two markets.
CLV: the maths
You took Team B at +130. At kickoff, the same book closed Team B at +110 and Team A at -130.
Price CLV
In implied probability, you bought at 43.48% something the close priced at 47.62%.
No-vig CLV
The close still has the book's margin in it. Remove it the same way as above to compare your price with the fair close:
Price CLV is simpler to compute and explain. No-vig CLV reads as the expected value of your price if the close was fair. Track both if you can, and keep the method the same across bets.
CLV on spreads and totals
For spreads and totals, compare the point first. Taking -2.5 on a favorite that closes -3.5 at the same book is a full point of CLV, and it crosses 3, the biggest key number in the NFL. Our post on NFL line movement explains why that point matters more than most.
Build +EV screens and CLV tracking with an odds API
Both tools need the same thing: many books' prices for the same fixture, in one shape, with a timestamp. That is what OddsLink serves.
- For an +EV screen, one request returns 46 books for a sport's fixtures. Devig the markets you trust into a fair price, then scan every other book's price for the same side and line.
- For CLV tracking, the
/closinghistory endpoint returns the last price each book showed before kickoff. Join each bet to the close at the book where it was placed./openersand the recorded series show how the line got there. - Arbitrage and middles scanners use the same data, compared across books instead of against a fair price.
Every price carries last_update, the time its book last confirmed it (null when the book does not say), so you can check how old a price is before you compare it. Each fixture keeps one id across all books. Older fixtures carry opening and closing prices; recent ones carry the full recorded series. Scale reads fixtures that started in the last 2 years, and Business reads everything recorded.
The Python odds scanner guide builds the best-price step in about 50 lines. The history guide covers openers and closing lines. OddsLink supplies the data. It does not place bets or give picks.
Questions
What is closing line value (CLV)?
CLV compares the price you took with the closing line, the last price before the game started. If you took +130 and the same book closed at +110, you got a better price than the close: 9.5% better in decimal odds.
Which closing line should CLV be measured against?
Against the closing line of the same book where you took the price. Each book closes at its own number, so comparing your price with another book's close mixes two different markets.
What does +EV mean in betting?
Positive expected value: the price you are offered pays more than a fair price for that outcome. If the fair chance of an outcome is 47.83% and a book offers +115, the expected value is +$2.83 per $100 staked.
How do you remove the vig from odds?
Convert each side of a two-way market to implied probability, add them up, and divide each side by that total. The results add to 100% and are the no-vig fair probabilities. The no-vig calculator does this for any two prices.
Does positive CLV or +EV mean a bet will pay off?
No. Both describe prices, not results. A single bet still wins or loses, and a fair price is an estimate that depends on the market and method you choose.
What data do I need for a CLV or +EV tool?
Current prices from many books for the +EV side, and each book's closing line for CLV. OddsLink returns 46 books in one JSON shape, and its history endpoints return each book's openers and closing lines.
Build +EV screens and CLV tracking on one API.
Current prices from 46 books in one call, and each book's own closing line from the history endpoints. Start on the Free plan.
More from the blog
Prediction markets / price comparison
Kalshi and Polymarket vs sportsbooks in one call
A recorded NBA response, raw versus net quotes, and documented curl and Python examples for comparing the same fixture.
Read the post →Exchange fees / expected value
How exchange fees change the price and erode long-term gains
Hold the bets and the pre-fee expected gain constant, then measure what each fee takes over 1,000 bets, including negative expected returns.
Read the post →API evaluation / testing
How to pick an odds API: a developer's test checklist
What to test during an odds API trial, how to measure each requirement, and what evidence to keep.
Read the post →NFL / line movement
NFL line movement explained: openers, steam and key numbers
Openers, closing lines, steam, key numbers 3 and 7, and why each book posts its own number. With real charts from last week's NFL games.
Read the post →Prediction markets / odds formats
Prediction market odds explained: convert a price to American odds
Turn a 62¢ contract into American odds and implied probability, and see how a market's spread and fees compare with sportsbook vig.
Read the post →