Voidly / global report
Global censorship.
In the evidence.
Follow the country scores. Open the records. Keep each source in view.
Highest scores in the retrieved index
10,656 source-window samples
40,420 source-window samples
580 source-window samples
A measurement-based index, separate from incident counts and shutdown forecasts.
- Read checked
- 2026-10-20T01:27:50.589Z
- Generated by source
- Not reported
Source provenance
No source note supplied.
- Backend / version
- sqlite / Not reported
- stale / stale_known
- not reported / not reported
- Omitted rows
- 0
- Read checked
- 2026-10-20T01:27:47.894Z
- Generated by source
- 2026-10-20T01:27:48.116Z
- Data as of
- 2026-10-19T21:21:29.957Z
Source provenance
Newest per-country ingestion stamp, not proof that every country is fresh. Each country row has ingestionAsOf; none is a measurement observation time. `dateModified` and `generated_at_utc` are serve times.
- Backend / version
- Not reported / 2026.10.20
- stale / stale_known
- not reported / not reported
- Omitted rows
- 0
- Read checked
- 2026-10-20T01:27:48.217Z
- Generated by source
- 2026-10-20T01:27:48.352070Z
Source provenance
No source note supplied.
- Backend / version
- sqlite / 2026.10.20
- stale / stale_known
- not reported / not reported
- Omitted rows
- 0
The record behind it.
Tracked records include suspected censorship, mixed incidents and outage signals. They are not all verified censorship events.
Citable categories, evidence links and caveats
- Source citable category
- 894
- Category records with linked evidence
- 807
- Category records with multiple sources
- 438
citable_censorship = censorship/mixed incidents excluding suspected/draft; this is a type/status count. citable_with_evidence = the subset linked to >=1 existing evidence row outside the historical OONI 'normal' stored-label quarantine pending regrade; its URL may be search or dashboard context rather than an exact measurement. citable_multi_source = the subset whose incident.sources lists >=2 source labels; this count does not establish agreement or independence.
The source category, individual evidence links and multi-source corroboration are different properties. Open the incident before citing its evidence.
A country-by-country view.
The highest positive scores among valid measured rows, with each source-window sample count. Lower coverage can make a score less reliable.
| Order here | Country | Score / 100 | Samples | Source level |
|---|---|---|---|---|
| 1 | ChinaCN | 59 | 10,656 | high |
| 2 | RussiaRU | 31 | 40,420 | medium |
| 3 | NigeriaNG | 28 | 580 | medium |
| 4 | MyanmarMM | 27 | 610 | medium |
| 5 | VenezuelaVE | 24 | 15,109 | low |
| 6 | EgyptEG | 17 | 1,036 | low |
| 7 | KazakhstanKZ | 16 | 811 | low |
| 8 | UAEAE | 14 | 1,251 | low |
| 9 | IranIR | 13 | 3,784 | low |
| 10 | CambodiaKH | 11 | 396 | low |
Score definition, measurement window and model note
- Country rows retrieved
- 130
- Source-window days / measurements
- 7 / 390,258
derived: sum of countries[].samples (OONI measurementCount) over the rolling 7-day live window. Not floored, not padded, not a constant.
Newest per-country ingestion stamp, not proof that every country is fresh. Each country row has ingestionAsOf; none is a measurement observation time. `dateModified` and `generated_at_utc` are serve times.
This index route does not read a model artifact or evaluation. Read the serving classifier and its LOCO mean F1 at /v1/classifier/info; check forecast evaluation separately at /v1/sentinel/accuracy and /v1/shutdown-risk/info.
{
"scoringVersion": "2026.10-eb-k10-w7",
"method": "ooni_anomaly_rate_7d_shrunk_empirical_bayes",
"windowDays": 7,
"windowBasis": "Seven days, from the upstream aggregation source (intelligence/src/services/ooni.ts windowStart). The deployed upstream service does not report its window, so this is the source value, not a live readback. Until 2026-10-19 this index was mislabelled as a 30-day window (method ooni_anomaly_rate_30d_shrunk_empirical_bayes, scoringVersion 2026.08-eb-k10); the scores were the same.",
"previousIdentifiers": {
"method": "ooni_anomaly_rate_30d_shrunk_empirical_bayes",
"scoringVersion": "2026.08-eb-k10",
"until": "2026-10-19"
},
"formula": "score = round(100 * anomalyRate * n / (n + 10))",
"shrinkK": 10,
"levelBasis": "level is derived from the unrounded shrunk rate (severe >= 0.7, high >= 0.5, medium >= 0.25, low >= 0.1, else free) — NOT from the rounded integer score. A country with samples: 0 is \"unmeasured\", never \"free\".",
"levelValues": [
"severe",
"high",
"medium",
"low",
"free",
"unmeasured"
],
"unmeasuredMeaning": "samples: 0 means OONI published NO measurements for this country in the 7-day window. That is the absence of evidence, not evidence of absence, so such rows are level \"unmeasured\" and are excluded from summary.freeCount. Before 2026-08-29 they were published as \"free\" — North Korea, Eritrea, the Bahamas and Nicaragua were all served as free countries on zero measurements.",
"rankTieBreak": "shrunkRate desc, then samples desc, then code asc — a total order, identical in every distribution",
"lowConfidenceBelowSamples": 30,
"appliesTo": [
"https://api.voidly.ai/data/censorship-index.json",
"https://api.voidly.ai/data/censorship-index.csv"
],
"changedAt": "2026-08-29",
"changedFields": {
"https://api.voidly.ai/data/censorship-index.json": {
"unchanged": [
"score",
"samples",
"country set"
],
"changed": [
"rank",
"level"
],
"detail": "score: 0 of 130 rows changed — byte-identical to what was served before. rank: 108 of 130 changed, 50 of them toward rank 1, entirely within groups whose score did not move (largest: SE 121 to 95, LT 86 to 61, SI 91 to 64, all at score 1-2; among rows scoring 10 or above only HN 9 to 8 and IR 8 to 9 swap). level: 4 of 130 changed, all of them zero-measurement rows moving from \"free\" to \"unmeasured\" — see unmeasuredMeaning."
},
"https://api.voidly.ai/data/censorship-index.csv": {
"unchanged": [
"samples",
"country set",
"columns 1-8 by name, order and meaning"
],
"changed": [
"rank",
"score",
"level",
"4 columns appended"
],
"detail": "score: 12 of 130 rows changed, every one DOWNWARD (largest TM 50 to 8). level: 3 changed downward (TM high to free, DZ and PK low to free) plus the 4 zero-measurement rows to \"unmeasured\". Any row taken from this file before 2026-08-29 should be re-fetched. Four columns were appended (raw_anomaly_rate, shrunk_rate, low_confidence, scoring_version); a reader that pins the column COUNT at 8 will reject the file, one that reads by position or header name will not."
}
},
"changeNote": "Before 2026-08-29 the CSV distribution published the UNSHRUNK anomaly rate while the JSON published the shrunk one, and the two sorted differently. Turkmenistan was served as rank 1 / score 50 / high in the CSV on 2 measurements; its shrunk score is 8 / free. 12 scores, 3 levels and 124 ranks disagreed between the two files. Both are now computed once. NO SCORE OR LEVEL MOVED UPWARD IN EITHER FILE — verified against the full live 130-country corpus. BOTH distributions changed, not only the CSV: the CSV s scores and levels moved down, and the JSON s `rank` changed for 108 of 130 rows because ties on the rounded score used to be broken by upstream array order. See `changedFields` for the per-distribution breakdown. A consumer that stored `rank` from EITHER file should re-fetch."
}The original report called this a composite of block rate, category breadth and consistency. The actual scoring definition above belongs to the retrieved index; its window and methods can differ from historical report text.
Where records accumulate.
Source-reported country counts describe the incident corpus. They are not a ranking of intent, severity or a country's actual censorship rate.
Read the labels.
Severity, incident type and status describe different fields in the same source. The category “censorship” is not a blocking-method measurement.
By severity
- critical
- 10,741 / 97.2%
- warning
- 309 / 2.8%
By type
- disruption
- 6,402 / 57.9%
- censorship
- 4,220 / 38.2%
- mixed
- 428 / 3.9%
By status
- active
- 6,799 / 61.5%
- suspected
- 3,754 / 34.0%
- confirmed
- 497 / 4.5%
Follow each source.
OONI contributes network measurements; IODA observes outages through BGP, active probing and telescope traffic; CensoredPlanet measures remote DNS and HTTP/S behavior.
Evidence rows by source
- Voidly
- 378,652 / 61.4%
- Voidly-Community
- 74,641 / 12.1%
- ooni
- 71,221 / 11.5%
- censoredplanet
- 49,580 / 8.0%
- ioda
- 42,854 / 6.9%
Cross-source comparison can help assess a record; it does not make every incident independently corroborated. Voidly probe measurements and community nodes have their own coverage and dates.
Added to the record.
The statistics handler counts incident creation and evidence retrieval time. These are ingestion figures, not counts of events that began during the period.
Incident records created
7,558 evidence rows retrievedIncident records created
53,025 evidence rows retrievedthrough 2026-10-19
The latest recorded event date is not automatically today.Open a recent record.
This list is a separate source read. Its records are not used to fill missing corpus statistics.
- Equatorial Guinea / 2026-10-19T22:40:00Z
Internet connectivity disruption in Equatorial Guinea
d1ba496ae8a9 · disruption · active · critical
ioda - Poland / 2026-10-19T22:30:00Z
Internet connectivity disruption in Poland
de01bc9eda5c · disruption · active · critical
ioda - Lebanon / 2026-10-19T21:50:00Z
Internet connectivity disruption in Lebanon
94555b66defd · disruption · active · critical
ioda - Iran / 2026-10-19T20:40:00Z
Internet connectivity disruption in Iran
f25495040bd4 · disruption · active · critical
ioda - Peru / 2026-10-19T19:20:00Z
Internet connectivity disruption in Peru
7ae9ef9dd018 · disruption · active · critical
ioda - El Salvador / 2026-10-19T17:45:00Z
Internet connectivity disruption in El Salvador
2cdeda3d79f6 · disruption · active · critical
ioda - Indonesia / 2026-10-19T17:30:00Z
Internet connectivity disruption in Indonesia
2906b2a73ea3 · disruption · active · critical
ioda - Japan / 2026-10-19T17:15:00Z
Internet connectivity disruption in Japan
08be073dd7f8 · disruption · active · critical
ioda
Keep the methods close.
Reference details from the original report remain below. Current source responses and historical evaluation figures have different scopes.
Original collection description and evaluation context
Collection documentation
- The original page describes roughly 1,100 distinct domains per day from a 5,154-domain pool across 130 countries. Its node count was a build-time constant, not a verified active roster.
- It describes OONI ingestion for eight test types across 130 countries every six hours; CensoredPlanet DNS/HTTP/S data across 50 countries; and continuous IODA ASN-level outage alerts.
- These are documented source/configuration descriptions, not fresh coverage or delivery checks. Read the current probe roster and source dates before quoting them.
Classifier v3.3 reference
GradientBoosting: LOCO mean F1 0.71 across 127 countries; 0.63 on the 61 with n≥30. The 0.87 median is inflated by 46 small-sample countries at a perfect 1.0. Training used 4,237 labelled samples, including 1,116 positive samples across 131 countries.
Shutdown-risk reference
The original shutdown-risk evaluation reports forward country-ranking AUC 0.90 against Access Now KeepItOn shutdowns. It ranks which countries; within-country day timing AUC is 0.33, below chance. These are not the distinct Atlas honest_forecast_v1 event model's scores.
The original page describes cross-source correlation and an incident-generation schedule every 30 minutes. A documented schedule is not proof that each run succeeded, and correlation is not independent confirmation of every incident.
Use the evidence.
Keep the canonical report URL, source timestamps, record types and any unavailable or degraded state with a citation.
Voidly-original research output is CC BY 4.0. Upstream measurements retain their own terms; see source-specific licensing. No blanket license is assigned to every input.
Voidly Atlas · Voidly · Report source read checked 2026-10-20T01:27:50.589Z. This read is not a publication or data-update timestamp.