The Sentinel alert lead-time retrospective handed us an uncomfortable number: over 90 days, 79.2% of forecast-threshold alerts were false alarms — four out of every five alerts that fired were not followed by a confirmed censorship incident. A newsroom that gets burned four times stops listening. This page is the fix, backtested and shipped, with the before/after stated plainly.

This is the companion to the alert lead-time retrospective: that page diagnosed the problem, this page fixes it. Both numbers are public and rebuild daily.

The diagnosis: it is not a tuning problem, it is a country problem

The retrospective already showed the real shape of the failure. The 79.2% aggregate hid a wide split: Egypt ran 3-for-3 (a perfect hit rate), Uzbekistan 7-for-7, Pakistan 5-for-6 — while Iran ran 0-for-7, and Turkmenistan, Cuba, Myanmar and others were similarly all-noise. A single global alert threshold (a 7-day risk of 0.05) fires the same way for a country where the forecast works and a country where it is pure background hum.

So we backtested four candidate fixes against the exact same 90-day history and the same scoring rule the retrospective uses (an alert is a true positive only if a confirmed censorship/mixed incident follows within 14 days). The candidates were re-derived honestly: each one's alert set is replayed from the daily forecast panel under that candidate's rule, then scored.

The backtest — four candidates, two negatives

CandidateAlertsFalse-alarm rateTrue-positive rate
Baseline (global 0.05)17080.6%17.6%
Per-country thresholds17080.6%17.6%
Persistence gate (2 days)7983.5%13.9%
Suppress chronically-false countries4035.0%60.0%

Two of the four candidates are honest negatives, and we report them as findings rather than quietly dropping them:

What shipped: downgrade the countries that are always wrong

The candidate that worked is the bluntest one. If a country's alerts have been consistently, measurably wrong, that country is downgraded from alert to watch: its 7-day risk is still computed and still published at /v1/sentinel/current_risk/{cc}, but no webhook alert fires. A country is downgraded under one of three honest rules, all measured on the 90-day backtest:

37 of the 49 watched countries are downgraded under these rules. That sounds aggressive — it is — but look at what is kept: Uzbekistan (7-for-7), Egypt (3-for-3), Pakistan (5-for-6), Russia (4-for-7), Nigeria (5-for-9). The countries where Sentinel has earned trust keep alerting; the countries where it has not are quieted to a watch signal.

Before and after

The honest caveats

Reducing a false-alarm rate is the kind of result that is easy to overclaim, so the limits are stated up front:

How to read it

GET /v1/sentinel/alert-quality returns the full backtest: every candidate with its false-alarm and true-positive rate, the winning candidate, the before/after summary, the suppressed-country list with the rule that caught each country, and the per-country alert thresholds. GET /v1/sentinel/alert-quality/{cc} returns one country's status — whether it is on alert or watch, and why. It is paired with /v1/sentinel/alert-lead-time, which is the accountability number this fix is measured against. Both rebuild daily; both report the uncomfortable parts in the open.