Skip to content

Forecasting · Calibration

We publish how often our forecasts are right. Every band, checked in the open.

Every predicted band Clarion has issued, checked against what actually happened — with the sample size that backs it. Nothing here is adjusted after the fact.

This is the same reliability backtest behind every passage outlook Clarion shows — a leave-one-session-out validation over closed federal Parliaments, so each bill is scored only from OTHER sessions' data, never a model grading its own homework. It is recomputed when a federal session closes.

better than chance
54%
Share of the error removed versus always guessing the base rate (Brier skill score).
avg calibration gap, bill-weighted
3.8%
Average distance between predicted and observed pass rates, weighted by how many bills fall in each band — the largest band alone holds 1,292 of 1,741 bills, so it carries most of this figure. Each band's own gap is printed with its receipt below; lower is better.
bills backtested
1,741
across 6 closed federal sessions

The receipts

Predicted band, checked against outcomes

Each tile is a confidence band the passage model has issued at some point. The printed number is what actually happened to those bills — scored out-of-sample, never the model grading its own homework.

Predicted 0%–10%4%

Of 1,292 bills we scored 0%–10%, 4% passed.

Its own average forecast for them was 3.6% — a 0.4% gap in this band.

Predicted 10%–20%13%

Of 82 bills we scored 10%–20%, 13% passed.

Its own average forecast for them was 17.1% — a 3.7% gap in this band.

Predicted 20%–30%0%

Of 26 bills we scored 20%–30%, 0% passed.

Its own average forecast for them was 21.1% — a 21.1% gap in this band.

Predicted 40%–50%90%

Of 10 bills we scored 40%–50%, 90% passed. · small sample

Its own average forecast for them was 45.6% — a 44.4% gap in this band.

Predicted 50%–60%0%

Of 8 bills we scored 50%–60%, 0% passed. · small sample

Its own average forecast for them was 51.1% — a 51.1% gap in this band.

Predicted 60%–70%50%

Of 40 bills we scored 60%–70%, 50% passed.

Its own average forecast for them was 60.0% — a 10.0% gap in this band.

Predicted 70%–80%0%

Of 22 bills we scored 70%–80%, 0% passed.

Its own average forecast for them was 76.6% — a 76.6% gap in this band.

Predicted 80%–90%28%

Of 43 bills we scored 80%–90%, 28% passed.

Its own average forecast for them was 81.0% — a 53.1% gap in this band.

Predicted 90%–100%96%

Of 218 bills we scored 90%–100%, 96% passed.

Its own average forecast for them was 96.2% — a 0.1% gap in this band.

Backtest recomputed June 26, 2026 — rerun when a federal parliamentary session closes. · LEGISinfo (Library of Parliament) · leave-one-session-out backtest

Embed

Put this ledger on your own site

Newsrooms, associations, and GR teams can embed the calibration badge — the average calibration gap above, with the sample size that backs it, fetched from the same public API this page reads. Two lines of HTML. No account, no cookies, no tracking.

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". Multiple badges on one page are supported — each element mounts independently; the script only needs to be included once.

If your site sets a Content-Security-Policy

Add these three origin grants to your existing 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 not optional: the badge loads its stylesheet from our origin (never inline styles), so without that grant it renders unstyled. No 'unsafe-inline', no 'unsafe-eval', no framing changes, and no img-src — the mark is inline SVG. If your policy only sets default-src, a single default-src grant for https://app.withclarion.com covers all three.

What it shows

One honest number: the average calibration gap (lower is better) — the distance between predicted and observed pass rates, weighted by how many bills fall in each band, and deliberately not an accuracy percentage — always with the sample size and session count beside it. If the API is unreachable, the badge says the figures are unavailable; if the sample is ever too thin, it says that instead. Never an invented number, and never a placeholder standing in for one.

The badge renders inside Shadow DOM, so your CSS and ours never mix. It sets zero cookies, touches zero storage, and makes zero tracking calls. The figures are fetched from our public API — which caches them, so the number can trail the ledger — while 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: any breaking change ships as new v2 files, so a page that embedded v1 keeps rendering exactly what it verified. The figures come from our API rather than being baked into the badge files. The badge's built-in "See the full ledger" link is the attribution — nothing further is required.

See the calibrated outlook on a real bill.

Start free and open any federal bill — the passage band, the reasoning, and the receipts behind it are on the screen. No demo gate.