Libertas · Veritas · ProsperitasL · V · P

How many forecasts does it take to tell two forecasters apart?

LVP ResearchForecast evaluationPublished 21 October 20264 min read

AbstractTwo forecasters who differ by a realistic amount (one perfectly calibrated, one whose log-odds are 50% too extreme) differ in expected Brier score by only 0.004. In 2,000 simulated comparisons per sample size, a paired test detects that difference with 80% power only somewhere between 800 and 1,600 resolved questions; at 100 questions it succeeds 15% of the time. Worse, when questions resolve in correlated clusters (20 contracts on one election night), the naive test reports a significant difference between two equally skilled forecasters 32% of the time instead of 5%. Leaderboards built on a few hundred questions are mostly noise.

The size of the gap#

On 200,000 simulated questions with true probabilities drawn from Beta(0.7, 0.7), the Brier scores of five forecasters were:

ForecasterBrierLog lossReliabilityResolution
Truth0.14630.44540.000020.1029
Overconfident0.15010.46780.003500.1020
Underconfident0.15280.46930.006450.1027
Noisy0.15590.47130.000670.0938
Climatology (always 0.5)0.25000.69310.000000.0000
Table 1. Scores on 200,000 questions (research/scoring.py, seed 5). Uncertainty term = 0.25 for all.

The overconfident forecaster is meaningfully worse, with a reliability term 175 times the truth's. Yet its Brier score is only 0.0038 higher. Per question, the Brier difference has a standard deviation far larger than its mean, because the outcome noise dwarfs the skill difference.

Power, simulated#

For each sample size we drew 2,000 independent sets of questions, scored the truth and a competitor on the same questions, and ran a one-sided paired -test at 5% on the per-question Brier differences .

Questions NOverconfident (log-odds × 1.5)Underconfident (log-odds × 0.6)Noisy (log-odds + N(0, 0.6²))
255%20%12%
5010%25%17%
10015%36%27%
20025%53%44%
40043%75%69%
80071%93%92%
1,60092%100%100%
Table 2. Probability of detecting that the truth beats each competitor (2,000 replications per cell).
Power of a paired Brier-score test by number of questions02040608010025501002004008001,600questions (log scale)power, %
OverconfidentUnderconfidentNoisy
Figure 1. Power rises roughly with √N. 80% power requires roughly 500 questions against the underconfident or noisy forecaster and around 1,000 against the overconfident one.

The rule of thumb that falls out: to distinguish forecasters who differ by realistic amounts, you need on the order of a thousand independent resolved questions. A season of a forecasting tournament with 100 questions can only separate the very good from the very bad.

A back-of-envelope formula#

The paired test has approximate power , where and are the mean and standard deviation of the per-question score difference. Inverting for 80% power:

(1)
CompetitorMean difference d̄SD per question s_dEffect d̄ / s_dN for 80% power
Overconfident (log-odds × 1.5)0.00390.05030.0781,027
Underconfident (log-odds × 0.6)0.00650.05770.112490
Noisy (log-odds + N(0, 0.6²))0.00960.09080.106552
Table 3. Per-question effect sizes estimated on 400,000 questions (research/effect_sizes.py) and equation (1). These agree with the simulated power in Table 2.

The per-question standard deviation is 9–13 times the mean difference. Estimate both quantities on whatever history you have before launching an evaluation, not after.

Correlated questions break the test#

The test above assumes independent questions. Event markets violate this constantly: twenty contracts on the same election night, a ladder of strikes on one inflation print, a dozen games in one weekend affected by the same weather. When questions share a common shock, their score differences are correlated and the effective sample size is much smaller than the count.

We simulated 400 questions arranged in clusters of size , with outcomes driven partly by a cluster-level shock, and compared two forecasters of identical skill whose errors also had a cluster component. A correct test should reject 5% of the time.

Cluster size mClustersFalse-positive rate of naive paired t-test
14005.1%
58011.0%
202032.3%
50848.4%
Table 4. Nominal level 5%, 2,000 replications per row.

With clusters of 20, one in three comparisons between equally good forecasters declares a winner. The standard correction is to treat the cluster as the unit: average differences within each cluster and test across clusters, or use cluster-robust standard errors. The design effect , with the within-cluster correlation of score differences, tells you how much smaller your effective sample is.

Peeking: the leaderboard problem#

Leaderboards are checked continuously, and someone declares a winner as soon as one forecaster looks significantly ahead. That is a sequential test run as if it were a fixed-sample one. We simulated two forecasters of identical skill on up to 1,000 independent questions (research/peeking.py, 4,000 replications), testing at 5% every questions and stopping at the first significant result:

Check everyNumber of looksChance of declaring a false winner
1000 questions15.4%
500 questions28.7%
200 questions514.1%
100 questions1020.8%
50 questions2026.2%
25 questions4032.0%
Table 5. False-positive rate of repeated paired t-tests between equally skilled forecasters (nominal 5%).

Checking every 25 questions declares a winner between identical forecasters 32% of the time. The remedies are standard: fix the evaluation horizon in advance, or use a sequential procedure designed for continuous monitoring, such as alpha-spending boundaries or always-valid confidence sequences, which widen the threshold at early looks.

Combine this with clustering (Table 4) and the uncomfortable conclusion is that most informal claims of "model A beats model B" on a live leaderboard are not evidence of anything.

What we do with this#

  • We never promote or retire a model on fewer than several hundred independent resolved contracts, and we count clusters (events), not contracts.
  • Comparisons are always paired: same questions, same timestamps. Unpaired comparisons need several times more data.
  • We report the score difference with a cluster-robust interval, not two scores side by side.
  • When data are scarce we compare models on the market's own price as a benchmark, at many timestamps per contract. That adds information per question but not independent questions, and the clustering correction must account for it.

Questions#

How many forecasts do you need to evaluate a forecaster?

To distinguish realistic differences in skill (such as moderate overconfidence) with 80% power, roughly 500 to 1,000 independent resolved questions in our simulations. With 100 questions, detection rates were 15–36%.

Why are forecasting leaderboards noisy?

Because outcome randomness dominates skill differences on any single question. The Brier difference between a calibrated and an overconfident forecaster was 0.004 per question in our simulation, while its standard deviation per question was about 13 times larger.

How do correlated questions affect forecast evaluation?

They reduce the effective sample size. With clusters of 20 correlated questions, a naive paired t-test falsely declared a winner between equally skilled forecasters 32% of the time instead of 5%. Test at the cluster level or use cluster-robust standard errors.

References#

  1. Murphy, A. H. (1973). A new vector partition of the probability score. Journal of Applied Meteorology, 12(4), 595–600.
  2. Gneiting, T. and Raftery, A. E. (2007). Strictly proper scoring rules, prediction, and estimation. Journal of the American Statistical Association, 102(477), 359–378.
  3. Diebold, F. X. and Mariano, R. S. (1995). Comparing predictive accuracy. Journal of Business & Economic Statistics, 13(3), 253–263.

DisclosureThis note is research and education. It is not investment advice or an offer to trade, and nothing in it describes the firm's own results. Code and outputs: research/scoring.py in our research repository, reproducible with a fixed seed.

Questions about this note? The research desk replies to every serious one.

Write to research →