Demo data

Methodology

How the forecasts are made, compared and scored

Every number on this site answers one narrow question: how likely is a pair's price, at one stated moment, to be above, inside or below a range around a frozen reference? This page explains each part of that question and what the estimates can and cannot tell you.

The event we forecast

A forecast is about the price at the target date: one observation at a stated time, such as BTC/USD at 23:59:59 UTC on 31 Dec 2026. It is not about whether a price is touched at any point before then.

  1. 1 · Reference observed31 Oct 2026, 06:00 UTC · $80,000
  2. 2 · Forecast published31 Oct 2026, 06:12 UTC
  3. 3 · Target observation31 Dec 2026, 23:59 UTC · settles the forecast
Only step 3 decides the outcome. The return is the target price divided by the reference, minus one.

For each threshold (1%, 5%, 10% and 50%) there are three outcomes that cannot overlap and always sum to 100%:

  • Down: at or below the reference minus the threshold. The boundary counts as Down.
  • Within: strictly between the two boundaries.
  • Up: at or above the reference plus the threshold. The boundary counts as Up.

Wider thresholds always give a larger Within share. Estimates that break this nesting are rejected before publication. All dates and times are in UTC.

Frozen reference price

Each forecast version records one reference price and the time it was observed. It never changes on that version's page, even as markets move. A later version gets its own reference and timestamps, and earlier versions stay available unchanged.

Crypto pairs use an aggregated US-dollar reference price from one provider, both at publication and at settlement. At settlement the latest observation at or before the target time is used, if it is no more than 24 hours old; prices from after the target are never used. If no valid observation exists, the outcome stays pending rather than switching to another source.

Currency observations

Currency pairs use the ECB's euro foreign exchange reference rates, published around 16:00 CET on TARGET business days. They are reference observations, not live or tradable prices. There are no rates at weekends or on TARGET holidays.

  • A forecast published at a weekend uses the last available rate and says so, for example “Reference rate from 30 Oct”.
  • If a target date has no fixing, the outcome uses the last fixing on or before it, at most seven days earlier. 31 Jan 2027 is a Sunday, so it settles on Friday, 29 Jan 2027.
  • Crosses such as GBP/USD are computed from the euro rates of both currencies.
  • EUR/USD is quoted in US dollars per euro. USD/EUR is derived as its inverse and has its own page; thresholds are measured on the pair as quoted, so the two pages are not exact mirror images.

Models, markets and risk-neutral views

Model estimates

OpenAI and Claude each receive the same evidence pack and reference price, independently of each other and without prediction-market odds. Each returns a probability distribution over returns, from which the three probabilities for every threshold are computed. These are judgments, not measurements, and are labelled uncalibrated until enough outcomes exist to test them.

Statistical reference

A transparent baseline built from price history alone: a block bootstrap of historical daily log returns (calendar days for crypto, business-day fixings for currencies), with drift shrunk to zero so a recent rally is not extrapolated. It uses no news and no market odds, and is shown next to the models, never mixed into them. On this demo site the statistical reference is a synthetic lognormal fixture, labelled as such on every page.

Market estimates

A prediction-market price is shown as an estimate only when the contract asks exactly our question. Most crypto contracts ask whether a price is touched before a deadline, which is a different event. Market prices reflect fees, liquidity and risk preferences; they are not objective odds.

Risk-neutral estimates

Probabilities implied by options prices include compensation for risk, so they are not the same as real-world likelihoods. They are not shown in this version.

Distribution assumptions

Every estimate is stored as probability over the same 26 return bins. All four thresholds are computed from that one distribution by code; models are never asked for one threshold at a time, and percentages written in text are never trusted over the stored numbers.

