{"entries":[{"arxiv":"https://arxiv.org/abs/2203.05794","kind":"topic-modeling","live_endpoint":"/v1/atlas/topics, /v1/atlas/topics/info, /v1/atlas/topics/{cc}, /v1/atlas/incidents/{id}/topic","metrics":{"coherence_floor":0.3,"coherence_npmi":0.7257,"dedupe_rate":0.547,"n_docs":1195,"n_source_rows":2636,"n_topics":8,"passed_promote_floor":true,"reconstruction_err":19.81,"vocab_size":623},"model":"incident-topic-tfidf-nmf","notes":"tf-idf + NMF over 1,195 deduped incident descriptions (55% boilerplate dedupe). 8 themes auto-discovered; coherence 0.73 — well above 0.4 promote floor. BERTopic+sentence-transformers was the first pick but not installable on Vultr venv-ml, fell back per directive. Honest caveat: topic labels are heuristic over top words, not editorial.","paper":"Lee & Seung 1999 — Learning the parts of objects by NMF; Grootendorst 2022 (BERTopic, fallback target)","trained_at":"2026-05-21T13:02:50.926710Z","version":"v1"},{"arxiv":"https://arxiv.org/abs/2106.00170","kind":"calibration","live_endpoint":"/v1/forecast/{cc}/7day (aci_alpha field)","metrics":{"alpha_current":0.21,"empirical_coverage":0.913,"learning_rate":0.01,"n_observations":840,"target_alpha":0.1},"model":"forecast-aci-online-calibration","notes":"Online conformal update — kills calibration drift. State persists across requests in /opt/voidly-ai/ml-deploy/forecast_aci_state.json. Daily cron at 03:45 UTC.","paper":"Gibbs & Candès 2021 — Adaptive Conformal Inference Under Distribution Shift","trained_at":"2026-05-21T04:30:38Z","version":"v1"},{"kind":"forecast","live_endpoint":"/v1/forecast/{cc}/7day","metrics":{"f1":0.6667,"optimal_threshold":0.27,"positive_rate":0.092,"precision":0.7255,"recall":0.6167,"roc_auc":0.9541,"samples":2148},"model":"forecast-v1-7day-sane-labels","notes":"Retrained after IODA disruption labels excluded from target_7day. Dual-gate accepted (legacy holdout +18pp, temporal holdout +58pp).","trained_at":"2026-05-21T04:20:38Z","version":"v1.1"},{"kind":"forecast","live_endpoint":"/v1/forecast/{cc}/multi-horizon","metrics":{"loco_auc_1d":0.91,"loco_auc_30d":0.84,"loco_auc_7d":0.88,"n_spotlight_countries":20},"model":"forecast-multi-horizon","notes":"Separate 1d/7d/30d models. Per-horizon SHAP + 90% conformal intervals + monotonicity consistency check.","trained_at":"2026-05-21T03:40:00Z","version":"v1"},{"kind":"classifier","live_endpoint":"/v1/classifier/score/{cc}","metrics":{"loco_mean_f1":0.711,"loco_median_f1":0.87,"n_countries":131,"n_features":16,"n_positive":1116,"n_samples":4237,"stratified_f1":0.729},"model":"classifier-v3.3","notes":"GradientBoosting. Regime-similarity-weighted geographic contagion. 16 features (13 base + 3 contagion neighbors). EG recovered from v3.2 regression. Honest caveat: 16 MENA + post-Soviet countries regress 5-29pp due to sparse neighbor-pair overlap (not fixed by regime-cluster finetune v3.4, which was a negative result).","trained_at":"2026-05-21T02:58:00Z","version":"v3.3"},{"kind":"classifier","live_endpoint":null,"metrics":{"loco_median_f1":0.833,"passed_promote_floor":false,"regression_countries_improved_of_16":1},"model":"classifier-v3.4-regime-cluster-finetune","notes":"NEGATIVE RESULT — archived to /opt/voidly-ai/models/experimental/. Stack head learned coefficients ignored cluster heads (base v3.3 coef +9.80, cluster coefs in [-0.83, +0.64]). Root cause of tail regression isn't model architecture; it's noise-bounded F1 in countries with 5-15 positive samples. Real fix is targeted labeling.","trained_at":"2026-05-21T04:18:46Z","version":"v3.4"},{"kind":"anomaly","live_endpoint":"/v1/anomaly/dbscan/{cc}","metrics":{"auc":0.6506,"min_samples":3,"n_scored":3215,"passed":true,"promote_floor_auc":0.65,"window_days":45},"model":"anomaly-dbscan-v1","notes":"Per-country rolling 45-day DBSCAN over 12 standardized OONI features. Promoted as SECOND-OPINION signal — supervised v3.3 still wins at 0.99, DBSCAN surfaces shape-anomalous days labels never saw.","paper":"Aceto & Pescape 2025 — CenDTect","trained_at":"2026-05-21T04:19:40Z","version":"v1"},{"kind":"anomaly","live_endpoint":"/v1/anomaly/domain-drift/leaderboard","metrics":{"n_clusters_last_week":0,"n_clusters_this_week":2,"n_domains_clustered":27,"top_drift_domain":"tiktok.com","top_drift_score":0.343},"model":"anomaly-domain-drift-hdbscan-v1","notes":"Per-domain HDBSCAN weekly drift. Orthogonal to per-country DBSCAN. Honest caveat: only 27 domains pass the min-10-measurement filter; week-over-week cluster stability needs months more data.","trained_at":"2026-05-21T04:43:38Z","version":"v1"},{"kind":"classifier","live_endpoint":"POST /v1/measurement/classify","metrics":{"f1":1,"n_test":17094,"precision":1,"recall":1,"roc_auc":1},"model":"measurement-classifier-v1","notes":"XGBoost row-level classifier. AUC=1.0 honest caveat — model reconstructs the labeling rule from signal_value + source patterns rather than discovering novel signal. Per-row interface layer on the same evidence as v3.3 country-day. Top feature: asn_7d_rate (81% gain).","paper":"Niaki et al. KDD23 — Massively Parallel Censorship Probing","trained_at":"2026-05-21T04:00:00Z","version":"v1"},{"arxiv":"https://arxiv.org/abs/1812.09970","kind":"attribution","live_endpoint":"/v1/sentinel/attribute?country=X&date=Y","metrics":{"donor_pool":"stable-democracies","method":"synthetic-difference-in-differences"},"model":"sentinel-attribute-sdid","notes":"Causal attribution for shutdown events. Builds counterfactual from stable-democracy donors, measures post-period gap, runs permutation p-value, surfaces nearby political events.","paper":"Arkhangelsky et al. 2018 — Synthetic Difference-in-Differences","trained_at":"2026-05-21T00:00:00Z","version":"v1"},{"kind":"score","live_endpoint":"/v1/atlas/score-v2","metrics":{"base_rate_weight":0.5,"moves_cn":33,"moves_kp":32,"moves_ru":24},"model":"atlas-score-v2-base-rate-weighted","notes":"A-F country grades. 50% base-rate weight (v1 only weighted change). Fixes stable-but-blocked CN/RU/KP scoring B-.","trained_at":"2026-05-21T03:00:00Z","version":"v2"}],"generated_at":"2026-05-21T13:02:50.926710Z","schema":"voidly-model-changelog/v1","source":"curated","_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."}}