Voidly

The model directory

The Voidly Atlas ML stack

Censorship-intelligence models and evaluations in one place — forecast, classifier, anomaly, causal, and the accountability surfaces that grade them. Links to 34 records, and 8negative 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-platformPlatform-level forecasts (Twitter, WhatsApp, …)API ↗
Per-domainDomain-level forecasts for covered 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; see the dated evaluationAPI ↗

Scroll to see every column.

Classifiers

ModelWhat it doesLive
v3.3 (production)GradientBoosting, regime-weighted contagion, classifier v3.3 — LOCO mean F1 0.7109 (0.63 on the 61 countries with n>=30); per-country performance variesAPI ↗
Per-country thresholdsF1-optimal thresholds per country; see the dated evaluationAPI ↗
Per-methodHTTP / TLS / DNS / TCP specialisedAPI ↗
Per-protocolProtocol-specific classifiers; inspect each validation splitAPI ↗
Per-categoryNEWS / ANON / COMT / … category classifiersAPI ↗
Per-measurementRow-level classifier (Niaki KDD23)API ↗

Scroll to see every column.

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 ensembleDetector fusion exposed for transparency; forward validation did not clear its promotion floorAPI ↗

Scroll to see every column.

Causal & attribution

ModelWhat it doesLive
Synthetic DiDShutdown attribution vs democracy donor poolAPI ↗
Causal forest HTEElection treatment effect; in-sample association, not validated out of sampleAPI ↗
Outage attributionCensorship vs DDoS / infrastructure / weatherAPI ↗
Survival / durationRandom Survival Forest; test discrimination is near randomAPI ↗

Scroll to see every column.

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 rates under feature-level evasion testsAPI ↗
Serving reliabilityUptime + latency across the measured 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 ↗

Scroll to see every column.

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