The Ledger

Every call we make, scored against something that isn’t us.

Each call names an external source, a threshold and a resolution date before the outcome is known. The score is published whether it flatters us or not — a record that only reports its wins is not a record.

Read this before the first score

How we forecast, and what this first score can and cannot show

Each call’s probability is that country’s own long-run rate, re-weighted toward its recent behaviour. The base rate we score against is that same long-run rate. So this first cohort is not a test of whether we understand the world — it is a narrower and more answerable question: does weighting recent behaviour beat the long-run average? A negative score means it does not, and that is a valid result we expect to publish. It is also why we withhold any skill number until three independent resolution batches exist: one fortnight cannot separate a forecasting method from the weather it happened to land in.

A retired generator

We have stopped issuing censorship calls, and this is why

Until 23 August, each censorship call was priced by weighting a country’s recent behaviour against its long-run rate. A walk-forward backtest then measured that weighting at −7.1% skill on this domain — worse than using the long-run rate alone — so the weight was set to zero.

That correction was right, and it had a consequence we did not act on for six days. With the weight at zero the stated probability is the long-run rate, and the long-run rate is what we score against. Every censorship call issued since has had a skill of exactly zero — not approximately zero, and not because the forecast was poor, but by arithmetic. A number divided by itself.

So we have stopped issuing them, under a rule that is not specific to censorship: a generator that cannot state a probability different from its own base rate issues nothing, unless it is a declared calibration harness whose entire purpose is to sit on climatology. State a claim, or be a control.

The censorship calls already on the book are untouched. They were made, and they resolve as made — including the 39 due on 5 September. What stops is adding more. We do not have a replacement generator yet, and we will not issue censorship calls again until we have one that is capable of being wrong.

When we cannot score a call

Some calls come due against evidence we never got

OONI is a volunteer network, and its coverage is thinnest in precisely the places where running a measurement tool is most dangerous — so the countries we most want to be right about are the ones we have least evidence for.

Before a call is scored, we ask whether we looked hard enough to be entitled to an answer. A censorship call is scored only if OONI observed that country on at least half the days in the call’s window, across enough measurements that one volunteer’s network conditions cannot decide a public verdict. Below that line the call is marked unresolvable: it stays on the book, it carries the reason, and it is excluded from every number on this page.

The rule cuts one way only. A confirmed block we did observe resolves the call as a hit no matter how thin the coverage — seeing something happen is evidence that it happened. It is the absence of a block that needs a well-observed window to mean anything.

Unresolvable is not the same as void. A call is void when our own criterion was unsound — our mistake, withdrawn by us. It is unresolvable when the world did not supply enough evidence to judge either way. Neither is ever scored, and neither is ever deleted.

On current data we expect 5 of the 5 calls resolving on 2026-09-05 to be unresolvable on these grounds. That window is still filling, so the figure will move — it is recomputed every time this page loads, and the exact count and country list are published with the result.

We are stating this before the first calls resolve, because a rule published afterwards is not a rule — it is an explanation.

164/623
calls that landed
stated base rate 26%
as of 2026-09-11 · calls table
101
independent units
623 rows, but one call per country per day overlaps 13 of 14 days
distinct country × kind · 7 resolution batches
By domain

Scored separately, on purpose

Each domain has its own resolver, its own base-rate estimator and its own dependence structure. Pooling them would produce one number dominated by whichever domain happened to write more rows, which is not a track record.

OONINetwork interference (OONI) — 65/230 landed, Brier 0.060, 35 units, 7 batchesskill -3%
FXCurrency depreciation (FX reference rates) — 99/393 landed, Brier 0.188, 66 units, 6 batchesskill 0%
What counts

Resolved by someone else

Nothing here is scored against a NexusWatch number. That distinction is the whole product: an index that grades its own forecasts can accumulate rows forever without ever being wrong. One domain is deliberately unglamorous: USGS seismicity windows, stated at their own climatology. They are a calibration harness — a domain where the right answer is computable, so a broken scoring pipeline cannot hide — and they are excluded from the claim counts above.

FXCurrency depreciation (FX reference rates)open
Open

What we are currently claiming

Ordered by how far each call sits from that country’s own base rate — the ones at the top are where we are actually saying something rather than restating how often it happens anyway.