Bin edges −100% · −90% · −75% · −50% · −30% · −20% · −10% · −5% · −2% · −1% · −0.5% · 0% · +0.5% · +1% · +2% · +5% · +10% · +20% · +30% · +50% · +75% · +100% · +150% · +200% · +300% · +400% · +∞

  • Inside each finite bin, probability is assumed to be spread evenly across simple returns. This is a coarse modelling approximation, not a claim about how prices move.
  • Above +400% the open-ended bin uses an exponential tail with scale 1.0 (in return units), a fixed configuration value that models do not choose. It makes percentiles and inverse-pair figures computable; it is not a claim that real returns have exponential tails.
  • The 1%, 5%, 10% and 50% thresholds sit on bin edges, so they need no interpolation. Inverse pairs such as USD/EUR transform the same distribution rather than being estimated again.
  • Headline percentages are rounded so the three sum to 100. Tiny but non-zero values are shown as “<0.1%”, never as 0%.

The distribution chart on each forecast page shows probability per percentage point, because bins differ in width. Steps in the chart come from the bins, not from a modelled price path. The tails beyond ±50% are reported as totals and not drawn.

The AI average

The AI average is the equal-weight mixture of the two model distributions; its outcome probabilities are computed from that mixture and rounded so the three sum to 100. It is labelled uncalibrated. Because both models see the same evidence, their errors are likely to be related; averaging two runs does not double the information.

When one model has no valid run, the page shows the other alone as a single-model estimate and marks the version as partial. When neither succeeds, the last valid version stays up with a stale label; the statistical reference is never passed off as the AI estimate.

Matching market contracts

Each contract is checked against five things: asset, price source, observation time and time zone, threshold level, and event type (price at a time versus touching a price).

  • Exact match All five agree. The quote appears in the source comparison.
  • Related market At least one differs. Shown for context with the difference stated, never as an equivalent estimate.
  • Derived estimate Combined from several contracts with a documented method, labelled as derived.
  • No matching market Nothing qualifies. Shown in words, never as 0%.

Evaluation

Forecasts are scored with the three-outcome Brier score: the sum of (forecast − actual)² over up, within and down, where actual is 1 for what happened. It runs from 0 (perfect) to 2. Lower scores mean better probability estimates.

  • One version per target is scored: the first live version published in each lead-time bucket (0–30, 31–90, 91–180 and 181–366 days), chosen before the outcome is known, never by which looked best.
  • Live forecasts and research backtests are reported separately.
  • Inverse pairs count once, because they settle on the same observation.
  • Thresholds of one forecast are correlated, and updates of the same target are correlated; results are reported per threshold, with unique target counts, and are not treated as independent samples.
  • Uncertainty intervals appear from 30 settled forecasts, reliability charts from 100 outcome probabilities per source.

See the track record

Limitations

  • Estimates reflect information up to their publication time.
  • Model outputs can be confidently wrong; there is no live calibration yet.
  • The bin approximation and tail assumption are modelling choices, not facts about markets.
  • Single-exchange prices can differ from the reference source.
  • Probability estimates are not guarantees and are not investment advice.

Also at /data-sources/

Data sources

What each provider supplies, how often, and on what terms. A public API does not by itself mean unrestricted commercial redistribution; terms marked “review” must be cleared before launch.

Data sources directory
Provider Supplies Update frequency Coverage Attribution and terms
OpenAI Model probability estimates Each forecast run All published pairs and dates Model named on every estimate. Terms: [review status]
Anthropic (Claude) Model probability estimates Each forecast run All published pairs and dates Model named on every estimate. Terms: [review status]
[Crypto price provider] BTC/USD, ETH/USD and SOL/USD reference and settlement prices [Frequency] Crypto pairs [Licence and attribution — review]
European Central Bank Euro foreign exchange reference rates Once per TARGET business day, around 16:00 CET EUR/USD, GBP/USD, USD/JPY, USD/CHF, EUR/GBP; USD/EUR derived Credited to the ECB. Published for information purposes only.
Polymarket Contract questions, rules and quotes Checked at each run Only contracts that match or relate to a forecast Linked to the contract. Terms: [review status]
Federal Reserve Board; ECB Scheduled policy meeting dates As published Event lists Each date links to the official calendar
Cited publishers Evidence behind model drivers Per forecast Per citation Title, publisher, date and link on every citation