Win rate alone is incomplete. A bettor can win often while accepting poor prices, or lose over a short sample despite consistently entering ahead of a well-defined pregame close.
Closing Line Value (CLV) is one useful market-relative diagnostic. It compares the price you accepted with a consistently defined later reference price. It does not prove causation, expected value, or future profit by itself.
ZenHodl correction (July 21, 2026): conventional pregame CLV can be outcome-blind; our in-play "close" is often near-terminal and can encode the eventual result. We therefore retracted our former win-rate-by-CLV-sign claim. See the full audit and rejected-side control.
What CLV Is
Closing Line Value is the difference between the price you got and a defined market reference close. For conventional sportsbook analysis that reference is usually the last pregame line. The definition must stay consistent across observations.
Two equivalent ways to compute it:
CLV for a BUY (cents) = closing_price - entry_price
CLV (in basis points) = (entry_decimal_odds / closing_decimal_odds - 1) × 10000
The first is the BUY-side sign convention used by ZenHodl. For pregame analysis, the close should be a pregame reference. Our live-trading scorecard also publishes a near-terminal captured close, but that in-play measure has an explicit outcome-contamination caveat and is descriptive only.
For sportsbook bettors the second form is more natural because the entry and closing are in odds rather than dollar prices. A +5% CLV means the market closed at odds about 5% worse for the bookmaker than the odds you took.
Why CLV Complements Win Rate
Win rate is a result. It mixes two things together — the quality of your picks and the variance of the outcomes. In a small sample, a coin-flip bettor can produce any win rate from 30% to 70% with completely random picks.
CLV is a process metric. It measures whether entries were systematically ahead of the chosen market reference. A liquid pregame close aggregates information from market participants, so sustained positive pregame CLV can be evidence worth investigating alongside calibration, execution costs, and realized outcomes.
It is not a mechanical profit theorem. Sample selection, vig, fees, liquidity, closing-price quality, market type, and correlated bets can all break a simplistic CLV-to-profit inference. Report uncertainty and keep P&L and calibration in the evaluation.
Sportsbook risk teams may use price quality among many account signals. Their exact limiting rules are proprietary, vary by operator, and should not be inferred from one public CLV threshold.
Worked Example: Prediction Market
You buy 100 shares of the Lakers YES contract on Polymarket at 35¢ pregame. Game starts. Twenty minutes before tipoff the market settles at a final pre-game price of 41¢.
CLV = entry_price - closing_price = 35¢ - 41¢ = -6¢
Wait — that's negative. Yes: positive CLV here means closing price is below entry price if you bought, because you paid more than the market eventually said the contract was worth. Let me re-state, carefully:
When you buy at price $p_\text{entry}$ and the contract closes at $p_\text{close}$:
CLV_for_buyer = p_close - p_entry
You want the closing price to be higher than your entry — the market eventually agreed the contract was worth more. So in the example above:
- Entry: 35¢
- Close: 41¢
- CLV: +6¢ (good — market closed above your entry by 6 cents)
If the contract had closed at 28¢, your CLV would have been -7¢ (bad — you paid 35¢ for something the market eventually priced at 28¢).
ZenHodl records entry price, its defined close, and the difference where coverage exists. The public scorecard reports this unconditioned distribution and its coverage. For in-play execution we prefer fixed-horizon markouts measured before another major game event.
Worked Example: Sportsbook
You bet $100 on the Lakers at +110 (decimal 2.10, implied probability 47.6%). The market closes with the Lakers at +100 (decimal 2.00, implied probability 50.0%).
CLV (basis points) = (2.10 / 2.00 - 1) × 10000 = 500 bps = +5%
You got the Lakers at 47.6% implied probability and this reference close was 50%. That is a positive pregame price observation; a representative sample and uncertainty analysis are still needed before calling it an edge.
If the market had closed at +120 (decimal 2.20):
CLV = (2.10 / 2.20 - 1) × 10000 = -454 bps ≈ -4.5%
You took -4.5% CLV against this reference close. Whether the Lakers won does not change that one price comparison. Over a larger representative sample, compare the CLV distribution with calibration, fees, and realized results rather than assuming convergence.
How Bookmakers Use CLV
Sportsbooks can compare accepted bets with later price movement as one input to risk management, but their account-scoring systems are proprietary.
Illustrative price-quality review might consider sample size and average movement, but no public threshold should be presented as a universal operator rule:
- number and type of bets logged
- average movement after the accepted price
- market liquidity, timing, limits, and other account-risk signals
Different operators may limit accounts for different commercial and risk reasons. CLV can arrive sooner than a stable realized-P&L estimate, but it is neither the only signal nor a guarantee of an operator response.
Prediction markets behave differently because positions are matched against other traders rather than a bookmaker taking principal risk. Positive CLV means the recorded entry finished ahead of the chosen close; identifying why requires separate evidence about quote freshness, selection, liquidity, and execution. It does not by itself prove that another trader was slower or less informed.
How to Track CLV Yourself
You need three things for every bet:
- Entry price (cents on a prediction market, or American/decimal odds at a sportsbook)
- Closing price (last price before event start, or last in-band quote before resolution)
- A consistent way to compute the difference
For a sportsbook:
def clv_bps(entry_decimal: float, closing_decimal: float) -> float:
"""CLV in basis points. Positive means you beat the close."""
return (entry_decimal / closing_decimal - 1) * 10000
For a prediction market:
def clv_cents(entry_price_cents: float, closing_price_cents: float, side: str) -> float:
"""CLV in cents. Positive means you beat the close.
`side` is 'buy' or 'sell'."""
if side == 'buy':
return closing_price_cents - entry_price_cents
else: # sell
return entry_price_cents - closing_price_cents
Log every trade, including non-fills and rejected observations where relevant. There is no universal count at which CLV becomes reliable: dependence between bets and variation by sport, market, and close source determine the effective sample size. Publish a confidence interval and cluster by game where appropriate.
Sustained Positive CLV vs Lucky Streak
A common misread: someone has +10% CLV on their last 20 bets and concludes they have massive edge. That's noise. CLV variance across small samples is large.
As a rough workflow—not a universal threshold:
- 20-50 bets: treat any mean as highly preliminary.
- 100-200 bets: report the interval and inspect whether a few games dominate it.
- Larger samples: stratify only when each subgroup still has enough independent games.
- Every sample size: audit close timing, executable prices, fees, exclusions, and missingness.
ZenHodl's CLV scorecard publishes the unconditioned breakdown across our admitted trade history. The separate CLV evidence page is the retraction explaining why our former outcome-conditioned interpretation failed its rejected-side control.
Using CLV as a Pre-Trade Gate
Once you've accumulated enough CLV history per market segment, you can use it to filter signals before placing them. The pattern: bucket your historical trades by (sport, edge band), measure the average realized CLV per bucket, and refuse to trade buckets that have consistently lost market value to the close.
ZenHodl uses historical price behavior as one input to operational review. A bucket with negative measured CLV is a warning hypothesis—late information, adverse selection, selection bias, or a measurement defect are all possible. It should be investigated and validated out of sample before changing a live gate.
The Bottom Line
Win rate tells you what happened. A consistently defined CLV tells you how the entry compared with a market reference. They answer different questions.
If you track CLV, pre-register the close, use executable prices, include fees and non-fills, report missingness, and avoid conditioning the analysis on information that arrived after entry. Treat it as a diagnostic—not an instruction to continue or stop betting by itself.
The useful question is not whether CLV is universally “good,” but whether your particular definition is outcome-blind, consistently captured, and predictive out of sample after costs.
Free interactive CLV calculator — paste your entry and closing prices, see CLV in cents and basis points. See live CLV breakdowns at /clv and /clv-evidence. Pair with the Kelly Criterion calculator, the hedge calculator, and the odds converter. Related reading: why we reject 65% of signals, betting strategies with ML probabilities.