SGSGD depreciates 0.53% or more against USD at any point within 14 days, from 1.26581.18% (-10pts) SGSGD depreciates 0.53% or more against USD at any point within 14 days, from 1.26490.18% (-10pts) SGSGD depreciates 0.53% or more against USD at any point within 14 days, from 1.26423.18% (-10pts) SGSGD depreciates 0.53% or more against USD at any point within 14 days, from 1.26709.18% (-10pts) SESEK depreciates 1.92% or more against USD at any point within 14 days, from 9.57366.17% (-10pts) SESEK depreciates 1.92% or more against USD at any point within 14 days, from 9.58007.17% (-10pts) CMXAF depreciates 0.87% or more against USD at any point within 14 days, from 565.531.17% (-10pts) SESEK depreciates 1.92% or more against USD at any point within 14 days, from 9.59610.17% (-10pts) BFXOF depreciates 0.87% or more against USD at any point within 14 days, from 565.531.17% (-10pts) NPNPR depreciates 1.11% or more against USD at any point within 14 days, from 151.277.17% (-10pts) ININR depreciates 1.11% or more against USD at any point within 14 days, from 95.5137.17% (-10pts) BFXOF depreciates 0.87% or more against USD at any point within 14 days, from 565.055.17% (-10pts) SESEK depreciates 1.92% or more against USD at any point within 14 days, from 9.58069.17% (-10pts) CMXAF depreciates 0.87% or more against USD at any point within 14 days, from 565.055.17% (-10pts) NPNPR depreciates 1.11% or more against USD at any point within 14 days, from 151.731.17% (-10pts) SESEK depreciates 1.92% or more against USD at any point within 14 days, from 9.60805.17% (-10pts) CMXAF depreciates 0.87% or more against USD at any point within 14 days, from 565.769.17% (-10pts) BFXOF depreciates 0.87% or more against USD at any point within 14 days, from 565.769.17% (-10pts) NPNPR depreciates 1.11% or more against USD at any point within 14 days, from 152.191.17% (-10pts) PKPKR depreciates 0.25% or more against USD at any point within 14 days, from 277.911.17% (-10pts) BFXOF depreciates 0.87% or more against USD at any point within 14 days, from 566.320.17% (-10pts) ARARS depreciates 2.08% or more against USD at any point within 14 days, from 1513.04.17% (-10pts) CMXAF depreciates 0.87% or more against USD at any point within 14 days, from 566.320.17% (-10pts) PEPEN depreciates 0.70% or more against USD at any point within 14 days, from 3.35331.17% (-10pts) SESEK depreciates 1.92% or more against USD at any point within 14 days, from 9.63241.17% (-10pts) VEVES depreciates 7.88% or more against USD at any point within 14 days, from 798.326.17% (-10pts) NPNPR depreciates 1.11% or more against USD at any point within 14 days, from 152.848.17% (-10pts) SGSGD depreciates 0.57% or more against USD at any point within 14 days, from 1.27383.17% (-10pts) PKPKR depreciates 0.25% or more against USD at any point within 14 days, from 277.858.17% (-10pts) RORON depreciates 1.22% or more against USD at any point within 14 days, from 4.52366.17% (-10pts) DEEUR depreciates 0.87% or more against USD at any point within 14 days, from 0.861542.17% (-10pts) SESEK depreciates 1.92% or more against USD at any point within 14 days, from 9.56006.17% (-10pts) IDIDR depreciates 1.53% or more against USD at any point within 14 days, from 17749.3.17% (-10pts) PEPEN depreciates 0.70% or more against USD at any point within 14 days, from 3.35366.17% (-10pts) TNTND depreciates 0.68% or more against USD at any point within 14 days, from 2.90917.17% (-10pts) DEEUR depreciates 0.86% or more against USD at any point within 14 days, from 0.863349.17% (-10pts) ARARS depreciates 2.08% or more against USD at any point within 14 days, from 1513.04.17% (-10pts) KRKRW depreciates 1.68% or more against USD at any point within 14 days, from 1361.14.17% (-10pts) LKLKR depreciates 1.57% or more against USD at any point within 14 days, from 327.813.17% (-10pts) MAMAD depreciates 0.79% or more against USD at any point within 14 days, from 9.26104.17% (-10pts)
Resolved

Including where we were wrong

