SimpleFunctions

← DataHistorical

The settled past,
scored.

1.7M+ resolved Kalshi and Polymarket contracts since Jan 2026. 326K of those carry a t-24h forward price — the input you actually want for Brier scoring. Pre-aggregated calibration scorecards by venue and category. Per-market 7-day price history available live via REST.

1.7M+

Settled outcomes

326K

Brier-eligible

0.187

Marketwide Brier

73.8%

Hit-rate

Facets

What history actually contains.

01

Settled outcomes

Every prediction-market contract that has resolved on Kalshi or Polymarket with non-trivial volume since the SimpleFunctions coverage window opened in Jan 2026.

1.7M+

rows

Schemavenue · ticker · category · predicted_price · resolved_outcome · resolved_at · volume
Settled-markets dataset
02

Brier-eligible (t-24h)

Subset where we captured the YES price 24 hours before resolution — the rigorous input for forward Brier scoring. Polymarket coverage is highest; Kalshi backfill is in progress.

326K

rows

Schema+ predicted_price_t24h
Live calibration view
03

Calibration scorecards

Pre-aggregated Brier, log-loss, and hit-rate by venue, category, and price bucket. The same metrics rendered live on /calibration, dumped monthly for offline modelling.

~1,200

scorecard rows

Schemaperiod · venue · category · brier · hit_rate · sample · price_bucket
Calibration dataset
04

Per-market history

Rolling 7-day price + indicator history on every active market via REST. Polled every minute by SimpleFunctions infra; trim further down-sample.

7d

rolling window

Schematicker · captured_at · price · volume · indicators{}
API reference
05

SimpleFunctions Index history

Fifteen-minute rows for the four SimpleFunctions Index values — Disagreement, GeoRisk, Breadth, and Activity — exported daily as flat JSONL.

180+

days

Schemadate · index_id · value · components{} · z_score
SimpleFunctions Index dataset

Surface map

Choose the historical surface.

Backtests, calibration checks, and single-ticker inspection do not need the same object. These existing surfaces keep file exports, rendered scorecards, and rolling API history separate.

Calibration

How well prediction markets actually forecast.

Marketwide Brier of 0.187 across the t-24h sample, hit-rate 73.8%. The settlement-time baseline of 0.169 / 82.9% is shown for reference but is not a forecast — it's the price at which the market died, after the outcome became obvious.

0.187

Brier · t-24h

73.8%

Hit-rate · t-24h

0.169

Brier · settlement (baseline)

60K

Settlement-baseline sample

API

Per-market price history.

Every active market exposes a rolling 7-day price + indicator history at /api/public/market/{ticker}/history. Polled minutely, decimated for transport. Longer windows ship on the daily archive on /data/download.

GET /api/public/market/{ticker}/history?windowDays=7

{
  "ticker": "KXFED-26JUN18-T3.50",
  "windowDays": 7,
  "indicatorHistory": [
    { "ts": "2026-05-03T12:00:00Z",
      "price": 47, "iy": 412, "cri": 1.6 },
    ...
  ],
  "regimeHistory": [
    { "ts": "...", "regime": "taker" },
    ...
  ]
}

FAQ

Frequently asked.

01

How far back does the SimpleFunctions historical coverage go?

The settled-markets and indicator archives begin Jan 2026 — when SimpleFunctions began capturing forward prices on a fixed cadence. Older Polymarket subgraph data is partially backfilled where the upstream API still serves it. The coverage window is documented per-row via captured_at.

02

How do I evaluate a forecast model against this data?

Use the Settled Markets dataset and join on ticker. predicted_price_t24h is the rigorous input for forward Brier scoring (the price 24h before resolution); predicted_price is the settlement-time price kept as a fallback. /calibration renders the same Brier and hit-rate metrics live so you can sanity-check your pipeline.

03

Can I get more than 7 days of price history per market?

Per-market history beyond 7 days ships on the daily archive — full indicator-history dumps available on the contracted tier, point-in-time exports available for research collaboration.

04

Why are some categories under-represented?

Volume gating: only contracts with > $10K volume enter the historical archive, because anything thinner is dominated by maker noise rather than information. Sports and crypto-ladder contracts dominate the row count by sheer volume; macro and election contracts dominate the Brier-eligible subset because they sit in the order book longer.

05

Is the data point-in-time consistent?

predicted_price_t24h and predicted_price are point-in-time (timestamped on capture). Calibration scorecards aggregate within each export — so an older scorecard is a frozen view of the world as of its export date. The /calibration view always renders the most recent aggregation.

Adjacent surfaces