Closing Line Value Scorecard

Bot P&L is high-variance. CLV — the difference between our entry price and the market's closing price — is not. It tells you within a day whether the model beat the market, regardless of which side won the game. Most prediction-market vendors don't measure CLV. The ones that do, don't publish it. Here's ours, every sport, with full data download.

Why CLV is the leading indicator

Trades that beat the close win 92% of the time.
Trades that lost the close win 9%.

That spread is real edge. Within 1930 settled trades across 13 sports, the side of the closing-line you came out on is by far the strongest predictor of who won — stronger than the model's confidence, stronger than the live market price, stronger than any single feature in the model.

92%
+CLV WR
n=918
9%
−CLV WR
n=1012
1930 / 2672
trades with CLV measured
72.2% coverage
What CLV measures

Whether our model's entry price was better than the market's closing price. Positive = we got in cheaper than where the market settled. Negative = the market moved against us between our entry and game start. Independent of which side won the game.

What CLV does NOT measure
  • Profit / loss (variance dominates over short windows)
  • Model accuracy on a single game
  • Liquidity at our trade size
  • Slippage between fair and entry

Per-sport CLV — sorted best to worst

Each row is one sport's mean CLV across every settled trade we have. Green bars = positive (beating the close). Red bars = negative (losing the close). Sports with under 10 measured trades are flagged as preliminary.

Sport Verdict Mean CLV (all-time) 30d Beat close Overall WR n
NCAAMB
+CLV WR 100% (n=4) · −CLV WR 0% (n=0)
preliminary
PRELIMINARY
+17.75c 100%
4/4
53%
128W/114L
4/242
NCAAWB
+CLV WR 100% (n=3) · −CLV WR 0% (n=1)
preliminary
PRELIMINARY
+6.82c 75%
3/4
49%
41W/43L
4/84
WNBA
+CLV WR 94% (n=16) · −CLV WR 4% (n=24)
beating close
REPROMOTE
+3.31c +3.31c
n=40
40%
16/40
40%
16W/24L
40/40
SOCCER
+CLV WR 83% (n=41) · −CLV WR 7% (n=45)
beating close
PROMOTE
+2.33c +15.10c
n=24
48%
41/86
43%
37W/49L
86/87
LOL
+CLV WR 85% (n=80) · −CLV WR 8% (n=83)
beating close
PROMOTE
+1.08c +3.48c
n=50
49%
80/163
43%
75W/99L
163/176
NHL
+CLV WR 94% (n=68) · −CLV WR 20% (n=56)
breakeven
KEEP
-0.05c -2.01c
n=15
55%
68/124
56%
90W/70L
124/160
WTA
+CLV WR 96% (n=178) · −CLV WR 9% (n=187)
breakeven
KEEP
-0.62c -0.09c
n=157
49%
178/365
51%
188W/179L
365/373
MLB
+CLV WR 96% (n=221) · −CLV WR 9% (n=213)
bleeding
KILL
-2.67c -3.89c
n=203
51%
221/434
53%
262W/234L
434/496
ATP
+CLV WR 87% (n=118) · −CLV WR 9% (n=181)
bleeding badly
KILL
-3.77c -8.09c
n=123
40%
118/299
40%
120W/181L
299/301
CS2
+CLV WR 90% (n=166) · −CLV WR 11% (n=193)
bleeding badly
KILL
-3.95c +1.32c
n=69
46%
166/359
47%
258W/294L
359/557
?
+CLV WR 33% (n=3) · −CLV WR 0% (n=2)
preliminary
PRELIMINARY
-4.04c 60%
3/5
14%
1W/6L
5/7
TENNIS
+CLV WR 100% (n=2) · −CLV WR 0% (n=3)
preliminary
PRELIMINARY
-5.12c 40%
2/5
73%
8W/3L
5/11
NBA
+CLV WR 89% (n=18) · −CLV WR 0% (n=24)
bleeding badly
KILL
-10.10c 43%
18/42
42%
58W/79L
42/137

