{"best_country":{"alerts":3,"country":"EG","median_lead_time_days":10.92,"true_positive_rate_pct":100},"generated_at":"2026-05-22T04:50:01.537587+00:00","headline_warning":"FALSE-ALARM RATE IS HIGH: 79.5% of forecast-threshold alerts in the last 90 days were NOT followed by a confirmed censorship incident within 14 days. Treat individual Sentinel alerts as a watch signal, not a prediction. The early-warning value is in the aggregate lead-time distribution, not any single alert.","honest_caveats":["THIS IS THE ACCOUNTABILITY NUMBER. The false-alarm rate is reported prominently and is NOT smoothed away. If it is high, the headline_warning field says so.","'Lead time' is alert-issued vs incident-DETECTION, not alert vs the real-world shutdown start. Incident detection itself lags (OONI/IODA ingest + the 30-min incident builder), so a positive lead time is a LOWER BOUND on the true early-warning margin — it does not over-state.","The matched incident is the next confirmed censorship/mixed incident in the same country within the horizon. It is a TEMPORAL match, not a causal one — the alert did not necessarily predict THAT specific incident.","Lagging alerts (forecast reacting to a shutdown already underway) are reported separately and are NOT counted toward the median-lead-time headline. Their lead time is 0 or negative.","Only incident_type IN ('censorship','mixed') count as a confirmed incident. IODA 'disruption' rows are network observations, not confirmed censorship, and are excluded.","The horizon is 14 days. A real incident that the alert predicted but that arrived later than 14 days is scored as a false alarm here — the FP rate is therefore an UPPER bound on true miss-fires.","Forecast-threshold alerts only — severity_upgrade, dbscan_flip, and contagion_chain_fire alert types use different logic and are out of scope for this retrospective.","Countries with <2 alerts are excluded from best/worst ranking so a single lucky or unlucky alert cannot crown a country."],"method":{"alert_source":"sentinel_alerts WHERE event_type='forecast_threshold' (7-day forecast crossing the alert threshold)","false_alarm":"no confirmed incident within 14 days after the alert (and none in the 3-day grace window before it)","horizon_days":14,"incident_source":"voidly_data.db incidents WHERE incident_type IN ('censorship','mixed') — IODA disruption rows excluded","lagging":"an incident started within 3 days BEFORE the alert — the forecast reacted to a shutdown already underway; lead time is 0 or negative and is excluded from the median-lead-time headline","lagging_grace_days":3,"lead_time_definition":"incident.first_seen - alert.issued_at, in days. Positive = the alert preceded incident DETECTION.","true_positive":"a confirmed incident in the same country within 14 days AFTER the alert"},"overall":{"alerts_analyzed":156,"false_alarm_rate_pct":79.5,"false_alarms":124,"lagging_alerts":2,"lagging_rate_pct":1.3,"lead_time_days":{"max":13.92,"mean":5.79,"median":4.17,"min":0.92,"n":30,"p25":2.21,"p75":8.92},"true_positive_rate_pct":19.2,"true_positives":30},"per_country":[{"alerts":3,"country":"EG","false_alarm_rate_pct":0,"false_alarms":0,"lagging_alerts":0,"mean_lead_time_days":11.25,"median_lead_time_days":10.92,"true_positive_rate_pct":100,"true_positives":3},{"alerts":7,"country":"UZ","false_alarm_rate_pct":0,"false_alarms":0,"lagging_alerts":0,"mean_lead_time_days":2.76,"median_lead_time_days":1.92,"true_positive_rate_pct":100,"true_positives":7},{"alerts":6,"country":"PK","false_alarm_rate_pct":0,"false_alarms":0,"lagging_alerts":1,"mean_lead_time_days":2.74,"median_lead_time_days":2.92,"true_positive_rate_pct":83.3,"true_positives":5},{"alerts":7,"country":"RU","false_alarm_rate_pct":42.9,"false_alarms":3,"lagging_alerts":0,"mean_lead_time_days":4.17,"median_lead_time_days":3.92,"true_positive_rate_pct":57.1,"true_positives":4},{"alerts":9,"country":"NG","false_alarm_rate_pct":44.4,"false_alarms":4,"lagging_alerts":0,"mean_lead_time_days":6.72,"median_lead_time_days":5.92,"true_positive_rate_pct":55.6,"true_positives":5},{"alerts":7,"country":"VN","false_alarm_rate_pct":71.4,"false_alarms":5,"lagging_alerts":0,"mean_lead_time_days":10.42,"median_lead_time_days":10.42,"true_positive_rate_pct":28.6,"true_positives":2},{"alerts":7,"country":"NI","false_alarm_rate_pct":57.1,"false_alarms":4,"lagging_alerts":1,"mean_lead_time_days":7.42,"median_lead_time_days":7.42,"true_positive_rate_pct":28.6,"true_positives":2},{"alerts":4,"country":"KZ","false_alarm_rate_pct":75,"false_alarms":3,"lagging_alerts":0,"mean_lead_time_days":9.92,"median_lead_time_days":9.92,"true_positive_rate_pct":25,"true_positives":1},{"alerts":5,"country":"BD","false_alarm_rate_pct":80,"false_alarms":4,"lagging_alerts":0,"mean_lead_time_days":10.92,"median_lead_time_days":10.92,"true_positive_rate_pct":20,"true_positives":1},{"alerts":7,"country":"IR","false_alarm_rate_pct":100,"false_alarms":7,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":7,"country":"TM","false_alarm_rate_pct":100,"false_alarms":7,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":7,"country":"BR","false_alarm_rate_pct":100,"false_alarms":7,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":7,"country":"CU","false_alarm_rate_pct":100,"false_alarms":7,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":7,"country":"MM","false_alarm_rate_pct":100,"false_alarms":7,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":6,"country":"IN","false_alarm_rate_pct":100,"false_alarms":6,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":6,"country":"TH","false_alarm_rate_pct":100,"false_alarms":6,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":6,"country":"VE","false_alarm_rate_pct":100,"false_alarms":6,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":6,"country":"ER","false_alarm_rate_pct":100,"false_alarms":6,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":5,"country":"SD","false_alarm_rate_pct":100,"false_alarms":5,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":5,"country":"SY","false_alarm_rate_pct":100,"false_alarms":5,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":5,"country":"KP","false_alarm_rate_pct":100,"false_alarms":5,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":4,"country":"CN","false_alarm_rate_pct":100,"false_alarms":4,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":4,"country":"SA","false_alarm_rate_pct":100,"false_alarms":4,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":4,"country":"PH","false_alarm_rate_pct":100,"false_alarms":4,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":4,"country":"BY","false_alarm_rate_pct":100,"false_alarms":4,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":4,"country":"ID","false_alarm_rate_pct":100,"false_alarms":4,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":2,"country":"LB","false_alarm_rate_pct":100,"false_alarms":2,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":2,"country":"TR","false_alarm_rate_pct":100,"false_alarms":2,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":2,"country":"MY","false_alarm_rate_pct":100,"false_alarms":2,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0},{"alerts":1,"country":"ET","false_alarm_rate_pct":100,"false_alarms":1,"lagging_alerts":0,"mean_lead_time_days":null,"median_lead_time_days":null,"true_positive_rate_pct":0,"true_positives":0}],"schema":"voidly-sentinel-alert-lead-time/v1","window":{"lookback_days":90,"since":"2026-02-21T04:50:01.537587+00:00","until":"2026-05-22T04:50:01.537587+00:00"},"worst_country":{"alerts":7,"country":"IR","false_alarm_rate_pct":100,"median_lead_time_days":null,"true_positive_rate_pct":0},"_voidly_pay":{"claim_did":"https://voidly.ai/pay/claim","for_builders":"https://voidly.ai/pay/for-builders","marketplace":"https://api.voidly.ai/v1/pay/marketplace","live_demo":"https://huggingface.co/spaces/emperor-mew/voidly-pay","universal_proxy":{"url":"https://api.voidly.ai/v1/pay/proxy","example":"https://api.voidly.ai/v1/pay/proxy?u=<https-url>&to=did:voidly:<your-did>&price=0.01","page":"https://voidly.ai/pay/proxy","note":"Paywall any public HTTPS URL with one query param. No SDK install required."},"install":{"typescript":"npm install @voidly/pay","python":"pip install voidly-pay","langchain":"pip install voidly-pay-langchain","vercel_ai":"npm install @voidly/pay-vercel-ai","mcp":"npx @voidly/pay-mcp","cli":"npm install -g @voidly/pay-cli"},"note":"Voidly Pay is the open agent-to-agent payment rail. Claim a DID + 10 starter credits in 60s, or paywall any URL via the universal proxy with one query param."}}