GET /v1/calibration/venues

freedailytier: freecache 3600sEngine A — Probability API

Calibration scorecard for prediction-market venues from resolved markets: the venue's implied probability at fixed horizons before resolution (24h, 7d, 30d) scored against what actually happened — Brier score, base rate, sharpness, and sample counts per venue × category × horizon, with reliability deciles once a cell reaches n ≥ 200. Horizon prices are captured before resolution (never resolution-day prices) and accrue durably. Derived analytics only; free so you can judge market prices before paying for anything built on them.

Method, pre-registered before any cell was computed: horizon price = nearest hourly bucket at or before resolved_at − horizon, no staler than 6h. Capture began 2026-09-29 with a 60-day backfill, so all-time cells start shallow and deepen weekly — n gates are strict (deciles at n ≥ 200; Brier at n ≥ 30; counts below). resolutions.final_p_24h_before is never used (it records the settled price, i.e. the outcome). Cross-venue markets contribute one row per venue at that venue's own price.

Parameters

NameInTypeRequiredNotes
venuequerystringno — one of "kalshi", "polymarket"
categoryquerystringno

Example

curl "https://x402-factory.com/v1/calibration/venues"

Full scorecard; cells under n=200 report counts/Brier only — honesty by construction.

Example response

Worked example from deterministic fixture data (note meta.data_mode); live responses report their own sources and data_mode.

