Skip to content

VALUEODDSAPI / DEVELOPER RESOURCES

Closing line value (CLV): how to calculate it

Closing line value is one of the most useful ways to judge a pricing model or betting process, because it converges much faster than profit and loss. This guide shows both common formulas, a working Python example and the data mistakes that make CLV numbers misleading.

Published by ValueOddsAPI · 2 November 2026

In 30 seconds

New to odds data? Five terms first

Closing line
The last price offered before the event starts.
CLV
How much better (or worse) your price was than the closing price, in percent.
Raw CLV
Your odds ÷ closing odds − 1. Simple, but includes the bookmaker margin.
Fair CLV
Your odds × fair closing probability − 1. The margin is removed first.
Margin
The bookmaker’s built-in edge, which makes all outcomes add up to more than 100%.

What closing line value means

The closing line is the last price offered before an event starts. Closing line value (CLV) compares the price you took, or the price your model produced, with that closing price. If you took 2.20 and the market closed at 2.00, you got a better price than the final market consensus.

The closing price usually contains the most information: team news, line-ups, weather and the money of the sharpest bettors. Beating it consistently is therefore one of the most widely used signs that a pricing model or a betting process is finding real value.

Two ways to calculate it

Raw CLV compares the two prices directly: CLV = taken odds ÷ closing odds − 1. Taking 2.20 against a close of 2.00 gives +10%.

Fair CLV first removes the bookmaker margin from the closing market, then asks what the price you took was worth: CLV = taken odds × fair closing probability − 1. If Over 2.5 closed at 2.00 and Under at 1.87, the implied probabilities add up to 103.5%. Removing that margin proportionally gives Over a fair probability of 48.3%, and 2.20 × 0.483 − 1 ≈ +6.3%.

Raw CLV is simple but flatters you when the closing market has a big margin. Fair CLV is closer to an expected-value estimate, but depends on the margin-removal method. Report which one you use.

Which closing line should you use?

Closing line references and their trade-offs
ReferenceAnswers the questionStrictnessWatch out for
The same bookmaker’s closeDid I beat the book I actually bet with?MediumA soft bookmaker’s close can lag the wider market.
A sharp reference such as PinnacleDid I beat the sharpest market?HighYou need that bookmaker’s closing price for the exact same market and line.
Market consensusDid I beat the average of many bookmakers?MediumDepends on which bookmakers are included and how outliers are handled.

Read why Pinnacle is a common reference in Pinnacle odds API.

Raw and fair CLV side by side

Worked example: raw and fair CLV
StepValueWhat happens
Your priceOver 2.5 at 2.20The odds you took.
Closing marketOver 2.00 · Under 1.87The last prices before kick-off.
Raw CLV+10.0%2.20 ÷ 2.00 − 1.
Margin in the close3.5%1 ÷ 2.00 + 1 ÷ 1.87 = 103.5%.
Fair probability (Over)48.3%50.0% ÷ 1.035.
Fair CLV+6.3%2.20 × 0.483 − 1. Lower than raw CLV because the margin is removed.

A minimal implementation

This Python example calculates both versions for one bet. In production you would load the taken price from your bet log and the closing market from your historical odds data.

def fair_probs(odds):
    """Remove the margin proportionally from a complete market."""
    implied = [1 / o for o in odds]
    total = sum(implied)
    return [p / total for p in implied]

def clv(taken, closing_market, selection):
    """Return raw CLV and CLV against the fair closing price."""
    closing = closing_market[selection]
    raw = taken / closing - 1
    fair = taken * fair_probs(closing_market)[selection] - 1
    return raw, fair

# Took Over 2.5 at 2.20; the market closed at 2.00 / 1.87
raw, fair = clv(2.20, [2.00, 1.87], selection=0)
print(f"raw {raw:+.1%}, fair {fair:+.1%}")   # raw +10.0%, fair +6.3%

Pitfalls that ruin CLV numbers

Line mismatch. Over 2.5 at the time of the bet must be compared with Over 2.5 at the close, not with whichever main line the market moved to.

Wrong closing moment. Use the last price before the scheduled start, captured as close to kickoff as possible. A snapshot from an hour earlier is not a closing line.

Missing closing prices. Markets can be suspended or withdrawn before the start. Exclude those bets and count them, rather than silently using an older price.

Live bets. In-play bets have no pre-match closing line in the same sense. Measure them separately or leave them out.

Small samples. One bet with positive CLV says little. Look at the average over hundreds of bets, and at how it changes over time.

Frequently asked questions

Does positive CLV guarantee profit?

No. CLV measures whether you beat the closing price, not whether bets won. Over a large sample, consistently positive CLV is a common sign of an edge, but results still vary and costs such as limits and commission matter.

Should I calculate CLV against the bookmaker I bet with or against Pinnacle?

Both are valid but answer different questions. The same bookmaker’s close tells you whether you beat that book; a sharp reference tells you whether you beat the wider market. Report which reference you use.

What data do I need to measure CLV?

The exact price and time of each bet, and the closing price for the same event, market, selection and line from a historical odds source. For fair CLV you need the complete closing market so the margin can be removed.

Can ValueOddsAPI provide closing odds?

Historical datasets are available on request. Tell us which bookmakers, sports, markets and period you need, and we confirm what we hold before activation.

Related reading

ValueOddsAPI provides odds data, not betting advice. Betting involves risk of loss and is for adults (18+) only. If gambling stops being fun, contact your local support service, such as StopSpillet in Denmark.

Get the data into your product

Solo $999/month (personal use), Pro $2,000, Scale $4,500, Elite $9,000 and Enterprise from $15,000/month, excluding VAT. Coverage and usage rights are confirmed before activation. Missing a bookmaker? We add the sources you need, scoped and priced per project.