{"aci":{"active":true,"alpha":0.178,"empirical_coverage":0.9031,"last_updated":"2026-08-20T03:45:01.955611+00:00","n_observations":2518,"q_applied":0.35,"q_raw":0.761},"aci_alpha":0.178,"confidence":0.85,"country":"RU","country_name":"Russia","covered":true,"forecast":[{"date":"2026-08-21","day":0,"drivers":["Russian State Duma Election 2026 in 29d"],"risk":0.01},{"date":"2026-08-22","day":1,"drivers":["Russian State Duma Election 2026 in 28d"],"risk":0.01},{"date":"2026-08-23","day":2,"drivers":["Russian State Duma Election 2026 in 27d"],"risk":0.046},{"date":"2026-08-24","day":3,"drivers":["Russian State Duma Election 2026 in 26d"],"risk":0.029},{"date":"2026-08-25","day":4,"drivers":["Russian State Duma Election 2026 in 25d"],"risk":0.027},{"date":"2026-08-26","day":5,"drivers":["Russian State Duma Election 2026 in 24d"],"risk":0.06},{"date":"2026-08-27","day":6,"drivers":["Russian State Duma Election 2026 in 23d"],"risk":0.055},{"date":"2026-08-28","day":7,"drivers":["Russian State Duma Election 2026 in 22d"],"risk":0.037}],"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-08-21T00:46:24.458286","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-08-19","flag":false,"is_headline_source":true,"probability":0.5776,"recommended_threshold":0.625,"risk_band":"watch","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.41],"model_version":"honest_forecast_v1","summary":{"avg_risk":0.034,"key_drivers":["Russian State Duma Election 2026 in 26d","Russian State Duma Election 2026 in 28d","Russian State Duma Election 2026 in 29d","Russian State Duma Election 2026 in 23d","Russian State Duma Election 2026 in 22d"],"max_risk":0.5776,"max_risk_day":5,"max_risk_v1_leaky":0.06},"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year"},{"contribution":-0.0284,"direction":"down","name":"month"},{"contribution":-0.0234,"direction":"down","name":"risk_tier"}],"top_features_per_day":[{"base_prob":0,"date":"2026-08-21","day":0,"risk":0.01,"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year","source":"model"},{"contribution":-0.0284,"direction":"down","name":"month","source":"model"},{"contribution":-0.0234,"direction":"down","name":"risk_tier","source":"model"}]},{"base_prob":0,"date":"2026-08-22","day":1,"risk":0.01,"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year","source":"model"},{"contribution":-0.0284,"direction":"down","name":"month","source":"model"},{"contribution":-0.0234,"direction":"down","name":"risk_tier","source":"model"}]},{"base_prob":0,"date":"2026-08-23","day":2,"risk":0.046,"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year","source":"model"},{"contribution":-0.0284,"direction":"down","name":"month","source":"model"},{"contribution":-0.0234,"direction":"down","name":"risk_tier","source":"model"}]},{"base_prob":0,"date":"2026-08-24","day":3,"risk":0.029,"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year","source":"model"},{"contribution":-0.0284,"direction":"down","name":"month","source":"model"},{"contribution":-0.0234,"direction":"down","name":"risk_tier","source":"model"}]},{"base_prob":0,"date":"2026-08-25","day":4,"risk":0.027,"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year","source":"model"},{"contribution":-0.0284,"direction":"down","name":"month","source":"model"},{"contribution":-0.0234,"direction":"down","name":"risk_tier","source":"model"}]},{"base_prob":0,"date":"2026-08-26","day":5,"risk":0.06,"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year","source":"model"},{"contribution":-0.0284,"direction":"down","name":"month","source":"model"},{"contribution":0.025,"direction":"up","name":"day_decay_t+5","source":"overlay"}]},{"base_prob":0,"date":"2026-08-27","day":6,"risk":0.055,"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year","source":"model"},{"contribution":0.03,"direction":"up","name":"day_decay_t+6","source":"overlay"},{"contribution":-0.0284,"direction":"down","name":"month","source":"model"}]},{"base_prob":0,"date":"2026-08-28","day":7,"risk":0.037,"top_features":[{"contribution":-0.0441,"direction":"down","name":"week_of_year","source":"model"},{"contribution":0.035,"direction":"up","name":"day_decay_t+7","source":"overlay"},{"contribution":-0.0284,"direction":"down","name":"month","source":"model"}]}],"_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."}}