Closing-line value is the metric that actually correlates with long-run betting profitability. But CLV is only meaningful if you and the grader agree on what "closing line" means. There are four common conventions, they produce materially different numbers on the same bet, and most public grading tools quietly pick one without telling you. If you've ever wondered why your CLV looks great on your own spreadsheet but mediocre when you import to a third-party tracker, this is why.
This post walks through each convention with examples, names the trade-offs, and explains exactly which one ParlayAPI's /v1/clv/history uses by default and how to override it.
| Convention | What "close" means | Pros | Cons |
|---|---|---|---|
| 1. Last observed price before commence_time | Whatever the sharp anchor (Pinnacle, Circa) had displayed in the 60 seconds before the game started. | Closest to actual closing price. Industry-standard for academic studies. | Snapshot timing is sensitive: a 30-second-stale poller will miss the final tick. |
| 2. Last observed price before kickoff / first pitch | The price at the moment the game's official event-clock starts (which can be 5-15 minutes after the scheduled commence_time on TV broadcasts). | Aligns with what most fans actually see when they sit down to watch. | Requires per-sport event-clock data; commence_time is easier to consume. |
| 3. End-of-pregame snapshot | The last pre-game price observed before the market switches to live/in-play mode. | Unambiguous transition point for most modern sportsbook APIs. | Some books transition partial markets (h2h goes live, spreads remain pre-game) which fragments the "close." |
| 4. Settled / removed price | The last price the book published before pulling the market entirely. | The book itself effectively defines this; no ambiguity. | Some books leave markets up post-kickoff for partial-period bets; settled-price isn't always "the close" in any conventional sense. |
For a typical NFL game, the four conventions agree to within ~2 cents on the moneyline most of the time. But there are systematic differences on three types of game:
/v1/clv/history defaults to convention 1: the last observed sharp-anchor price strictly before commence_time. This matches Joseph Buchdahl's academic methodology and the conventions used in the Sauer / Levitt sports-betting literature. We also expose the no-vig variant (devig the sharp's two-sided pair before grading; see no-vig CLV explained).
If you want a different convention, pass the snapshot_convention body parameter:
POST /v1/clv/history
{
"bets": [...],
"sharp_book": "pinnacle",
"snapshot_convention": "last_pre_commence" // default
// or "kickoff", uses event-clock start
// or "end_pregame", uses live-transition timestamp
// or "settled", uses the book's market-removal timestamp
}
Each leg in your bets array gets graded against the snapshot picked according to your chosen convention. The response includes snapshot_timestamp and snapshot_source per bet so you can audit which price was used.
Here's the punchline. If you grade the same 500 bets through two different tools, you'll often see CLV numbers that differ by 0.3 to 0.8 percentage points. That's not a precision problem; it's a convention mismatch. Before you conclude that one tool is "better" than the other, check:
Two tools, same bets, same player. Different CLV numbers. The math isn't wrong; the conventions are different.
Pick a convention and stick with it. The CLV number on its own is meaningless; the comparison to your own historical baseline under the same convention is what's meaningful. If you grade your last 100 bets with convention 1 and you're at +1.8% no-vig CLV, that's a real signal. If you switch to convention 4 next month and you're at +3.0%, the convention shift accounts for ~1-1.5 of that 1.2-point improvement.
If you're integrating against ParlayAPI: snapshot_convention=last_pre_commence is the default; pass it explicitly anyway so future-you (and your auditor) can see exactly which convention generated the numbers.
The pro grading tools all let you select the convention. The amateur tools all silently use convention 4. That's how to tell which is which.