Skip to main content
aifinhub

Playground

Forecast Scoring Sandbox

Forecast scoring sandbox: paste a CSV of predictions to get Brier score, log loss, Murphy decomposition, bootstrap CIs and a reliability diagram.

Inputs
Paste + configure
Runtime
1–15 s
Privacy
Client-side · no upload
API key
Not required
Methodology
Open →

Education · Not investment advice. BaFin/EU framework. Past performance does not indicate future results. Editorial standards Sponsor disclosure Corrections

1 · Configure — paste or upload a forecast stream

Forecast CSV (columns: prob_predicted, outcome_observed)
Parsed 100 rows

Used for 95% CI on every metric.

Bin count for decomposition + diagram.

Prediction range

0.0710.947

Base rate (observed)

46.0%

Brier score

0.208

Lower is better · 0 = perfect. Log loss 0.607 across 100 forecasts.

95% CI [0.170, 0.252]  ·  bins populated 10/10

Decomposition (Murphy 1973)

ComponentValue95% CIReading
Reliability0.0090[0.0085, 0.0556]Lower = better calibrated
Resolution0.0494[0.0320, 0.1033]Higher = more discriminating
Uncertainty0.2484Irreducible from base rate
Check: rel − res + unc0.2080Should equal Brier (0.2084)

BS = reliability − resolution + uncertainty (Murphy, 1973)

Reliability diagram

0.000.250.500.751.000.000.250.500.751.00predicted probabilityobserved frequencybin 0.00–0.10 · n=6 · mean pred=0.081 · observed=0.167bin 0.10–0.20 · n=10 · mean pred=0.140 · observed=0.200bin 0.20–0.30 · n=14 · mean pred=0.245 · observed=0.357bin 0.30–0.40 · n=11 · mean pred=0.353 · observed=0.364bin 0.40–0.50 · n=15 · mean pred=0.440 · observed=0.267bin 0.50–0.60 · n=11 · mean pred=0.551 · observed=0.545bin 0.60–0.70 · n=14 · mean pred=0.658 · observed=0.643bin 0.70–0.80 · n=8 · mean pred=0.759 · observed=0.750bin 0.80–0.90 · n=6 · mean pred=0.831 · observed=0.667bin 0.90–1.00 · n=5 · mean pred=0.935 · observed=1.000populated bin (n ≥ 5)sparse bin (low weight)

X axis: predicted probability bin. Y axis: observed frequency of outcome=1 in that bin. Dots on the diagonal = perfectly calibrated. Dots below the diagonal = overconfident (predictions exceed observed). Dots above = underconfident. Sparse bins are drawn lighter: with few observations, their y position is noisy and the deviation from the diagonal is not informative on its own.

Formulas

Brier(p, y)     = mean( (p_i - y_i)^2 )
LogLoss(p, y)   = -mean( y_i·log(p_i) + (1-y_i)·log(1-p_i) )

Bin forecasts into K equal-width buckets of predicted probability.
For bin k with n_k observations, mean pred p̄_k, observed freq ō_k:

reliability  = Σ_k (n_k / N) · (p̄_k − ō_k)²
resolution   = Σ_k (n_k / N) · (ō_k − ȳ)²
uncertainty  = ȳ · (1 − ȳ)             where ȳ = mean(y_i)

Identity:   Brier = reliability − resolution + uncertainty

95% CI:  bootstrap-percentile over B resamples with replacement.

See the methodology page for derivations, references, and why sparse bins are shown lighter.

How to use

Step-by-step

Full calculator guide →
  1. 1

    Upload or enter probabilistic forecasts paired with realized outcomes (binary, categorical, or continuous).

  2. 2

    Pick scoring rule: Brier (squared error), log (penalize overconfidence harshly), CRPS (continuous distributions).

  3. 3

    Read your aggregate score per forecast. Compare against the base-rate benchmark — beating the benchmark = skill.

  4. 4

    Read the calibration plot to see where you're miscalibrated (overconfident or underconfident at specific probability ranges).

  5. 5

    Run at least 50 forecasts before drawing conclusions. Below 50, scores are dominated by sample noise.

For agents

Use in an agent

Same math, same result shape as the UI above — as a static ES module. No HTTP request, no auth, no rate limit.

import { compute } from "https://aifinhub.io/engines/forecast-scoring-sandbox.js";

Contract: /contracts/forecast-scoring-sandbox.json Full agent guide →

Glossary references

Terms used by this tool

All glossary →

Questions people ask next

FAQ

What scoring rules are supported?

Brier score (squared error), log score (log-likelihood penalty for overconfidence), and continuous ranked probability score (CRPS, for full distributional forecasts). All three are proper scoring rules — they reward calibrated probabilities.

What's a proper scoring rule?

A scoring rule where forecasters maximize their expected score by reporting their true beliefs. Brier and log are both proper. Improper rules (e.g., 'biggest single hit wins') incentivize gaming, like reporting extreme probabilities to maximize variance. Proper rules incentivize honesty.

When should I use Brier vs. log?

Brier is bounded and treats all errors symmetrically. Log is unbounded — predicting 0.001 on something that turns out true gives a catastrophic score. Use log when you want to severely penalize overconfidence; use Brier when you want a more forgiving metric. Most academic forecasting uses both.

How do I compare two forecasters with different forecast counts?

Use mean score per forecast, not total score. The sandbox does this automatically. The methodology page warns about the small-sample bias — comparisons with fewer than 50 forecasts each are noisy and shouldn't drive decisions.

Does the sandbox support binary, categorical, and continuous outcomes?

Yes. Binary: probability of YES. Categorical: probability vector summing to 1. Continuous: forecast distribution (the tool supports parametric Normal and t, plus user-supplied quantile triples). CRPS is the canonical continuous-outcome scoring rule.

Complementary tools