{
  "data": {
    "cells": [
      {
        "venue": "kalshi",
        "category": "economics",
        "horizon_hours": 24,
        "window": "90d",
        "n": 48,
        "brier": 0.1859,
        "base_rate": 0.583,
        "sharpness": 0.062,
        "deciles": null
      },
      {
        "venue": "kalshi",
        "category": "economics",
        "horizon_hours": 24,
        "window": "all_time",
        "n": 48,
        "brier": 0.1859,
        "base_rate": 0.583,
        "sharpness": 0.062,
        "deciles": null
      },
      {
        "venue": "kalshi",
        "category": "economics",
        "horizon_hours": 168,
        "window": "90d",
        "n": 48,
        "brier": 0.1586,
        "base_rate": 0.5,
        "sharpness": 0.0569,
        "deciles": null
      },
      {
        "venue": "kalshi",
        "category": "economics",
        "horizon_hours": 168,
        "window": "all_time",
        "n": 48,
        "brier": 0.1586,
        "base_rate": 0.5,
        "sharpness": 0.0569,
        "deciles": null
      },
      {
        "venue": "kalshi",
        "category": "economics",
        "horizon_hours": 720,
        "window": "90d",
        "n": 48,
        "brier": 0.1868,
        "base_rate": 0.521,
        "sharpness": 0.0685,
        "deciles": null
      },
      {
        "venue": "kalshi",
        "category": "economics",
        "horizon_hours": 720,
        "window": "all_time",
        "n": 48,
        "brier": 0.1868,
        "base_rate": 0.521,
        "sharpness": 0.0685,
        "deciles": null
      },
      {
        "venue": "kalshi",
        "category": "politics",
        "horizon_hours": 24,
        "window": "90d",
        "n": 260,
        "brier": 0.1902,
        "base_rate": 0.504,
        "sharpness": 0.0572,
        "deciles": [
          {
            "bucket": "0.0–0.1",
            "predicted": 0.079,
            "realized": 0.091,
            "n": 11
          },
          {
            "bucket": "0.1–0.2",
            "predicted": 0.148,
            "realized": 0.074,
            "n": 27
          },
          {
            "bucket": "0.2–0.3",
            "predicted": 0.246,
            "realized": 0.238,
            "n": 21
          },
          {
            "bucket": "0.3–0.4",
            "predicted": 0.357,
            "realized": 0.219,
            "n": 32
          },
          {
            "bucket": "0.4–0.5",
            "predicted": 0.451,
            "realized": 0.65,
            "n": 40
          },
          {
            "bucket": "0.5–0.6",
            "predicted": 0.55,
            "realized": 0.6,
            "n": 40
          },
          {
            "bucket": "0.6–0.7",
            "predicted": 0.655,
            "realized": 0.667,
            "n": 30
          },
          {
            "bucket": "0.7–0.8",
            "predicted": 0.747,
            "realized": 0.68,
            "n": 25
          },
          {
            "bucket": "0.8–0.9",
            "predicted": 0.862,
            "realized": 0.833,
            "n": 24
          },
          {
            "bucket": "0.9–1.0",
            "predicted": 0.923,
            "realized": 0.9,
            "n": 10
          }
        ]
      },
      {
        "venue": "kalshi",
        "category": "politics",
        "horizon_hours": 24,
        "window": "all_time",
        "n": 260,
        "brier": 0.1902,
        "base_rate": 0.504,
        "sharpness": 0.0572,
        "deciles": [
          {
            "bucket": "0.0–0.1",
            "predicted": 0.079,
            "realized": 0.091,
            "n": 11
          },
          {
            "bucket": "0.1–0.2",
            "predicted": 0.148,
            "realized": 0.074,
            "n": 27
          },
          {
            "bucket": "0.2–0.3",
            "predicted": 0.246,
            "realized": 0.238,
            "n": 21
          },
          {
            "bucket": "0.3–0.4",
            "predicted": 0.357,
            "realized": 0.219,
            "n": 32
          },
          {
            "bucket": "0.4–0.5",
            "predicted": 0.451,
            "realized": 0.65,
            "n": 40
          },
          {
            "bucket": "0.5–0.6",
            "predicted": 0.55,
            "realized": 0.6,
            "n": 40
          },
          {
            "bucket": "0.6–0.7",
            "predicted": 0.655,
            "realized": 0.667,
            "n": 30
          },
          {
            "bucket": "0.7–0.8",
            "predicted": 0.747,
            "realized": 0.68,
            "n": 25
          },
          {
            "bucket": "0.8–0.9",
            "predicted": 0.862,
            "realized": 0.833,
            "n": 24
          },
          {
            "bucket": "0.9–1.0",
            "predicted": 0.923,
            "realized": 0.9,
            "n": 10
          }
        ]
      },
      {
        "venue": "kalshi",
        "category": "politics",
        "horizon_hours": 168,
        "window": "90d",
        "n": 260,
        "brier": 0.1933,
        "base_rate": 0.5,
        "sharpness": 0.073,
        "deciles": [
          {
            "bucket": "0.0–0.1",
            "predicted": 0.075,
            "realized": 0.143,
            "n": 21
          },
          {
            "bucket": "0.1–0.2",
            "predicted": 0.148,
            "realized": 0.222,
            "n": 36
          },
          {
            "bucket": "0.2–0.3",
            "predicted": 0.253,
            "realized": 0.313,
            "n": 32
          },
          {
            "bucket": "0.3–0.4",
            "predicted": 0.346,
            "realized": 0.375,
            "n": 32
          },
          {
            "bucket": "0.4–0.5",
            "predicted": 0.447,
            "realized": 0.5,
            "n": 16
          },
          {
            "bucket": "0.5–0.6",
            "predicted": 0.55,
            "realized": 0.576,
            "n": 33
          },
          {
            "bucket": "0.6–0.7",
            "predicted": 0.647,
            "realized": 0.583,
            "n": 24
          },
          {
            "bucket": "0.7–0.8",
            "predicted": 0.749,
            "realized": 0.81,
            "n": 21
          },
          {
            "bucket": "0.8–0.9",
            "predicted": 0.843,
            "realized": 0.871,
            "n": 31
          },
          {
            "bucket": "0.9–1.0",
            "predicted": 0.921,
            "realized": 0.857,
            "n": 14
          }
        ]
      },
      {
        "venue": "kalshi",
        "category": "politics",
        "horizon_hours": 168,
        "window": "all_time",
        "n": 260,
        "brier": 0.1933,
        "base_rate": 0.5,
        "sharpness": 0.073,
        "deciles": [
          {
            "bucket": "0.0–0.1",
            "predicted": 0.075,
            "realized": 0.143,
            "n": 21
          },
          {
            "bucket": "0.1–0.2",
            "predicted": 0.148,
            "realized": 0.222,
            "n": 36
          },
          {
            "bucket": "0.2–0.3",
            "predicted": 0.253,
            "realized": 0.313,
            "n": 32
          },
          {
            "bucket": "0.3–0.4",
            "predicted": 0.346,
            "realized": 0.375,
            "n": 32
          },
          {
            "bucket": "0.4–0.5",
            "predicted": 0.447,
            "realized": 0.5,
            "n": 16
          },
          {
            "bucket": "0.5–0.6",
            "predicted": 0.55,
            "realized": 0.576,
            "n": 33
          },
          {
            "bucket": "0.6–0.7",
            "predicted": 0.647,
            "realized": 0.583,
            "n": 24
          },
          {
            "bucket": "0.7–0.8",
            "predicted": 0.749,
            "realized": 0.81,
            "n": 21
          },
          {
            "bucket": "0.8–0.9",
            "predicted": 0.843,
            "realized": 0.871,
            "n": 31
          },
          {
            "bucket": "0.9–1.0",
            "predicted": 0.921,
            "realized": 0.857,
            "n": 14
          }
        ]
      },
      {
        "venue": "kalshi",
        "category": "politics",
        "horizon_hours": 720,
        "window": "90d",
        "n": 260,
        "brier": 0.1757,
        "base_rate": 0.527,
        "sharpness": 0.07,
        "deciles": [
          {
            "bucket": "0.0–0.1",
            "predicted": 0.085,
            "realized": 0.176,
            "n": 17
          },
          {
            "bucket": "0.1–0.2",
            "predicted": 0.145,
            "realized": 0.2,
            "n": 30
          },
          {
            "bucket": "0.2–0.3",
            "predicted": 0.249,
            "realized": 0.207,
            "n": 29
          },
          {
            "bucket": "0.3–0.4",
            "predicted": 0.352,
            "realized": 0.24,
            "n": 25
          },
          {
            "bucket": "0.4–0.5",
            "predicted": 0.459,
            "realized": 0.48,
            "n": 25
          },
          {
            "bucket": "0.5–0.6",
            "predicted": 0.548,
            "realized": 0.484,
            "n": 31
          },
          {
            "bucket": "0.6–0.7",
            "predicted": 0.653,
            "realized": 0.862,
            "n": 29
          },
          {
            "bucket": "0.7–0.8",
            "predicted": 0.749,
            "realized": 0.839,
            "n": 31
          },
          {
            "bucket": "0.8–0.9",
            "predicted": 0.851,
            "realized": 0.964,
            "n": 28
          },
          {
            "bucket": "0.9–1.0",
            "predicted": 0.927,
            "realized": 0.733,
            "n": 15
          }
        ]
      },
      {
        "venue": "kalshi",
        "category": "politics",
        "horizon_hours": 720,
        "window": "all_time",
        "n": 260,
        "brier": 0.1757,
        "base_rate": 0.527,
        "sharpness": 0.07,
        "deciles": [
          {
            "bucket": "0.0–0.1",
            "predicted": 0.085,
            "realized": 0.176,
            "n": 17
          },
          {
            "bucket": "0.1–0.2",
            "predicted": 0.145,
            "realized": 0.2,
            "n": 30
          },
          {
            "bucket": "0.2–0.3",
            "predicted": 0.249,
            "realized": 0.207,
            "n": 29
          },
          {
            "bucket": "0.3–0.4",
            "predicted": 0.352,
            "realized": 0.24,
            "n": 25
          },
          {
            "bucket": "0.4–0.5",
            "predicted": 0.459,
            "realized": 0.48,
            "n": 25
          },
          {
            "bucket": "0.5–0.6",
            "predicted": 0.548,
            "realized": 0.484,
            "n": 31
          },
          {
            "bucket": "0.6–0.7",
            "predicted": 0.653,
            "realized": 0.862,
            "n": 29
          },
          {
            "bucket": "0.7–0.8",
            "predicted": 0.749,
            "realized": 0.839,
            "n": 31
          },
          {
            "bucket": "0.8–0.9",
            "predicted": 0.851,
            "realized": 0.964,
            "n": 28
          },
          {
            "bucket": "0.9–1.0",
            "predicted": 0.927,
            "realized": 0.733,
            "n": 15
          }
        ]
      },
      {
        "venue": "polymarket",
        "category": "politics",
        "horizon_hours": 24,
        "window": "90d",
        "n": 41,
        "brier": 0.2101,
        "base_rate": 0.659,
        "sharpness": 0.0838,
        "deciles": null
      },
      {
        "venue": "polymarket",
        "category": "politics",
        "horizon_hours": 24,
        "window": "all_time",
        "n": 41,
        "brier": 0.2101,
        "base_rate": 0.659,
        "sharpness": 0.0838,
        "deciles": null
      },
      {
        "venue": "polymarket",
        "category": "politics",
        "horizon_hours": 168,
        "window": "90d",
        "n": 41,
        "brier": 0.2026,
        "base_rate": 0.488,
        "sharpness": 0.0665,
        "deciles": null
      },
      {
        "venue": "polymarket",
        "category": "politics",
        "horizon_hours": 168,
        "window": "all_time",
        "n": 41,
        "brier": 0.2026,
        "base_rate": 0.488,
        "sharpness": 0.0665,
        "deciles": null
      },
      {
        "venue": "polymarket",
        "category": "politics",
        "horizon_hours": 720,
        "window": "90d",
        "n": 41,
        "brier": 0.1877,
        "base_rate": 0.561,
        "sharpness": 0.0683,
        "deciles": null
      },
      {
        "venue": "polymarket",
        "category": "politics",
        "horizon_hours": 720,
        "window": "all_time",
        "n": 41,
        "brier": 0.1877,
        "base_rate": 0.561,
        "sharpness": 0.0683,
        "deciles": null
      }
    ],
    "accrual_started": "2026-09-29",
    "methodology": "For each resolved market, the venue's implied probability is taken at fixed horizons before resolution (24h, 7d, 30d): the nearest hourly bucket at or before resolved_at − horizon, no staler than 6h — never a resolution-day price. Horizon prices are captured at resolution time and accrue (capture began 2026-09-29 with a 60-day backfill, so all-time cells start shallow and deepen weekly). Per venue × category × horizon: Brier score, base rate, sharpness (variance of forecasts), and n. Reliability deciles publish only at n ≥ 200; 30 ≤ n < 200 reports Brier without deciles; n < 30 reports counts only. Cross-venue markets contribute one row per venue at that venue's own price; derived analytics only."
  },
  "meta": {
    "endpoint": "/v1/calibration/venues",
    "version": "1.0.0",
    "generated_at": "2026-10-05T10:15:58.009Z",
    "freshness": "daily",
    "sources": [
      "kalshi",
      "polymarket"
    ],
    "request_id": "req_00000000",
    "docs": "https://x402-factory.com/docs/probability.venue-calibration",
    "data_mode": "live"
  }
}

