Use for cross-country RISK RANKING, not precise within-country day-of-shutdown timing.
This forecast scores the ONSET of a new recorded incident, not how censored a country already is. A permanently and stably blocked network generates no new anomaly, so it scores LOW. Measured 2026-07-31: China 0.015 and India 0.023 both rank BELOW Denmark 0.062 — China is probed 30/30 days across 836 domains and has logged nothing for 71 days, while Denmark is probed 2/30 days. A low score here means 'no CHANGE expected', never 'this country is free'. For standing severity use /v1/atlas/score-v2 or the censorship index instead.
Training ROC AUC 0.954 came from a RANDOM stratified split (consecutive country-days in an incident window are near-duplicates, inflating it). No target leakage: features use [date-7,date], label uses [date+1,date+7].
ML_LEAKAGE_AUDIT.md (forecast v1/7day row).
Complete returned record
{
"aci": {
"active": true,
"alpha": 0.118,
"empirical_coverage": 0.9007,
"last_updated": "2026-10-05T03:45:01.865067+00:00",
"n_observations": 2488,
"q_applied": 0.35,
"q_raw": 0.8757
},
"aci_alpha": 0.118,
"confidence": 0.85,
"country": "NZ",
"country_name": "New Zealand",
"covered": true,
"forecast": [
{
"date": "2026-10-06",
"day": 0,
"drivers": [],
"risk": 0.015
},
{
"date": "2026-10-07",
"day": 1,
"drivers": [],
"risk": 0.01
},
{
"date": "2026-10-08",
"day": 2,
"drivers": [
"New Zealand House of Representatives in 30d"
],
"risk": 0.014
},
{
"date": "2026-10-09",
"day": 3,
"drivers": [
"New Zealand House of Representatives in 29d"
],
"risk": 0.02
},
{
"date": "2026-10-10",
"day": 4,
"drivers": [
"New Zealand House of Representatives in 28d"
],
"risk": 0.027
},
{
"date": "2026-10-11",
"day": 5,
"drivers": [
"New Zealand House of Representatives in 27d"
],
"risk": 0.036
},
{
"date": "2026-10-12",
"day": 6,
"drivers": [
"New Zealand House of Representatives in 26d"
],
"risk": 0.058
},
{
"date": "2026-10-13",
"day": 7,
"drivers": [
"New Zealand House of Representatives in 25d"
],
"risk": 0.057
}
],
"forecast_trajectory_note": "summary.max_risk is now the independently-validated honest 7-day event probability. The per-day forecast[] trajectory is the legacy v1 illustrative shape (NOT independently validated) — use honest_forecast for the headline; the v1 value is kept as max_risk_v1_leaky.",
"generated_at": "2026-10-06T03:07:58.068917",
"honest_caveat": {
"confidence_is": "fixed in-sample model confidence, NOT a per-forecast calibrated probability",
"correct_use": "Use for cross-country RISK RANKING, not precise within-country day-of-shutdown timing.",
"detects_change_not_state": "This forecast scores the ONSET of a new recorded incident, not how censored a country already is. A permanently and stably blocked network generates no new anomaly, so it scores LOW. Measured 2026-07-31: China 0.015 and India 0.023 both rank BELOW Denmark 0.062 — China is probed 30/30 days across 836 domains and has logged nothing for 71 days, while Denmark is probed 2/30 days. A low score here means 'no CHANGE expected', never 'this country is free'. For standing severity use /v1/atlas/score-v2 or the censorship index instead.",
"headline_auc_note": "Training ROC AUC 0.954 came from a RANDOM stratified split (consecutive country-days in an incident window are near-duplicates, inflating it). No target leakage: features use [date-7,date], label uses [date+1,date+7].",
"honest_temporal_holdout_auc": "~0.85-0.90 (dual-holdout temporal gate)",
"live_forward_accountability": [
"GET /v1/sentinel/accuracy (rolling 30-day precision/recall; currently self-reported degraded)",
"GET /v1/forecast/onset-skill (honest onset / forward skill)"
],
"source": "ML_LEAKAGE_AUDIT.md (forecast v1/7day row)."
},
"honest_forecast": {
"as_of": "2026-10-04",
"flag": false,
"is_headline_source": true,
"probability": 0.1057,
"recommended_threshold": 0.625,
"risk_band": "low",
"semantics": "probability of a censorship/connectivity EVENT in the next 7 days (country-relative z-score label)",
"validation": "Independent OONI-grounded + leakage-free. Rolling-origin AUC ~0.815, PR-AUC ~0.29; beats persistence/climatology in all 9 temporal folds; LOCO beats persistence 49/51 countries. See /v1/forecast/honest/info."
},
"interval_90": [
0,
0.408
],
"model_version": "honest_forecast_v1",
"summary": {
"avg_risk": 0.03,
"key_drivers": [
"New Zealand House of Representatives in 30d",
"New Zealand House of Representatives in 28d",
"New Zealand House of Representatives in 25d",
"New Zealand House of Representatives in 29d",
"New Zealand House of Representatives in 26d"
],
"max_risk": 0.1057,
"max_risk_day": 6,
"max_risk_v1_leaky": 0.058
},
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": -0.0268,
"direction": "down",
"name": "block_rate_roll7_mean",
"source": "model"
}
],
"top_features_per_day": [
{
"base_prob": 0,
"date": "2026-10-06",
"day": 0,
"risk": 0.015,
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": -0.0268,
"direction": "down",
"name": "block_rate_roll7_mean",
"source": "model"
}
]
},
{
"base_prob": 0,
"date": "2026-10-07",
"day": 1,
"risk": 0.01,
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": -0.0268,
"direction": "down",
"name": "block_rate_roll7_mean",
"source": "model"
}
]
},
{
"base_prob": 0,
"date": "2026-10-08",
"day": 2,
"risk": 0.014,
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": -0.0268,
"direction": "down",
"name": "block_rate_roll7_mean",
"source": "model"
}
]
},
{
"base_prob": 0,
"date": "2026-10-09",
"day": 3,
"risk": 0.02,
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": -0.0268,
"direction": "down",
"name": "block_rate_roll7_mean",
"source": "model"
}
]
},
{
"base_prob": 0,
"date": "2026-10-10",
"day": 4,
"risk": 0.027,
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": -0.0268,
"direction": "down",
"name": "block_rate_roll7_mean",
"source": "model"
}
]
},
{
"base_prob": 0,
"date": "2026-10-11",
"day": 5,
"risk": 0.036,
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": -0.0268,
"direction": "down",
"name": "block_rate_roll7_mean",
"source": "model"
}
]
},
{
"base_prob": 0,
"date": "2026-10-12",
"day": 6,
"risk": 0.058,
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": 0.03,
"direction": "up",
"name": "day_decay_t+6",
"source": "overlay"
}
]
},
{
"base_prob": 0,
"date": "2026-10-13",
"day": 7,
"risk": 0.057,
"top_features": [
{
"contribution": -0.053,
"direction": "down",
"name": "week_of_year",
"source": "model"
},
{
"contribution": -0.036,
"direction": "down",
"name": "month",
"source": "model"
},
{
"contribution": 0.035,
"direction": "up",
"name": "day_decay_t+7",
"source": "overlay"
}
]
}
]
}