KZOONI records at least 1 confirmed website or app blocking event in KZ within 14 days. — said 20%HIT UGUGX depreciates 1.25% or more against USD at any point within 14 days, from 3703.84. — said 28%HIT BDOONI records at least 1 confirmed website or app blocking event in BD within 14 days. — said 50%MISS UZOONI records at least 1 confirmed website or app blocking event in UZ within 14 days. — said 40%MISS LBOONI records at least 1 confirmed website or app blocking event in LB within 14 days. — said 30%MISS ZAZAR depreciates 1.92% or more against USD at any point within 14 days, from 15.9889. — said 29%MISS UZUZS depreciates 1.53% or more against USD at any point within 14 days, from 11811.5. — said 26%MISS TZTZS depreciates 0.65% or more against USD at any point within 14 days, from 2642.50. — said 25%MISS YEYER depreciates 0.31% or more against USD at any point within 14 days, from 236.967. — said 24%MISS UAUAH depreciates 0.73% or more against USD at any point within 14 days, from 44.5508. — said 23%MISS VEVES depreciates 7.88% or more against USD at any point within 14 days, from 791.667. — said 21%MISS KEOONI records at least 1 confirmed website or app blocking event in KE within 14 days. — said 20%MISS CUOONI records at least 1 confirmed website or app blocking event in CU within 14 days. — said 20%MISS THOONI records at least 1 confirmed website or app blocking event in TH within 14 days. — said 80%HIT VNVND depreciates 0.39% or more against USD at any point within 14 days, from 26044.8. — said 18%MISS BFXOF depreciates 0.88% or more against USD at any point within 14 days, from 562.999. — said 16%MISS CMXAF depreciates 0.88% or more against USD at any point within 14 days, from 562.999. — said 16%MISS ZWZWL depreciates 1.97% or more against USD at any point within 14 days, from 26.4933. — said 15%MISS UGOONI records at least 1 confirmed website or app blocking event in UG within 14 days. — said 10%MISS TZOONI records at least 1 confirmed website or app blocking event in TZ within 14 days. — said 10%MISS SYOONI records at least 1 confirmed website or app blocking event in SY within 14 days. — said 10%MISS PKOONI records at least 1 confirmed website or app blocking event in PK within 14 days. — said 10%MISS NGOONI records at least 1 confirmed website or app blocking event in NG within 14 days. — said 10%MISS LYOONI records at least 1 confirmed website or app blocking event in LY within 14 days. — said 10%MISS IQOONI records at least 1 confirmed website or app blocking event in IQ within 14 days. — said 10%MISS HTOONI records at least 1 confirmed website or app blocking event in HT within 14 days. — said 10%MISS ETOONI records at least 1 confirmed website or app blocking event in ET within 14 days. — said 10%MISS EGOONI records at least 1 confirmed website or app blocking event in EG within 14 days. — said 10%MISS CDOONI records at least 1 confirmed website or app blocking event in CD within 14 days. — said 10%MISS BYOONI records at least 1 confirmed website or app blocking event in BY within 14 days. — said 10%MISS BFOONI records at least 1 confirmed website or app blocking event in BF within 14 days. — said 10%MISS AZOONI records at least 1 confirmed website or app blocking event in AZ within 14 days. — said 10%MISS AFOONI records at least 1 confirmed website or app blocking event in AF within 14 days. — said 10%MISS TROONI records at least 1 confirmed website or app blocking event in TR within 14 days. — said 90%HIT SAOONI records at least 1 confirmed website or app blocking event in SA within 14 days. — said 90%HIT RUOONI records at least 1 confirmed website or app blocking event in RU within 14 days. — said 90%HIT MMOONI records at least 1 confirmed website or app blocking event in MM within 14 days. — said 90%HIT IROONI records at least 1 confirmed website or app blocking event in IR within 14 days. — said 90%HIT INOONI records at least 1 confirmed website or app blocking event in IN within 14 days. — said 90%HIT CNOONI records at least 1 confirmed website or app blocking event in CN within 14 days. — said 90%HIT

The brief opens with this ledger, every morning. Read the latest issue · Subscribe · first call recorded 2026-08-22

Daily snapshots of this book are committed to the public repository — ledger-snapshots/ — so the stated probabilities and thresholds carry GitHub's timestamps, not ours. A reader can verify no call moved between issuance and resolution without trusting us.