Metrics & Evaluation Interactive
Closing Line Value (CLV)
Measure betting skill by comparing your bet price to the closing line. Positive CLV = you're beating the market. The #1 predictor of long-term success.
๐ What is CLV?
CLV = Closing Prob - Opening Prob
If you bet at -110 and the line closes at -115, you got a better price. The market moved to confirm your bet was sharp.
- โข Positive CLV = you bet before the line moved your way
- โข Negative CLV = line moved against you
- โข Consistent +CLV = sharp bettor
Why CLV Matters
- โข Predictive: +CLV bettors profit long-term
- โข Immediate: Don't need outcome to measure
- โข Skill signal: Better than win rate
- โข Detection: Books use CLV to identify sharps
Your Bet
-200 200
-200 200
50 1000
๐ CLV Analysis
Opening Implied 52.4%
Closing Implied 53.5%
CLV +1.11%
Dollar Value +$1.22
Winning: Positive edge detected
Cumulative CLV (50 Bets)
Upward trend = you're consistently getting better prices than the market.
CLV Benchmarks
<-2%
Square
-2 to 0
Losing
~0%
Neutral
0 to 2
Winning
>2%
Sharp
๐ก Practical Applications
For Bettors
- โ Track CLV for every bet, not just outcomes
- โ Bet early when you have information edge
- โ Consistent +CLV matters more than win rate
For Books
- โ CLV is the #1 sharp detection metric
- โ +2% CLV over 100+ bets = definitely sharp
- โ Use CLV to set limits and move lines
R Code Equivalent
# Calculate CLV
american_to_prob <- function(odds) {
if (odds < 0) return(-odds / (-odds + 100))
return(100 / (odds + 100))
}
calculate_clv <- function(opening, closing) {
open_prob <- american_to_prob(opening)
close_prob <- american_to_prob(closing)
clv <- (close_prob - open_prob) * 100
return(clv)
}
# Track bettor CLV
bettor_clv_analysis <- function(bets) {
bets$clv <- mapply(calculate_clv, bets$opening, bets$closing)
list(
avg_clv = mean(bets$clv),
total_clv = sum(bets$clv),
positive_rate = mean(bets$clv > 0),
classification = ifelse(mean(bets$clv) > 2, "Sharp",
ifelse(mean(bets$clv) > 0, "Winning", "Square"))
)
}
# Example
clv <- calculate_clv(-110, -115)
cat(sprintf("CLV: %+.2f%%\n", clv))โ Key Takeaways
- โข CLV = Closing prob - Opening prob
- โข Positive CLV = you beat the closing line
- โข Best predictor of long-term betting success
- โข +2% avg CLV = sharp bettor
- โข Track CLV, not just win/loss
- โข Books use CLV to identify sharps