Edge bucket detail — where the edge actually lives

For each sport with enough data, mean CLV broken down by the edge size at entry. This is the layer at which gate decisions get made: "do trades at 8-11c edge in MLB actually beat the close?" If the bucket is green, yes. If it's red, the model is selling closing-line value into that band.

NCAAMB
mean CLV +17.75c · 4 measured
preliminary
Edge band n Mean CLV Beat % WR
8-11c 2 +10.50c 100% 100%
11-15c 1 +26.00c 100% 100%
15-20c 1 +24.00c 100% 100%
NCAAWB
mean CLV +6.82c · 4 measured
preliminary
Edge band n Mean CLV Beat % WR
11-15c 1 +32.80c 100% 100%
15-20c 2 -12.25c 50% 50%
25c+ 1 +19.00c 100% 100%
WNBA
mean CLV +3.31c · 40 measured
beating close
Edge band n Mean CLV Beat % WR
<5c 7 +13.79c 57% 57%
5-8c 19 -1.98c 37% 37%
8-11c 10 +7.09c 40% 40%
11-15c 4 +0.65c 25% 25%
SOCCER
mean CLV +2.33c · 86 measured
beating close
Edge band n Mean CLV Beat % WR
<5c 3 +35.67c 100% 100%
5-8c 1 -62.50c 0% 0%
8-11c 11 -3.83c 46% 54%
11-15c 56 +1.83c 46% 43%
15-20c 10 -3.86c 30% 20%
20-25c 3 +39.20c 100% 67%
25c+ 2 +8.50c 50% 0%
LOL
mean CLV +1.08c · 163 measured
beating close
Edge band n Mean CLV Beat % WR
<5c 14 +11.43c 64% 57%
5-8c 6 -9.25c 17% 33%
8-11c 50 -0.70c 54% 58%
11-15c 27 -3.16c 48% 41%
15-20c 22 +11.04c 59% 59%
20-25c 20 -11.83c 20% 20%
25c+ 24 +7.75c 54% 33%
NHL
mean CLV -0.05c · 124 measured
breakeven
Edge band n Mean CLV Beat % WR
<5c 20 -4.24c 50% 60%
5-8c 7 -3.34c 43% 43%
8-11c 34 -5.79c 44% 53%
11-15c 24 +3.87c 71% 67%
15-20c 19 +12.71c 63% 84%
20-25c 11 -6.56c 46% 54%
25c+ 9 +4.08c 67% 44%
WTA
mean CLV -0.62c · 365 measured
breakeven
Edge band n Mean CLV Beat % WR
<5c 112 -2.81c 51% 54%
5-8c 46 +3.05c 52% 59%
8-11c 39 -3.60c 46% 49%
11-15c 40 +5.96c 62% 60%
15-20c 53 +1.29c 51% 51%
20-25c 22 -1.06c 41% 41%
25c+ 53 -3.70c 34% 36%
MLB
mean CLV -2.67c · 434 measured
bleeding
Edge band n Mean CLV Beat % WR
<5c 150 -6.05c 43% 39%
5-8c 80 -0.50c 62% 72%
8-11c 46 -8.74c 50% 59%
11-15c 87 -0.48c 53% 58%
15-20c 34 -1.12c 50% 47%
20-25c 15 +3.36c 53% 53%
25c+ 22 +10.05c 59% 54%
ATP
mean CLV -3.77c · 299 measured
bleeding badly
Edge band n Mean CLV Beat % WR
<5c 49 -10.66c 35% 43%
5-8c 14 -28.24c 0% 7%
8-11c 48 -8.59c 38% 46%
11-15c 33 -6.05c 39% 33%
15-20c 94 +1.21c 45% 42%
20-25c 30 +2.61c 40% 27%
25c+ 31 +6.83c 52% 55%
CS2
mean CLV -3.95c · 359 measured
bleeding badly
Edge band n Mean CLV Beat % WR
<5c 92 -7.50c 50% 59%
5-8c 23 -21.34c 26% 44%
8-11c 32 -1.72c 56% 59%
11-15c 43 -2.97c 46% 51%
15-20c 57 -4.96c 40% 39%
20-25c 79 +3.20c 49% 39%
25c+ 33 -0.74c 42% 39%
?
mean CLV -4.04c · 5 measured
preliminary
Edge band n Mean CLV Beat % WR
<5c 5 -4.04c 60% 20%
TENNIS
mean CLV -5.12c · 5 measured
preliminary
Edge band n Mean CLV Beat % WR
<5c 5 -5.12c 40% 40%
NBA
mean CLV -10.10c · 42 measured
bleeding badly
Edge band n Mean CLV Beat % WR
<5c 4 -15.43c 25% 25%
5-8c 9 +3.67c 78% 78%
8-11c 6 -7.50c 50% 50%
11-15c 4 -34.27c 0% 0%
15-20c 11 -19.13c 27% 18%
20-25c 7 -4.49c 43% 29%
25c+ 1 +28.50c 100% 100%

