Skip to content

Forecast calibration

How often our bill forecasts are right.

We compare each forecast band with what actually happened to those bills.

Each bill is scored at every stage it reached, by a model built from other sessions of Parliament, never its own. Stalled bills are adjusted down for time without movement, and that adjustment is not part of this check.

The figures

On 12 October 2026 we corrected how this check scores bills and, on the corrected figures, raised our forecasts for private members’ bills past first reading. Both changes are in the figures below.

better than chance
53%
How much less error than always guessing the usual pass rate (the Brier skill score).
avg calibration gap, forecast-weighted
2.4%
How far the forecasts sit from what happened, weighted by the forecasts in each band. The largest band holds 1,392 of 2,800 forecasts, so it carries most of this figure. Each band’s own gap is in the table below. Lower is better.
bills checked
1,741
from 6 closed sessions of Parliament

What happened in each forecast band.

Each row is a band the model has used: how many forecasts it held, how many of those bills passed, and the gap. A bill is forecast once at each stage it reached.

  • 0%–10%1,392 forecasts

    5% passed · forecast 3.4% · gap 1.3%

  • 10%–20%243 forecasts

    19% passed · forecast 17.3% · gap 1.6%

  • 20%–30%80 forecasts

    30% passed · forecast 25.5% · gap 4.5%

  • 30%–40%88 forecasts

    28% passed · forecast 34.1% · gap 5.7%

  • 40%–50%10 forecasts, small sample

    90% passed · forecast 45.6% · gap 44.4%

  • 50%–60%92 forecasts

    63% passed · forecast 51.6% · gap 11.4%

  • 60%–70%128 forecasts

    55% passed · forecast 60.8% · gap 6.1%

  • 70%–80%377 forecasts

    79% passed · forecast 76.9% · gap 2.2%

  • 80%–90%172 forecasts

    78% passed · forecast 80.3% · gap 2.4%

  • 90%–100%218 forecasts

    96% passed · forecast 96.2% · gap 0.1%

Last recomputed October 12, 2026. It is rerun when a federal session closes. Source: LEGISinfo (Library of Parliament). Each session is scored by a model built without it.

Put this figure on your own site.

Newsrooms, associations and GR teams can embed the calibration badge: the average gap and its sample size, from the same public API.

The snippet

<div data-clarion-calibration data-locale="en"></div>
<script src="https://app.withclarion.com/embed/calibration/v1.js" async></script>

Set data-locale to "en" or "fr". You can place several badges on one page; include the script once.

If your site sets a Content-Security-Policy

Add these three origin grants to your policy. All three are required.

script-src https://app.withclarion.com;
style-src https://app.withclarion.com;
connect-src https://app.withclarion.com;

style-src is required because the badge loads its stylesheet from our origin, never inline; without it, the badge shows unstyled. It needs no 'unsafe-inline', no 'unsafe-eval', no framing changes and no img-src, since the mark is inline SVG. If your policy only sets default-src, one default-src grant for https://app.withclarion.com covers all three.

What it shows

One number: the average calibration gap, where lower is better. It is the distance between forecast and actual pass rates, weighted by the forecasts in each band, and it is not an accuracy percentage. The sample size and session count always sit beside it. If the API cannot be reached, the badge says the figures are unavailable; if the sample is too thin, it says that instead. It never shows an invented number or a placeholder.

The badge renders inside Shadow DOM, so your CSS and ours never mix. It sets no cookies, uses no storage and makes no tracking calls. It fetches the figures from our public API, which caches them, so the number can trail this page. The badge files themselves are cached as immutable.

Terms

Free to embed. Don’t modify the served files: v1.js and v1.css are frozen, and any breaking change ships as new v2 files, so a page that embedded v1 keeps showing what it checked. The figures come from our API, not from the badge files. The badge’s built-in "See the full ledger" link is the attribution; nothing more is required.

See the forecast on a real bill.

Request access, then open a federal bill to see its passage forecast and the reasons behind it.