Journalists asking Voidly Atlas a simple question — "how censored is Iran today?" — kept hitting the same wall. We had a supervised classifier probability, a 7-day forecast, an unsupervised DBSCAN anomaly score, a source-agreement rate, an incident count, a blocked-domain tally, and a mobile-messenger probe skew. Seven numbers. A headline needs one.
The Voidly Score is that one number: a continuous 0–100 daily index per country, built so a newsroom can write "Iran censorship intensity 78 today, up from 62 yesterday." It is deliberately different from Atlas Score v2, which is an A–F structural rating dominated by a 50% base-rate term. Atlas Score v2 answers "where is censorship the worst" (chronic blockers like China and North Korea rank high even on a quiet week). Voidly Score answers "what is happening today" — it moves.
Each of the seven components is normalized to [0, 1], then combined with hand-tuned weights and multiplied by 100:
| Component | Weight | What it captures |
|---|---|---|
| v3.3 classifier probability | 30% | Supervised country-day censorship probability |
| 7-day forecast max risk | 20% | Forward-looking shutdown risk |
| DBSCAN anomaly (normalized) | 15% | Unsupervised shape anomaly vs the country's own 45-day baseline |
| Cross-source agreement | 10% | Fraction of country-days where ≥2 of OONI / IODA / CensoredPlanet / Voidly corroborate |
| Recent incident rate | 10% | Log-scaled 24h incident count (censorship/mixed ×3, disruption ×0.3) |
| Domain diversity blocked | 10% | Log-scaled count of unique blocked domains, last 30 days |
| Mobile blocking skew | 5% | Share of OONI probes targeting messenger apps (Signal / WhatsApp / Telegram / Messenger) |
The raw composite is then smoothed with a 3-day exponential moving
average (α=0.5) so a single noisy probe day does not produce a
fake 15-point headline swing. The endpoint returns both
raw_score (today's component sum) and
smoothed_score (what to put in the headline), plus
delta_vs_yesterday.
Thirty watched countries scored. Top five by smoothed score:
| Country | Voidly Score | Biggest contributors |
|---|---|---|
| EG Egypt | 42.4 | DBSCAN anomaly 11.5, forecast 10.6, agreement 6.2 |
| PK Pakistan | 36.3 | Forecast 19.0 (saturated), agreement 6.9, domain diversity 6.1 |
| VE Venezuela | 35.0 | Classifier 13.0, agreement 7.2, domain diversity 6.1 |
| IN India | 32.0 | DBSCAN anomaly 15.0 (saturated), domain diversity 6.7 |
| UZ Uzbekistan | 29.8 | Forecast 19.0 (saturated), incident rate 4.3 |
Notice the components are doing genuinely different work: Egypt's score is anomaly-led, Pakistan and Uzbekistan are forecast-led, Venezuela is classifier-led, India is anomaly-led. No single signal dominates the top of the board — which is the point of a composite.
test_name= parameter in OONI Explorer URLs and gated
to countries with at least 10 probes in the last 7 days, so a country with
thin OONI coverage contributes 0 rather than a phantom boost.
delta_vs_yesterday is null. Deltas stabilize after day 3.
Pull GET /v1/atlas/voidly-score for the full ranked board, or
GET /v1/atlas/voidly-score/{cc} for one country with the full
per-component point breakdown. The smoothed_score is the
headline number; delta_vs_yesterday is the movement. Rebuilt
every day at 04:35 UTC. For "where is censorship the worst" pages, reach for
Atlas Score v2 instead — the two scores are complements, not rivals.