Why we publish this

Bot P&L is the wrong scoreboard for whether a probability model is good. P&L is dominated by single-game variance — five coin-flips in a row can wipe out a quarter of edge that took 200 trades to build. CLV doesn't have that problem. It settles within a day, can't be flipped by a buzzer-beater, and answers exactly the question every quant cares about: did the model beat the market on price, before the game even started?

We publish CLV by sport because that is where the trading decisions actually get made. If a sport's CLV is consistently negative, the model is selling closing-line value into the market — the bot will lose money on that sport regardless of which side wins. We use this page to make those decisions in public. As of this update, we trade only sports with positive or breakeven CLV. The bleeders (NBA, CS2, WTA, Soccer) are paused until their CLV either improves or the underlying model is retrained — see the changelog for the suspension log.

The data is updated by a weekly cron that pulls Polymarket price history for every settled trade and computes the closing-line difference. Coverage is currently 72.2% across all trades. Older trades may not have CLV because Polymarket's history API doesn't always return non-terminal prices for resolved markets.

Citing this dataset

CC BY 4.0. Reproduce, quote, and embed freely with attribution. Programmatic access via JSON / CSV is rate-unlimited for non-abusive use.

ZenHodl Sports Forecasting CLV. Accessed 2026-06-15. https://zenhodl.net/clv

Definition. CLV is computed as closing_price_c − entry_price_c for each trade. Closing price is the last non-terminal Polymarket midpoint observed before the market converges to its 0/100 resolution. Entry price is the ask we paid at trade-open time.

Coverage. Older trades may lack CLV because the close-price-tracker only stored prices in a 5–95c band; markets that resolved fast can have no non-terminal price recorded. The weekly backfill_clv.py cron pulls Polymarket price history to close that gap retroactively. Current coverage: 72.2%.

Verdicts. A sport is labeled beating close at mean CLV ≥ +1c, breakeven between −1c and +1c, bleeding from −1c to −3c, and bleeding badly below −3c. Sports with under 10 measured trades are flagged preliminary and excluded from go/no-go decisions.

Active vs paused sports. The bot currently trades only NHL, ATP, LOL, and MLB (the sports with positive or breakeven CLV). NBA, CS2, WTA, and Soccer remain in this dataset because their historical CLV is meaningful research data and we'd rather show it than hide it. Their trading is paused until CLV trends positive or the underlying model is retrained.

Why most vendors don't publish CLV. Because most can't measure it (no entry-price stamp, no closing-price archive), and the ones that can usually find their CLV is negative. Negative CLV is uncomfortable to publish. We publish it anyway — it's the same reason the transparency index shows ZenHodl ranked #2 instead of fudging us to #1.