Response schema (data payload)

{
  "type": "object",
  "properties": {
    "cells": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "venue": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "horizon_hours": {
            "type": "number",
            "description": "Fixed pre-resolution horizon: 24, 168 (7d), or 720 (30d)"
          },
          "window": {
            "type": "string",
            "enum": [
              "90d",
              "all_time"
            ]
          },
          "n": {
            "type": "number"
          },
          "brier": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Mean (p − outcome)²; null below n=30"
          },
          "base_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "sharpness": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Variance of the venue's horizon prices"
          },
          "deciles": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "bucket": {
                      "type": "string"
                    },
                    "predicted": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "null below bin n=10 — noise is not evidence"
                    },
                    "realized": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "null below bin n=10"
                    },
                    "n": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "bucket",
                    "predicted",
                    "realized",
                    "n"
                  ],
                  "additionalProperties": false
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "Reliability table; publishes only at n ≥ 200"
          }
        },
        "required": [
          "venue",
          "category",
          "horizon_hours",
          "window",
          "n",
          "brier",
          "base_rate",
          "sharpness",
          "deciles"
        ],
        "additionalProperties": false
      }
    },
    "accrual_started": {
      "type": "string"
    },
    "methodology": {
      "type": "string"
    }
  },
  "required": [
    "cells",
    "accrual_started",
    "methodology"
  ],
  "additionalProperties": false
}

The platform wraps every payload in an envelope: { "data": …, "meta": { endpoint, version, generated_at, freshness, sources, request_id, docs, data_mode } }.

Errors

StatusCodeMeaning
400INVALID_PARAMSInput failed validation; message lists the offending fields.
404NOT_FOUNDNo matching resource; suggestion may point to a sibling endpoint.
410RESOLVEDMarket/event settled; body includes a resolution summary.
503STALE_DATAUpstream feed down; stale data is never silently served beyond 2× cache TTL.
500INTERNALOur bug. The request_id helps us find it.