Esports CLV tracker.
Did you beat the close — per book, per market?

Closing line value is whether your price was better than the close. KashRock returns open_price, close_price, clv_pct, and verdict per book and market for a match — so you measure process, not vibes.

Why this surface exists

Hit rate without CLV lies. A 55% card that loses to the close is usually lucky; a 48% card that beats the close is often skilled. You need open and close on the same IDs.

What the record represents

Each CLV row is one book/market/side on a match: open_price, close_price, clv_pct, verdict, plus scope fields (map, line).

Core endpoints

GET /v7/{sport}/clv?match=… or MCP v7_clv. Summary block aggregates beat_close_pct.

EndpointPurposeKey filters
GET /v7/{sport}/clvCLV per bet / book (Quant+)match= required; market, book
GET /v7/{sport}/history?kind=linesOpen/close tape behind the numbersBuilder+
GET /v7/{sport}/backtestReplay openers that beat the closeQuant+
MCP v7_clvSame CLV rows from Cursor or Claudesport, match

Canonical IDs

  • —kr_match_id — required
  • —book — venue key
  • —market / market_scope — what closed

Sample payload

Live sample: GG.bet map-2 total rounds under 18.5 opened 5.26 and closed 3.11 — clv_pct 69.13, verdict positive.

FieldExampleUsed for
clv_pct69.13How much you beat (or lost to) the close
verdictpositivepositive | negative | flat
open_price / close_price5.26 → 3.11Decimal/american on the tape
bookggbetVenue measured
market_scopemap_2Series vs map scope
GET /v7/cs2/clv?match=kr_cs2_imperial-esports-vs-pain-gaming-23-10-2026
{
  "available": true,
  "sport": "cs2",
  "summary": {
    "total_markets": 402,
    "beat_close_pct": 42.3,
    "avg_clv_pct": 0.64
  },
  "clv": [
    {
      "kr_match_id": "kr_cs2_imperial-esports-vs-pain-gaming-23-10-2026",
      "market": "total_rounds",
      "book": "ggbet",
      "side": "under",
      "line": 18.5,
      "market_scope": "map_2",
      "open_price": {
        "decimal": 5.26,
        "american": 426
      },
      "close_price": {
        "decimal": 3.11,
        "american": 211
      },
      "clv_pct": 69.13,
      "verdict": "positive"
    }
  ]
}

Comparing sources

CLV reads the vault quote tape (history) joined to the match you pass.

SourceSchemaBest use
Manual open/close notesIncompletePersonal logs
Single-book historyOne venueNarrow CLV
KashRock /clvPer book, per marketDesk process score

How to use it

CLV measures price quality. Settlement grade is still /results.

Operational practices

  • —Always pass match=.
  • —Compare clv_pct across books on the same market before blaming the model.
  • —Quant unlocks CLV; Sandbox is free for schema learning.

Quick reference

GET /v7/cs2/clv?match={kr_match_id} returns clv_pct and verdict per book. Get your free key.

If you need a normalized feed instead of another UI wrapper, the esports api exposes live boards, schedules, and history on one schema — with the IDs and outcome patterns that keep backtests and grading honest. Start free on Sandbox, or see published pricing.

Frequently asked questions

What is CLV?

Closing line value: whether the price you got was better than the market's closing price. Positive CLV means you beat the close.

Is match required?

Yes on the live API. Pass kr_match_id or slug. Filter market and book as needed.