OPEN DATA

Clutch's NBA win probabilities, free to download.

Every number Clutch has put on an NBA game this season, as JSON and CSV. No key, no sign-up: rebuilt with the site four times a day, free to reuse with credit.

The files

The data files and what each holds
FILEWHAT IT HOLDSGAMES
games.jsonEvery game of the season that has Clutch's number: the number, the result, whether the call held, and its seal.56
games.csvThe same rows as a spreadsheet.56
tonight.jsonTonight's games only, with each number as it stands.4
nba-538-format.csvThe same games in the column layout of FiveThirtyEight's retired nba_elo_latest.csv.56

From Oct 20, 2026 to tonight. 52 of those games are graded so far: 36–16. A game's row appears once Clutch has a number for it, usually the morning of the game.

The fields

game_id
Clutch's id for the game (the same in the seal files).
date
The game's date in New York (US Eastern), YYYY-MM-DD.
tip_utc
Scheduled tip-off, UTC.
season, season_type
"2026-27"; "Regular Season" or "Playoffs".
home, away
Team codes (BKN, CHA, PHX…); home_name and away_name spell them out.
neutral
true when neither side is at home.
clutch_home_win_prob
Clutch's chance the home team wins, 0 to 1. clutch_away_win_prob is 1 minus it.
called
The side Clutch's number favours.
status
scheduled, live, halftime or final.
home_score, away_score
Filled once the game is final.
graded, called_right
Whether the Ledger has graded the call, and whether the called side won.
sealed_at, seal_file
When the number was sealed and the file on GitHub that holds it.
game_url
The game's page on clutchledger.com.

Read it in a line

Python, with pandas:

import pandas as pd

games = pd.read_csv("https://clutchledger.com/data/games.csv")
graded = games[games.graded]
print(graded.called_right.mean())

R:

games <- read.csv("https://clutchledger.com/data/games.csv")
table(games$called_right)

In a browser or a bot (the files allow any origin):

const res = await fetch("https://clutchledger.com/data/tonight.json");
const { games } = await res.json();

Coming from FiveThirtyEight?

FiveThirtyEight's NBA forecast stopped after the 2022-23 season, the site closed in 2025, and its nba_elo.csv and nba_elo_latest.csv addresses now send you to ABC News. nba-538-format.csv has the same columns up to the scores (team1 at home, the same team codes, the season as the year it ends), with Clutch's number in clutch_prob1 and clutch_prob2. What changed and how to switch →

Credit

Clutch's numbers on this page are free to reuse under CC BY 4.0: credit Clutch and link to clutchledger.com. A line like this under your chart or post is enough:

Data: <a href="https://clutchledger.com/">Clutch</a> (CC BY 4.0)

What's in, what isn't

Only Clutch's own numbers. The site shows ESPN BPI and the market's number beside Clutch's on every game; those belong to their sources and are not in the files. Pro numbers and the preseason are left out. Before tip a game's number can still move as news comes in; the one graded is the last sealed before tip, and a graded row never changes.

Every number is sealed with a SHA-256 fingerprint in a public repository before tip, so a row can be checked against its seal file. How to check one →

More

The same numbers with every seal and reveal file, plus the two-season test's calibration bands, are on Kaggle and Hugging Face, updated every Monday. How the numbers hold up: Accuracy.