voidly

The Voidly Atlas ML stack

Every deployed censorship-intelligence model in one place — forecast, classifier, anomaly, causal, and the accountability surfaces that grade them. 34+ live endpoints, and 8 negative results we publish with the same permalinks as the wins.

Production defaults: classifier v3.3 + forecast v1 with per-country calibrators. Everything else is additive — new endpoints, not replacements. All CC BY 4.0.

Forecast models

ModelWhat it doesLive
7-day forecastXGBoost + isotonic + per-country calibratorsAPI ↗
Multi-horizon1d / 7d / 30d, per-horizon SHAP + conformalAPI ↗
HourlyWithin-day 6h / 12h / 24h horizonsAPI ↗
30-day trajectorySeq2seq day-by-day path + bandsAPI ↗
Per-regionAggregate forecast per continent / MENAAPI ↗
Per-platform12 platforms (Twitter, WhatsApp, …)API ↗
Per-domainTop-100 domains × 50 countriesAPI ↗
Zero-shot transferMeta-feature model for low-data tail countriesAPI ↗
Contagion chainWhen X blocks, who follows in N days?API ↗
Live 24h watchlistProactive who-blocks-next rankingAPI ↗
Pre-shutdown signalBGP / TLS / new-ASN precursors, ~31h median leadAPI ↗

Classifiers

ModelWhat it doesLive
v3.3 (production)GradientBoosting, regime-weighted contagion, LOCO median F1 0.870API ↗
Per-country thresholdsF1-optimal threshold per country, +4pp no retrainAPI ↗
Per-methodHTTP / TLS / DNS / TCP specialisedAPI ↗
Per-protocol8 protocol groups, AUC 0.98+API ↗
Per-categoryNEWS / ANON / COMT / … (7 promoted)API ↗
Per-measurementRow-level classifier (Niaki KDD23)API ↗

Anomaly detectors

ModelWhat it doesLive
DBSCANCenDTect-style per-country shape anomalyAPI ↗
HDBSCAN domain-driftPer-domain weekly blocking-pattern driftAPI ↗
STL seasonalDeviation from a country’s own weekly patternAPI ↗
Multi-country burstsCoordinated-campaign detection, FDR-correctedAPI ↗
Fused ensembleComposite of 4 detectors, AUC 0.684API ↗

Causal & attribution

ModelWhat it doesLive
Synthetic DiDShutdown attribution vs democracy donor poolAPI ↗
Causal forest HTEElection treatment effect, ATE +9.6ppAPI ↗
Outage attributionCensorship vs DDoS / infrastructure / weatherAPI ↗
Survival / durationRandom Survival Forest, c-index 0.728API ↗

Accountability surfaces

ModelWhat it doesLive
Prediction track recordLive 30-day out-of-sample accuracy per modelAPI ↗
Baseline benchmarkModel lift over trivial baselines (honest)API ↗
Adversarial robustnessDetection rate under realistic evasion (88–93%)API ↗
Serving reliabilityUptime + latency across 38 ML endpointsAPI ↗
Alert lead-timeReal Sentinel TP / FP rate + lead timeAPI ↗
Calibration driftPer-country forecast calibration auditAPI ↗
Model uncertaintyPer-day which predictions to questionAPI ↗
Data freshnessPer-country A–D probe-freshness gradeAPI ↗

8 honest negative results

Models we built, evaluated, and did NOT promote. Each is a published finding with the full metrics. The headline lesson: stacking and transformer architectures did not beat the simpler regime-weighted GradientBoosting on cross-country generalisation.

v3.4 regime-cluster fine-tune
−3.6pp LOCO F1 — cluster heads added no signal
v3.5 TabPFN
−1pp stratified F1 — small-data regime didn’t favour it
SSL tabular pretraining
−15.6pp F1 — 9.7K unlabeled rows too few
Stacking ensemble v3.7
+1.1pp — below the +2pp promote gate
Meta-ensemble v3.8
LOCO median fails by 0.5pp even with 10 base models
Quantile regression
Zero-inflated target collapsed q5 / q50 to 0
Temporal Fusion Transformer
LOCO AUC 0.927 ties the simpler XGBoost
Pre-protest GDELT correlator
Only 2 of 16 countries statistically significant

Where to go next