dutchbook
Find and repair Dutch books in probability forecasts.
Abstract
Detects when probability forecasts over logically related events are incoherent, prices the guaranteed arbitrage against them exactly, and repairs them so that no outcome's Brier score gets worse. For AI-evaluation researchers, forecasting teams and students of probability.

1Motivation
Language-model forecasters are scored one question at a time, so nobody checks whether their answers fit together. A Dutch book is a set of bets that loses in every outcome; de Finetti showed it exists exactly when forecasts are incoherent, which in finance terms is an arbitrage.
2Method
- Parse propositional formulas and enumerate possible worlds.
- Test coherence as membership in the convex hull of world vectors (linear programming).
- Read the Dutch book off the dual solution.
- Project the forecasts onto the coherent set, which provably lowers the Brier score in every world.
- Apply the audit to the public ForecastBench data.
3Results






4Usage
4.1 Audit forecasts
Coherence status, the bets of a Dutch book and the payoff in every possible world.
dutchbook audit forecasts.csv --spec formulas.toml
4.2 Audit a benchmark
Coherence audit of a public AI forecasting benchmark round.
dutchbook forecastbench --round 2024-07-21 --html report.html
5Installation
pip install git+https://github.com/Thesimpleex/dutchbookPython 3.11 or later. Not on PyPI; installs from GitHub.
6Specification
- Runs
- Python 3.11+, CLI
- Built with
- Python, NumPy, SciPy, rich
- License
- MIT
- Version
- 0.1.0
Source code, issues and releases: github.com/Thesimpleex/dutchbook. License: MIT.