Voidly

Atlas / model history

What changed.
What held.

Promotions, experiments and honest negatives. Read the dated record behind each model.

01The change

Name, version and recorded date.

02The evidence

Evaluation, source notes and caveats.

03The decision

A historical status, with its limits.

A promotion record is not a live deployment check.

Source responseRead from the changelog API

Read 2026-10-03 15:59:50 UTC. A response read time is not a training or promotion date.

Source timestamp21 Jun 2026

Curated-file timestamp; appended entries can have later training dates.

Inspect raw JSON ↗

Follow the record.

21 May 2026 — 3 Oct 2026. Sorted by the recorded calendar date; undated entries stay visible.

17 of 17 source records shown.

  1. shutdown_riskv9

    shutdown-risk-v9

    shutdown-risk-v9 · v9 · shutdown_risk

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-10-03T06:30:22.943975+00:00
    {
      "kind": "shutdown_risk",
      "metrics": {},
      "model": "shutdown-risk-v9",
      "trained_at": "2026-10-03T06:30:22.943975+00:00",
      "version": "v9",
      "change": "shutdown-risk-v9 · v9 · shutdown_risk"
    }
  2. anomalyv1

    anomaly-dbscan-sidecar

    anomaly-dbscan-sidecar · v1 · anomaly (auc 0.6575)

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-10-03T04:20:19.860715Z
    Evaluation and other reported fields
    Source fieldSource value
    auc0.6575
    {
      "kind": "anomaly",
      "metrics": {
        "auc": 0.6575
      },
      "model": "anomaly-dbscan-sidecar",
      "trained_at": "2026-10-03T04:20:19.860715Z",
      "version": "v1",
      "change": "anomaly-dbscan-sidecar · v1 · anomaly (auc 0.6575)"
    }
  3. forecastv1

    forecast-v1-7day

    forecast-v1-7day · v1 · forecast (f1 0.8301886792452831, precision 0.8287671232876712)

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-09-27T02:11:03.341768 · timezone not supplied
    Evaluation and other reported fields
    Source fieldSource value
    f10.8301886792452831
    precision0.8287671232876712
    recall0.8316151202749141
    roc_auc0.9729370073440191

    Top features · source order

    • block_rate_roll30_mean: 0.03451934829354286
    • critical_incident_7d: 0.024652117863297462
    • recent_shutdown: 0.5557434558868408
    • verified_signals_7d: 0.019231174141168594
    • week_of_year: 0.023549780249595642
    {
      "kind": "forecast",
      "metrics": {
        "f1": 0.8301886792452831,
        "precision": 0.8287671232876712,
        "recall": 0.8316151202749141,
        "roc_auc": 0.9729370073440191
      },
      "model": "forecast-v1-7day",
      "top_features": {
        "block_rate_roll30_mean": 0.03451934829354286,
        "critical_incident_7d": 0.024652117863297462,
        "recent_shutdown": 0.5557434558868408,
        "verified_signals_7d": 0.019231174141168594,
        "week_of_year": 0.023549780249595642
      },
      "trained_at": "2026-09-27T02:11:03.341768",
      "version": "v1",
      "change": "forecast-v1-7day · v1 · forecast (f1 0.8301886792452831, precision 0.8287671232876712)"
    }
  4. forecastv1 (re-evaluated)

    forecast-asn-gnn-v1-reeval

    PROMOTED. The AS-topology GraphSAGE GNN was re-evaluated with a genuine CensoredPlanet signal_value censorship label (97 ASNs: 62 that block measurement probes vs 35 that pass them) and a leakage-audited density+topology feature set (7 signal-derived features dropped). Leave-one-AS-out and leakage-safe leave-one-COUNTRY-out CV with a 5,000-permutation test give AUC 0.7645 / 0.7751, both at p=0.0002. The earlier headline (AUC 0.80, n=6 tier-1 ASNs, p=0.32) was an underpowered CV on a label that had collapsed to a measurement-density flag. passed_promote_floor flipped false -> true.

    Source caveats

    • AUC 0.775 is clearly-better-than-chance, not operationally decisive: recall at threshold 0.5 is 0.68 under country-out CV, so the GNN still misses about a third of censoring ASNs.
    • The genuine label is cross-sectional (whether an ASN censors), not a dated 7-day forecast (when). The /v1/forecast/asn-gnn endpoint name predates this re-evaluation.
    • Labels remain CensoredPlanet-only and sparse (97 ASNs across 30 countries). The live per-ASN score still comes from the older 13-feature artifact; treat per-ASN scores as indicative and the reeval_v2 block in /v1/forecast/asn-gnn/info as the audited claim.
    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-22T12:51:42.726607Z
    Evaluation and other reported fields
    Source fieldSource value
    leave_one_as_out_auc0.7645
    leave_one_as_out_perm_p0.0002
    leave_one_country_out_auc0.7751
    leave_one_country_out_perm_p0.0002
    n_country_folds30
    n_labeled97
    n_neg35
    n_permutations5000
    n_pos62
    passed_promote_floortrue
    promote_floor_auc0.65
    {
      "change": "PROMOTED. The AS-topology GraphSAGE GNN was re-evaluated with a genuine CensoredPlanet signal_value censorship label (97 ASNs: 62 that block measurement probes vs 35 that pass them) and a leakage-audited density+topology feature set (7 signal-derived features dropped). Leave-one-AS-out and leakage-safe leave-one-COUNTRY-out CV with a 5,000-permutation test give AUC 0.7645 / 0.7751, both at p=0.0002. The earlier headline (AUC 0.80, n=6 tier-1 ASNs, p=0.32) was an underpowered CV on a label that had collapsed to a measurement-density flag. passed_promote_floor flipped false -> true.",
      "honest_caveats": [
        "AUC 0.775 is clearly-better-than-chance, not operationally decisive: recall at threshold 0.5 is 0.68 under country-out CV, so the GNN still misses about a third of censoring ASNs.",
        "The genuine label is cross-sectional (whether an ASN censors), not a dated 7-day forecast (when). The /v1/forecast/asn-gnn endpoint name predates this re-evaluation.",
        "Labels remain CensoredPlanet-only and sparse (97 ASNs across 30 countries). The live per-ASN score still comes from the older 13-feature artifact; treat per-ASN scores as indicative and the reeval_v2 block in /v1/forecast/asn-gnn/info as the audited claim."
      ],
      "kind": "forecast",
      "metrics": {
        "leave_one_as_out_auc": 0.7645,
        "leave_one_as_out_perm_p": 0.0002,
        "leave_one_country_out_auc": 0.7751,
        "leave_one_country_out_perm_p": 0.0002,
        "n_country_folds": 30,
        "n_labeled": 97,
        "n_neg": 35,
        "n_permutations": 5000,
        "n_pos": 62,
        "passed_promote_floor": true,
        "promote_floor_auc": 0.65
      },
      "model": "forecast-asn-gnn-v1-reeval",
      "trained_at": "2026-05-22T12:51:42.726607Z",
      "version": "v1 (re-evaluated)"
    }
  5. classifierv1 (leakage-audited)

    corroboration-v1-bayesian-reeval

    corroboration-v1-bayesian-reeval · v1 (leakage-audited) · classifier (f1_at_0.5 0, honest_loco_median_auc 0.8658)

    LEAKAGE AUDIT (honest negative). The split is forward-temporal (not shuffled), so the leakage is NOT autocorrelation across folds — it is CIRCULAR FEATURES. is_censorship is derived from the incidents table; 343 of 344 censorship/mixed incidents were minted from an anomalous evidence row on the same country-day the features count, and 265/343 are sourced from censoredplanet only. A single raw feature (censoredplanet_present) scores AUC 0.90 — the 4-source Naive Bayes adds only +1.6pp (bootstrap CI nearly touches 0). On a leakage-free next-day target AUC falls to 0.73. F1 at 0.5 is 0.0 (ranker, not classifier). NOT promoted; no model/endpoint change. honest_caveats + leakage_audit block written to corroboration_v1_metrics.json by scripts/audit-bayesian-corroboration.py. The auto-incident-watchdog corroboration gate is a conservative near-veto, not independent confirmation.

    Source caveats

    • Test AUC 0.916 is base-rate-dominated and STRUCTURALLY LEAKED (ML_LEAKAGE_AUDIT.md): the *_present features and the is_censorship label are both downstream of the same anomalous evidence (incidents are minted from it). Tell-tale: f1_at_0.5 = 0.0.
    • Honest AUC ~0.55-0.65. The per-source likelihood-ratio breakdown is useful as 'source-agreement structure', NOT as predictive accuracy.
    • An honest metric needs a label independent of the evidence panel (human-verified incidents / news).
    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-22T13:00:00Z
    Evaluation and other reported fields
    Source fieldSource value
    f1_at_0.50
    honest_loco_median_auc0.8658
    leakage_free_nextday_auc0.7348
    lift_bootstrap_95ci_low0.0006
    model_lift_over_trivial_baseline0.016
    promotedfalse
    reported_headline_auc0.92
    reproduced_temporal_auc0.9157
    trivial_baseline_auc_censoredplanet_only0.8997
    {
      "honest_caveats": [
        "Test AUC 0.916 is base-rate-dominated and STRUCTURALLY LEAKED (ML_LEAKAGE_AUDIT.md): the *_present features and the is_censorship label are both downstream of the same anomalous evidence (incidents are minted from it). Tell-tale: f1_at_0.5 = 0.0.",
        "Honest AUC ~0.55-0.65. The per-source likelihood-ratio breakdown is useful as 'source-agreement structure', NOT as predictive accuracy.",
        "An honest metric needs a label independent of the evidence panel (human-verified incidents / news)."
      ],
      "kind": "classifier",
      "live_endpoint": "/v1/classifier/corroborate/info",
      "metrics": {
        "f1_at_0.5": 0,
        "honest_loco_median_auc": 0.8658,
        "leakage_free_nextday_auc": 0.7348,
        "lift_bootstrap_95ci_low": 0.0006,
        "model_lift_over_trivial_baseline": 0.016,
        "promoted": false,
        "reported_headline_auc": 0.92,
        "reproduced_temporal_auc": 0.9157,
        "trivial_baseline_auc_censoredplanet_only": 0.8997
      },
      "model": "corroboration-v1-bayesian-reeval",
      "notes": "LEAKAGE AUDIT (honest negative). The split is forward-temporal (not shuffled), so the leakage is NOT autocorrelation across folds — it is CIRCULAR FEATURES. is_censorship is derived from the incidents table; 343 of 344 censorship/mixed incidents were minted from an anomalous evidence row on the same country-day the features count, and 265/343 are sourced from censoredplanet only. A single raw feature (censoredplanet_present) scores AUC 0.90 — the 4-source Naive Bayes adds only +1.6pp (bootstrap CI nearly touches 0). On a leakage-free next-day target AUC falls to 0.73. F1 at 0.5 is 0.0 (ranker, not classifier). NOT promoted; no model/endpoint change. honest_caveats + leakage_audit block written to corroboration_v1_metrics.json by scripts/audit-bayesian-corroboration.py. The auto-incident-watchdog corroboration gate is a conservative near-veto, not independent confirmation.",
      "trained_at": "2026-05-22T13:00:00Z",
      "version": "v1 (leakage-audited)",
      "change": "corroboration-v1-bayesian-reeval · v1 (leakage-audited) · classifier (f1_at_0.5 0, honest_loco_median_auc 0.8658)"
    }
  6. transparencyv1

    prediction-track-record-v1

    prediction-track-record-v1 · v1 · transparency (forecast_7day_brier 0.556, forecast_7day_calibration_drift_pp 56.45)

    Live 30-day production track record across all forecast models. Joins daily-logged sentinel_forecasts against sentinel_outcomes. Only forecast_7day has prod logging today; other 11 models report training-time metrics + caveat until per-request logging lands. Daily cron 04:00 UTC.

    Source caveats

    • forecast_7day operational threshold is 0.05 — metrics_at_0.5/0.25 included for comparability
    • Other 11 models n_predictions=0 because per-request prod logging is not yet wired
    • Calibration drift +56pp indicates model massively under-predicts (5% mean vs 61% empirical)
    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T14:45:05Z
    Evaluation and other reported fields
    Source fieldSource value
    forecast_7day_brier0.556
    forecast_7day_calibration_drift_pp56.45
    forecast_7day_n_predictions720
    forecast_7day_precision_op0.689
    forecast_7day_recall_op0.391
    n_models_tracked12
    n_models_with_prod_logging1
    {
      "finding_url": "/atlas/findings/prediction-track-record-2026-05",
      "honest_caveats": [
        "forecast_7day operational threshold is 0.05 — metrics_at_0.5/0.25 included for comparability",
        "Other 11 models n_predictions=0 because per-request prod logging is not yet wired",
        "Calibration drift +56pp indicates model massively under-predicts (5% mean vs 61% empirical)"
      ],
      "kind": "transparency",
      "live_endpoint": "/v1/atlas/prediction-track-record",
      "metrics": {
        "forecast_7day_brier": 0.556,
        "forecast_7day_calibration_drift_pp": 56.45,
        "forecast_7day_n_predictions": 720,
        "forecast_7day_precision_op": 0.689,
        "forecast_7day_recall_op": 0.391,
        "n_models_tracked": 12,
        "n_models_with_prod_logging": 1
      },
      "model": "prediction-track-record-v1",
      "notes": "Live 30-day production track record across all forecast models. Joins daily-logged sentinel_forecasts against sentinel_outcomes. Only forecast_7day has prod logging today; other 11 models report training-time metrics + caveat until per-request logging lands. Daily cron 04:00 UTC.",
      "trained_at": "2026-05-21T14:45:05Z",
      "version": "v1",
      "change": "prediction-track-record-v1 · v1 · transparency (forecast_7day_brier 0.556, forecast_7day_calibration_drift_pp 56.45)"
    }
  7. topic-modelingv1

    incident-topic-tfidf-nmf

    incident-topic-tfidf-nmf · v1 · topic-modeling (coherence_floor 0.3, coherence_npmi 0.7257)

    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.

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T13:02:50.926710Z
    Evaluation and other reported fields
    Source fieldSource value
    coherence_floor0.3
    coherence_npmi0.7257
    dedupe_rate0.547
    n_docs1195
    n_source_rows2636
    n_topics8
    passed_promote_floortrue
    reconstruction_err19.81
    vocab_size623

    Paper: Lee & Seung 1999 — Learning the parts of objects by NMF; Grootendorst 2022 (BERTopic, fallback target)

    {
      "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",
      "change": "incident-topic-tfidf-nmf · v1 · topic-modeling (coherence_floor 0.3, coherence_npmi 0.7257)"
    }
  8. calibrationv1

    forecast-aci-online-calibration

    forecast-aci-online-calibration · v1 · calibration (alpha_current 0.21, empirical_coverage 0.913)

    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.

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T04:30:38Z
    Evaluation and other reported fields
    Source fieldSource value
    alpha_current0.21
    empirical_coverage0.913
    learning_rate0.01
    n_observations840
    target_alpha0.1

    Paper: Gibbs & Candès 2021 — Adaptive Conformal Inference Under Distribution Shift

    {
      "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",
      "change": "forecast-aci-online-calibration · v1 · calibration (alpha_current 0.21, empirical_coverage 0.913)"
    }
  9. forecastv1.1

    forecast-v1-7day-sane-labels

    forecast-v1-7day-sane-labels · v1.1 · forecast (f1 0.6667, optimal_threshold 0.27)

    Retrained after IODA disruption labels excluded from target_7day. Dual-gate accepted (legacy holdout +18pp, temporal holdout +58pp).

    Source caveats

    • ROC AUC 0.954 came from a RANDOM stratified split (near-duplicate consecutive country-days inflate it); NO target leakage — features use [date-7,date], label [date+1,date+7].
    • Honest temporal-holdout AUC ~0.85-0.90. Confidence is in-sample, not calibrated per-forecast.
    • Live forward accountability: /v1/sentinel/accuracy (rolling precision, currently degraded) + /v1/forecast/onset-skill. Use for cross-country ranking, not within-country day-timing.
    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T04:20:38Z
    Evaluation and other reported fields
    Source fieldSource value
    f10.6667
    optimal_threshold0.27
    positive_rate0.092
    precision0.7255
    recall0.6167
    roc_auc0.9541
    samples2148
    {
      "honest_caveats": [
        "ROC AUC 0.954 came from a RANDOM stratified split (near-duplicate consecutive country-days inflate it); NO target leakage — features use [date-7,date], label [date+1,date+7].",
        "Honest temporal-holdout AUC ~0.85-0.90. Confidence is in-sample, not calibrated per-forecast.",
        "Live forward accountability: /v1/sentinel/accuracy (rolling precision, currently degraded) + /v1/forecast/onset-skill. Use for cross-country ranking, not within-country day-timing."
      ],
      "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",
      "change": "forecast-v1-7day-sane-labels · v1.1 · forecast (f1 0.6667, optimal_threshold 0.27)"
    }
  10. forecastv1

    forecast-multi-horizon

    forecast-multi-horizon · v1 · forecast (loco_auc_1d 0.91, loco_auc_30d 0.84)

    Separate 1d/7d/30d models. Per-horizon SHAP + 90% conformal intervals + monotonicity consistency check.

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T03:40:00Z
    Evaluation and other reported fields
    Source fieldSource value
    loco_auc_1d0.91
    loco_auc_30d0.84
    loco_auc_7d0.88
    n_spotlight_countries20
    {
      "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",
      "change": "forecast-multi-horizon · v1 · forecast (loco_auc_1d 0.91, loco_auc_30d 0.84)"
    }
  11. classifierv3.3

    classifier-v3.3

    classifier-v3.3 · v3.3 · classifier (loco_mean_f1 0.711, loco_median_f1 0.87)

    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).

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T02:58:00Z
    Evaluation and other reported fields
    Source fieldSource value
    loco_mean_f10.711
    loco_median_f10.87
    n_countries131
    n_features16
    n_positive1116
    n_samples4237
    stratified_f10.729
    {
      "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",
      "change": "classifier-v3.3 · v3.3 · classifier (loco_mean_f1 0.711, loco_median_f1 0.87)"
    }
  12. classifierv3.4

    classifier-v3.4-regime-cluster-finetune

    classifier-v3.4-regime-cluster-finetune · v3.4 · classifier (loco_median_f1 0.833, regression_countries_improved_of_16 1)

    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.

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T04:18:46Z
    Evaluation and other reported fields
    Source fieldSource value
    loco_median_f10.833
    passed_promote_floorfalse
    regression_countries_improved_of_161
    {
      "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",
      "change": "classifier-v3.4-regime-cluster-finetune · v3.4 · classifier (loco_median_f1 0.833, regression_countries_improved_of_16 1)"
    }
  13. anomalyv1

    anomaly-dbscan-v1

    anomaly-dbscan-v1 · v1 · anomaly (auc 0.6506, min_samples 3)

    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.

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T04:19:40Z
    Evaluation and other reported fields
    Source fieldSource value
    auc0.6506
    min_samples3
    n_scored3215
    passedtrue
    promote_floor_auc0.65
    window_days45

    Paper: Aceto & Pescape 2025 — CenDTect

    {
      "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",
      "change": "anomaly-dbscan-v1 · v1 · anomaly (auc 0.6506, min_samples 3)"
    }
  14. anomalyv1

    anomaly-domain-drift-hdbscan-v1

    anomaly-domain-drift-hdbscan-v1 · v1 · anomaly (n_clusters_last_week 0, n_clusters_this_week 2)

    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.

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T04:43:38Z
    Evaluation and other reported fields
    Source fieldSource value
    n_clusters_last_week0
    n_clusters_this_week2
    n_domains_clustered27
    top_drift_domaintiktok.com
    top_drift_score0.343
    {
      "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",
      "change": "anomaly-domain-drift-hdbscan-v1 · v1 · anomaly (n_clusters_last_week 0, n_clusters_this_week 2)"
    }
  15. classifierv1

    measurement-classifier-v1

    measurement-classifier-v1 · v1 · classifier (f1 1, n_test 17094)

    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).

    Source caveats

    • Held-out AUC/F1 of 1.0 + zero-error confusion matrix are INFLATED BY LABEL LEAKAGE (ML_LEAKAGE_AUDIT.md), not out-of-distribution skill.
    • Three features (country_7d_rate, asn_7d_rate, country_domain_7d_rate) are running rates computed from the per-row label; 'source' near-perfectly partitions it (IODA 0/4358 pos, Voidly-Community 105/105 pos); evaluation used a plain random split.
    • Honest group-aware estimate ~0.75-0.85. Use as a suspicious-evidence RANKER, not a novel censorship detector. Surfaced live at /v1/measurement/info.
    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T04:00:00Z
    Evaluation and other reported fields
    Source fieldSource value
    f11
    n_test17094
    precision1
    recall1
    roc_auc1

    Paper: Niaki et al. KDD23 — Massively Parallel Censorship Probing

    {
      "honest_caveats": [
        "Held-out AUC/F1 of 1.0 + zero-error confusion matrix are INFLATED BY LABEL LEAKAGE (ML_LEAKAGE_AUDIT.md), not out-of-distribution skill.",
        "Three features (country_7d_rate, asn_7d_rate, country_domain_7d_rate) are running rates computed from the per-row label; 'source' near-perfectly partitions it (IODA 0/4358 pos, Voidly-Community 105/105 pos); evaluation used a plain random split.",
        "Honest group-aware estimate ~0.75-0.85. Use as a suspicious-evidence RANKER, not a novel censorship detector. Surfaced live at /v1/measurement/info."
      ],
      "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",
      "change": "measurement-classifier-v1 · v1 · classifier (f1 1, n_test 17094)"
    }
  16. attributionv1

    sentinel-attribute-sdid

    sentinel-attribute-sdid · v1 · attribution

    Causal attribution for shutdown events. Builds counterfactual from stable-democracy donors, measures post-period gap, runs permutation p-value, surfaces nearby political events.

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T00:00:00Z
    Evaluation and other reported fields
    Source fieldSource value
    donor_poolstable-democracies
    methodsynthetic-difference-in-differences

    Paper: Arkhangelsky et al. 2018 — Synthetic Difference-in-Differences

    {
      "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",
      "change": "sentinel-attribute-sdid · v1 · attribution"
    }
  17. scorev2

    atlas-score-v2-base-rate-weighted

    atlas-score-v2-base-rate-weighted · v2 · score (base_rate_weight 0.5, moves_cn 33)

    A-F country grades. 50% base-rate weight (v1 only weighted change). Fixes stable-but-blocked CN/RU/KP scoring B-.

    Dates, evaluation & complete source record

    These fields belong to this historical record. Metric names and values are retained exactly; they are not a current leaderboard or a shared measure of model quality.

    trained_at
    2026-05-21T03:00:00Z
    Evaluation and other reported fields
    Source fieldSource value
    base_rate_weight0.5
    moves_cn33
    moves_kp32
    moves_ru24
    {
      "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",
      "change": "atlas-score-v2-base-rate-weighted · v2 · score (base_rate_weight 0.5, moves_cn 33)"
    }
Source notes & reading limits
Source
curated+auto-stitched
Schema
voidly-model-changelog/v1
generated_at
2026-06-21T04:06:51.181830Z
stale / stale_known / degraded
not reported / not reported / not reported

Curated entries take precedence; 3 auto-stitched entries were appended for models the curated file omits. generated_at is the curated file's mtime, not a hand-written stamp. Models promoted by a daily gate (notably shutdown_risk) may still change more often than any entry here records — always cite the live /v1/<model>/info endpoint for the served version.

Classifier mean and median F1 are distinct fields. Leave-one-country-out, random-split and forward-temporal scores answer different questions. Retain the model, version, target, threshold, sample and source caveats when citing a result. Source endpoints with unresolved parameters or POST methods are shown as reference text, not requests to execute.