p|datav0.1news262

methodology

pdata aggregates ~100k prediction markets across 8 platforms — Polymarket, Kalshi, Manifold, Myriad, Limitless, Predict, Opinion, and Gemini — into a single browsable surface. Every figure displayed is sourced from each platform's own public API and is reproducible.

what we display

24-hour volume is the platform-reported notional figure: the same number each platform's own dashboard reports. We pass it through unchanged for seven of eight sources. Limitless has no 24h field in its API, so we recompute it from our own snapshots: Σ max(0, Δvolume) over the trailing 24h.

No unit normalisation across sources. Polymarket, Kalshi, Predict, Limitless, Myriad, Opinion, and Gemini report in USD (or USD-equivalent stablecoin). Manifold reports in play-money mana (M$) and is rendered in mana — Manifold is excluded from the homepage USD volume stack chart for currency reasons.

the data flow

Each platform's adapter polls its upstream API on its own cadence (10–40 minutes, depending on the source). Raw events and markets are normalised into a common schema and written to Postgres. Every 30 minutes a snapshot of price + cumulative volume is recorded per market. Rolling 24h figures — probability deltas, biggest movers, the homepage stack chart — derive from those snapshots and refresh every cycle.

derived metrics

  • ·Δprob (24h): current probability minus the probability recorded at the oldest snapshot at-or-before t−24h. NULL when no usable reference snapshot exists or the market has been closed for >24h.
  • ·Biggest movers: ranked by |Δprob| descending, gated by minimum 24h volume to filter thin-book noise. Per-source quotas keep a single venue from dominating. Price-derivative markets and Limitless are excluded by curation — both remain visible on the markets browse page but not in the rails.
  • ·In-focus grid (homepage): one notable market per platform-strip × category cell, scored by |Δprob| × volume_24hr. A small hand-maintained title-pattern blocklist removes engagement-bait shapes — the only place pdata exercises explicit editorial judgment.
  • ·Price derivative: a boolean flag set by ~18 regex rules detecting asset-price markets (BTC above $X, Will KOSPI open above N?, <asset> Up or Down, etc.). Drives the "Hide price derivatives" toggle on /markets and the curation of the homepage and rails.
  • ·Normalised rank: 0–100 percentile of 24h volume within each source. NULL when the underlying volume is NULL or 0.

caveats

  • ·Manifold volumes are mana, not USD. Excluded from the USD volume stack chart.
  • ·Gemini exposes volume only at the event level — per-contract rows show no 24h volume figure.
  • ·Opinion only reports 24h volume at the event (parent) level — child markets carry no volume24h field. We synthesize per-market v24 from our own snapshot deltas, so a child row can read $0 even when its event row is non-zero. The two figures come from different paths in Opinion's backend and don't always agree, so SUM(child v24) ≠ event v24 for Opinion is by design.
  • ·Manifold multiple-choice events have the same shape: the API gives a 24h volume on the parent but only cumulative volume per answer. We keep the parent number and integrate per-answer v24 from snapshots, so SUM(answers.v24) can come in lower than the parent v24 by design.
  • ·~93% of Predict markets reference a Polymarket condition ID; the same question often appears on both. Each row on pdata is per-source — duplicates are intentional, not a merge bug.
  • ·Predict and Opinion are auth-gated; pdata holds the API keys server-side. Coverage depends on the keys remaining valid.
  • ·When a market hasn't been snapshotted in the last 24h, the Δprob reference falls back to the earliest snapshot we ever recorded for that market — so a long-quiet market can show a delta against a much older price.
  • ·Curation excludes: Limitless markets and price-derivative formats (asset-price questions, Up or Down, above/below $N) are filtered out of the homepage in-focus grid, biggest-movers, and closing-soon rails. They remain fully visible on the /markets browse page.