Libertas · Veritas · ProsperitasL · V · P

Proper scoring rules: why honesty is the optimal forecast

LVP ResearchForecast evaluationPublished 22 October 20265 min read

AbstractA scoring rule is proper if a forecaster maximises their expected score by reporting their true belief. We prove properness for the Brier and logarithmic rules, give the Savage characterisation (every proper rule comes from a convex function), and verify numerically that under a true probability of 0.7 the Brier, log and spherical rules are maximised at a report of exactly 0.70, while the intuitive linear rule is maximised at the boundary (0.99). The choice between proper rules is then about which errors you want to punish: log loss is 17 times harsher than Brier on a 1% forecast that comes true.

Definition#

For a binary event, a scoring rule assigns a reward to a reported probability when the outcome is . If the forecaster's true belief is , their expected score from reporting is

(1)

The rule is proper if for all , and strictly proper if equality holds only at . Properness is what makes a score usable for paying or ranking forecasters: it removes any incentive to shade.

Brier and log are strictly proper#

Brier (quadratic). As a reward, . Then

(2)

which is zero only at , and the second derivative is . Strictly proper.

Logarithmic. :

(3)

Also strictly proper. Its expected score at the truth is , the negative entropy: the log score is information-theoretic, and the gap is exactly the Kullback–Leibler divergence .

Linear, the trap. The rule if , if looks natural ("score the probability you gave to what happened"). But is linear in , so it is maximised at whenever . It rewards exaggeration.

A numerical check#

We evaluated equation (1) on a grid of reports for true under four rules (normalised to [0, 1] for display).

Expected score versus reported probability when the truth is 0.70.00.30.50.81.00.00.30.50.81.0reported probability qexpected score (normalised)
Brierlogsphericallinear (improper)
Figure 1. Expected score as a function of the report. The three proper rules peak at the truth; the linear rule increases all the way to the boundary.
RuleScore if YesScore if NoReport that maximises expected score (p = 0.7)
Brier0.70
Logarithmic0.70
Spherical0.70
Linear0.99 (grid edge)
Table 1. Numerical maximisers on a 0.01 grid (research/scoring.py).

Where proper rules come from#

Every proper scoring rule for a binary event can be generated from a convex function on [0, 1] (Savage 1971; Gneiting and Raftery 2007):

(4)

is the expected score of an honest forecaster with belief , and the score is the tangent line to at , evaluated at the outcome. Because a convex function lies above its tangents, reporting anything other than can only lower the expected score. Brier corresponds to (up to constants), log to . The construction also explains the link to markets: Hanson's LMSR is the market version of the rule generated by negative entropy (see LMSR, derived).

Beyond binary: scoring a strike ladder#

Many event markets are ladders (CPI at least 2.8%, 2.9%, 3.0% and so on). Scoring each strike as a separate binary forecast throws away the ordering: a forecast that put its mass one bucket away from the outcome is treated the same as one that missed by five. The ranked probability score uses the ordering. With cumulative forecast and cumulative outcome ,

(5)

It is strictly proper and has a convenient property for event traders: a ladder's prices already are a cumulative distribution, since . The RPS of a market ladder can therefore be computed directly from the Yes prices, with no bucketing step, and compared with a model's RPS at the same timestamp. Its continuous limit is the CRPS used in weather forecasting (Gneiting and Raftery 2007).

Worked example: a five-strike ladder at 2.7–3.1% priced (cumulatively) at 0.10, 0.30, 0.65, 0.88, 0.97 when the print is 2.9%. The outcome vector is , so . A ladder that put the same mass one bucket higher would score on the same outcome. Per-strike Brier scores would not distinguish the two as cleanly.

Scoring in practice: horizons, clipping and market benchmarks#

Score at fixed horizons. A forecast made an hour before resolution is easy. Score at fixed lead times (30 days, 7 days, 1 day) and report each separately; a single "final forecast" score rewards forecasters who wait.

Clipping breaks properness, slightly. Log loss is infinite at for an event that happens, so implementations clip forecasts to . The clipped rule is no longer strictly proper for beliefs below . With that rarely matters; with , as in some leaderboards, it makes every forecast below 1% equivalent and removes the incentive to distinguish 0.1% from 1%. For tail contracts that is exactly the distinction that matters.

Benchmark against the market. For trading, the useful number is a skill score relative to the market price at the same timestamp,

(6)

A positive skill score means the model's probabilities were closer to outcomes than the prices were. A model with a good absolute Brier score and a negative skill score is worse than the market it would trade against. Because is a ratio of noisy averages, its sampling error is large; see how many forecasts it takes before believing it.

Choosing between proper rules#

Proper rules agree on what an honest forecast is and disagree on how much each kind of error costs. The most practical difference is at the tails:

Forecast for an event that happensBrier penaltyLog penaltyLog / Brier
50%0.25000.6932.8×
20%0.64001.6092.5×
10%0.81002.3032.8×
5%0.90252.9963.3×
1%0.98014.6054.7×
Table 2. Penalty for a single forecast of q when the event occurs.

Brier caps the damage of any single forecast at 1; log loss is unbounded. A forecaster who says 1% on something that happens loses 4.6 log-units, more than six "50%" forecasts that go wrong. Which you want depends on the decision the forecast feeds:

  • Trading tail contracts: use log loss. Mispricing a 1% event as 0.1% is a 10× error in the price of the contract, and log loss reflects that; Brier barely notices.
  • Ranking many forecasters on mixed questions: Brier is more robust to a single catastrophic forecast and easier to explain, and its Murphy decomposition separates calibration from resolution.
  • Never use accuracy (whether the forecast was on the right side of 50%) or the linear rule to evaluate probabilities. Both are improper.

On our simulated forecasters (200,000 questions), Brier and log loss rank them identically: truth 0.1463 / 0.4454, overconfident 0.1501 / 0.4678, underconfident 0.1528 / 0.4693, noisy 0.1559 / 0.4713. Rankings can diverge on small samples dominated by a few extreme forecasts, which is exactly when the choice matters.

Questions#

What is a proper scoring rule?

A rule for scoring probability forecasts under which a forecaster maximises their expected score by reporting their true belief. The Brier score, logarithmic score and spherical score are strictly proper.

Is accuracy a proper scoring rule?

No. Scoring a forecast as right if it was on the correct side of 50% ignores the probability entirely and gives no reward for calibration. The linear rule, which scores the probability assigned to the outcome, is also improper: it rewards reporting 0 or 1.

Should I use Brier score or log loss?

Use log loss when errors on rare events are costly (such as pricing tail contracts), because it heavily penalises confident mistakes. Use Brier when you want a bounded, robust score for ranking forecasters across mixed questions.

References#

  1. Brier, G. W. (1950). Verification of forecasts expressed in terms of probability. Monthly Weather Review, 78(1), 1–3.
  2. Savage, L. J. (1971). Elicitation of personal probabilities and expectations. Journal of the American Statistical Association, 66(336), 783–801.
  3. Gneiting, T. and Raftery, A. E. (2007). Strictly proper scoring rules, prediction, and estimation. Journal of the American Statistical Association, 102(477), 359–378.

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 →