How to Use Our Downloadable Predictions

Share this page

Behind every chart on a match page there is a table of numbers. You can download it as JSON or CSV from the NBA, football and tennis match analysis pages and use it wherever you like.

This guide shows what the files contain and four practical ways to use them.

Where to find the download

Every NBA, football and tennis match analysis page has this bar:

Download Probability Data

Full distributions as structured data (JSON or CSV)

JSON CSV

Sign in with Google, then click JSON or CSV. The free account includes 200 downloads a month.

What is in the file

Each file holds every prediction we published for that match. A real example, Alcaraz vs Sinner at the 2026 Monte Carlo Masters:

JSON
{
  "sport": "tennis",
  "match": {
    "player_one": "Carlos Alcaraz",
    "player_two": "Jannik Sinner",
    "player_one_rank": 1,
    "player_two_rank": 2,
    "tournament": "monte_carlo",
    "surface": "clay",
    "tournament_type": "masters_1000"
  },
  "predictions": {
    "player_one_win_probability": 0.4648,
    "player_two_win_probability": 0.5352,
    "predicted_winner": "Jannik Sinner"
  },
  "distributions": {
    "total_games": {
      "expected_value": 23.1,
      "mode": 23,
      "pdf": { 12: 0.44, 13: 0.79, ... probability for each outcome },
      "cdf": { 12: 0.86, 13: 1.65, ... cumulative under probability },
      "cdf_over": { 12: 99.14, 13: 98.35, ... probability of going over }
    },
    "games_spread_p1_minus_p2": { ... same structure },
    "aces": { ... same structure },
    "double_faults": { ... same structure }
  },
  "source": "predixsport.com",
  "exported_at": "2026-04-13T17:09:23Z"
}

Each distribution comes in three forms, all in percent: pdf (the chance of each exact result), cdf (the chance of that result or fewer) and cdf_over (the chance of more). These are the same numbers the charts on the match page draw.

What each sport includes:
  • NBA: win probability, total points and spread, plus points, rebounds, assists and 3-pointers for each projected starter
  • Football: home, draw and away probabilities, over/under 2.5 goals, both teams to score, and distributions for corners and shots
  • Tennis (ATP and WTA): win and tiebreak probabilities, and distributions for total games, games spread, aces and double faults

Four ways to use the data

1 Fantasy research with an AI assistant

Fantasy players already look at matchups and projected stats. The file adds the full range for every projected starter: not only 22 expected points, but how likely 15 or 30 are.

It takes a couple of minutes:

Step 1: Download

Open an NBA match analysis page and download the JSON or CSV. It includes points, rebounds, assists and 3-pointers for each projected starter, each with its distribution.

Step 2: Upload to ChatGPT, Claude, Gemini, or Perplexity

Attach the file to a conversation, on desktop or mobile.

Step 3: Ask what you need

The assistant reads the distributions and answers specific questions. Paste in anything else you know (injury news, last night's box scores) and it will take it into account.

Example prompt after uploading

"I uploaded today's NBA prediction data from Predixsport. For the Lakers vs Celtics game: which player has the widest distribution for points? Who has the highest probability of exceeding 25 points? Cross-reference with the latest injury reports."

The same approach works for daily lineups, season-long rosters, or a quick look at tonight's games.

2 Comparing with prediction markets

Prediction markets such as Polymarket publish crowd probabilities for sports events. Our file is an independent model estimate of the same events, so you can set the two side by side. When they disagree a lot, the interesting part is finding out why.

How to use it

Attach the match file to an assistant with web browsing turned on and ask it to look up the market's current probability for the same event, then compare the two.

Example prompt

"Here's Predixsport's prediction data for tonight's NBA games. Our model gives the Celtics a 71.2% win probability. Check the current Polymarket prices for this game. How big is the gap? What might explain it: injuries, public sentiment, something else?"

Because the file holds the full distributions, the comparison can go beyond the winner, for example to totals.

3 Agents and daily pipelines

If you build with agent frameworks such as OpenClaw, OpenAI Agents or LangChain, the files can be a daily data source: the agent reads the new predictions, checks whatever else you give it access to, and sends you a short summary.

Example: daily briefing agent

Every morning the agent reads today's predictions, compares them with yesterday's, checks for late injury news, and flags games where the model is unusually sure or unsure. Then it sends you the three most interesting findings by Slack or email.

Pipeline structure
# Runs daily. Adapt to OpenClaw, OpenAI Agents, LangChain, etc.

1. Fetch     → Download today's match predictions (JSON)
2. Parse     → Read probability distributions (PDF, CDF, CDF-over)
3. Compare   → Check against external sources (markets, news, stats)
4. Filter    → Keep games with high confidence or unusual patterns
5. Notify    → Send daily briefing via Slack, email, or Telegram

Every JSON file has the same top-level layout (match, predictions, distributions), so one parser covers every sport. The fields inside predictions depend on the sport.

4 Features for your own models

If you build your own models, our distributions can be inputs to them. You use our output instead of rebuilding our training data. In machine learning this is called model stacking.

What you get as features

Expected values, the most likely result, the full distribution (from which you can compute standard deviation, skew or any other summary) and the under/over chance at any threshold.

The CSV loads directly with pandas.read_csv(): one row per outcome per distribution, with the columns probability, prob_under and prob_over.

Python
import pandas as pd

# Load, ready to use as-is
df = pd.read_csv("predixsport-lakers_vs_celtics.csv")

# Filter to total points distribution
total_pts = df[df["distribution"] == "total_points"]

# Extract what you need
expected = total_pts["expected_value"].iloc[0]
pdf = total_pts[["outcome", "probability"]]

# Use as features in your model
features["px_total_pts_ev"] = expected
features["px_total_pts_std"] = compute_std(pdf)

The JSON loads just as easily with Python's json module.

Getting started

Open an NBA, football or tennis match analysis page, sign in with Google and pick JSON or CSV. Then attach it to an assistant, feed it to a pipeline, set it next to a market, or use it in your own model.

Download your first file

Free account, 200 files a month.

Share this page

Get daily predictions straight to your phone

Join Our Telegram Channel