{"built_at":"2026-05-21T22:26:28Z","config":{"lookback_hours":72,"min_lead_hours":1,"threshold_z":1.5,"weights":{"bgp":0.5,"new_asn":0.2,"tls":0.3},"window_days":90},"doc":"Per-country composite of three technical precursors that TEND to precede user-visible blocking: (1) bgp_signal — IODA BGP critical/warning alerts vs the country's own 90-day baseline; (2) tls_fail_spike — TLS/TCP-reset interference evidence vs a trailing 7-day mean; (3) new_asn_signal — distinct ASNs in evidence today not seen in the prior 7 days. composite = weighted sum, z-scored within each country. Back-tested against confirmed shutdowns for lead time.","endpoints":{"info":"/v1/sentinel/pre-shutdown-signal/info","leaderboard":"/v1/sentinel/pre-shutdown-signal/leaderboard","per_country":"/v1/sentinel/pre-shutdown-signal/{cc}"},"evaluation":{"false_positive_rate":0.3077,"lead_time_examples":[{"country_code":"LV","incident_type":"disruption","lead_hours":95.5,"shutdown_at":"2026-04-23T23:30:00Z","signal_up_day":"2026-04-20"},{"country_code":"BI","incident_type":"disruption","lead_hours":94.4,"shutdown_at":"2026-04-21T22:25:00Z","signal_up_day":"2026-04-18"},{"country_code":"BW","incident_type":"disruption","lead_hours":94.4,"shutdown_at":"2026-04-21T22:25:00Z","signal_up_day":"2026-04-18"},{"country_code":"CA","incident_type":"disruption","lead_hours":94.3,"shutdown_at":"2026-04-29T22:21:00Z","signal_up_day":"2026-04-26"},{"country_code":"MM","incident_type":"disruption","lead_hours":94.1,"shutdown_at":"2026-04-23T22:05:00Z","signal_up_day":"2026-04-20"},{"country_code":"MM","incident_type":"disruption","lead_hours":93.1,"shutdown_at":"2026-04-24T21:05:00Z","signal_up_day":"2026-04-21"},{"country_code":"KE","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-04-22T20:50:00Z","signal_up_day":"2026-04-19"},{"country_code":"BD","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-05-03T20:50:00Z","signal_up_day":"2026-04-30"},{"country_code":"BO","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-05-03T20:50:00Z","signal_up_day":"2026-04-30"},{"country_code":"BW","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-05-03T20:50:00Z","signal_up_day":"2026-04-30"},{"country_code":"CL","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-05-03T20:50:00Z","signal_up_day":"2026-04-30"},{"country_code":"DO","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-05-03T20:50:00Z","signal_up_day":"2026-04-30"},{"country_code":"DZ","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-05-03T20:50:00Z","signal_up_day":"2026-04-30"},{"country_code":"HK","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-05-03T20:50:00Z","signal_up_day":"2026-04-30"},{"country_code":"HN","incident_type":"disruption","lead_hours":92.8,"shutdown_at":"2026-05-03T20:50:00Z","signal_up_day":"2026-04-30"}],"mean_lead_hours":39.9,"median_lead_hours":31.3,"n_false_signal_days":180,"n_shutdowns_evaluable":2240,"n_shutdowns_total":2306,"n_shutdowns_with_lead_signal":522,"n_signal_days":585,"true_positive_rate":0.233},"honest_caveats":["Many internet shutdowns are SUDDEN and have no measurable technical precursor — this detector cannot warn on those.","IODA BGP data has a ~6h ingest lag, so a real lead time shorter than ~6h will not be observable here even if a precursor exists.","signal_up != shutdown imminent. The composite crossing the threshold reflects elevated BGP/TLS/ASN anomaly activity, which frequently resolves with no shutdown (see false_positive_rate).","The back-test crosses days, not hours, so lead times are day-resolution and rounded to the shutdown-day midnight.","Composite is z-scored within each country's own 90-day history; countries with very flat history can hit threshold on small absolute changes."],"n_countries":178,"promote_floor":{"median_lead_hours":31.3,"n_shutdowns_with_lead":522,"passed":true,"rule":">=3 historical shutdowns with signal-up >=1h before"},"promoted":true,"schema":"voidly-pre-shutdown-signal/v1","version":"1.0.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."}}