GET /v1/calibration/venuesfreedailytier: 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.
| Name | In | Type | Required | Notes |
|---|---|---|---|---|
venue | query | string | no | — one of "kalshi", "polymarket" |
category | query | string | no |
curl "https://x402-factory.com/v1/calibration/venues"
Full scorecard; cells under n=200 report counts/Brier only — honesty by construction.
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"
}
}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 } }.
| Status | Code | Meaning |
|---|---|---|
| 400 | INVALID_PARAMS | Input failed validation; message lists the offending fields. |
| 404 | NOT_FOUND | No matching resource; suggestion may point to a sibling endpoint. |
| 410 | RESOLVED | Market/event settled; body includes a resolution summary. |
| 503 | STALE_DATA | Upstream feed down; stale data is never silently served beyond 2× cache TTL. |
| 500 | INTERNAL | Our bug. The request_id helps us find it. |