{"calibrator_loaded": true, "calibrator_path": "[internal path]", "drift_threshold_pp": 15.0, "endpoints": {"all": "/v1/sentinel/calibration-drift", "single_country": "/v1/sentinel/calibration-drift/{cc}"}, "filters_applied": {"min_n": null, "status": null}, "generated_at": "2026-10-04T05:00:15Z", "honest_caveats": ["Per-country windows are narrow. A country with fewer than 15 predictions in the 30-day window gets status='insufficient_data' and drift_alert=null.", "High-frequency-flip countries (VE, MM) produce noisy drift estimates \u2014 abs_drift_pp tends to overstate true drift when the country is bouncing between blocked and unblocked.", "Drift > 0 \u2260 broken model. A real distribution shift in the country (election, mass protest, fresh shutdown campaign) will legitimately have empirical_pos_rate > mean_predicted_prob until the next weekly retrain catches up.", "Observed labels are rebuilt from voidly_data.incidents using incident_type IN ('censorship','mixed') \u2014 matching the forecast model's post-2026-05-21 disruption-exclusion rule. The legacy sentinel_outcomes.observed column is NOT used.", "Calibrator is applied with the same WATCHED_FOR_CALIBRATION + CALIBRATOR_FLOOR gate as the live API, so this is the literal probability that would have been served at request time."], "min_predictions_for_alert": 15, "model_id": "forecast-v1-7day", "n_countries": 30, "n_drifting": 27, "n_insufficient_data": 0, "n_ok": 3, "results": [{"abs_drift_pp": 96.94, "brier": 0.9452, "calibration_drift_pp": 96.94, "country": "ID", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.0306, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 7, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.125, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 96.45, "brier": 0.9354, "calibration_drift_pp": 96.45, "country": "IN", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.0355, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 16, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.4, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 95.28, "brier": 0.9142, "calibration_drift_pp": 95.28, "country": "TR", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.0472, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 8, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.075, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 92.45, "brier": 0.8641, "calibration_drift_pp": 92.45, "country": "BD", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.0755, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 0, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.175, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 92.12, "brier": 0.8595, "calibration_drift_pp": 92.12, "country": "TH", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.0788, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.05, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 88.2, "brier": 0.7897, "calibration_drift_pp": 88.2, "country": "CN", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.118, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.175, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 80.97, "brier": 0.662, "calibration_drift_pp": 80.97, "country": "RU", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.1903, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.525, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "BY", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.675, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "CU", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.75, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "EG", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.55, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "ET", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.3, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "IR", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.525, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "KZ", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 19, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.55, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "LB", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.35, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "MM", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.55, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "MY", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 10, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.225, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "PK", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.65, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "SA", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.625, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "SY", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.7, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "UZ", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.55, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "VE", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 12, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.625, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 77.4, "brier": 0.5991, "calibration_drift_pp": 77.4, "country": "VN", "drift_alert": true, "empirical_pos_rate": 1.0, "mean_predicted_prob": 0.226, "n_observed_positives": 24, "n_predictions": 24, "n_relabeled_vs_sentinel": 24, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.075, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 56.57, "brier": 0.485, "calibration_drift_pp": 56.57, "country": "NG", "drift_alert": true, "empirical_pos_rate": 0.7917, "mean_predicted_prob": 0.226, "n_observed_positives": 19, "n_predictions": 24, "n_relabeled_vs_sentinel": 19, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.75, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 22.6, "brier": 0.0511, "calibration_drift_pp": -22.6, "country": "ER", "drift_alert": true, "empirical_pos_rate": 0.0, "mean_predicted_prob": 0.226, "n_observed_positives": 0, "n_predictions": 24, "n_relabeled_vs_sentinel": 0, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.05, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 22.6, "brier": 0.0511, "calibration_drift_pp": -22.6, "country": "KP", "drift_alert": true, "empirical_pos_rate": 0.0, "mean_predicted_prob": 0.226, "n_observed_positives": 0, "n_predictions": 24, "n_relabeled_vs_sentinel": 0, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.05, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 22.6, "brier": 0.0511, "calibration_drift_pp": -22.6, "country": "PH", "drift_alert": true, "empirical_pos_rate": 0.0, "mean_predicted_prob": 0.226, "n_observed_positives": 0, "n_predictions": 24, "n_relabeled_vs_sentinel": 0, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.05, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 15.66, "brier": 0.1683, "calibration_drift_pp": 15.66, "country": "TM", "drift_alert": true, "empirical_pos_rate": 0.1667, "mean_predicted_prob": 0.01, "n_observed_positives": 4, "n_predictions": 24, "n_relabeled_vs_sentinel": 4, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.05, "status": "drifting", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 6.57, "brier": 0.2109, "calibration_drift_pp": 6.57, "country": "BR", "drift_alert": false, "empirical_pos_rate": 0.2917, "mean_predicted_prob": 0.226, "n_observed_positives": 7, "n_predictions": 24, "n_relabeled_vs_sentinel": 2, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.05, "status": "ok", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 6.57, "brier": 0.2109, "calibration_drift_pp": 6.57, "country": "NI", "drift_alert": false, "empirical_pos_rate": 0.2917, "mean_predicted_prob": 0.226, "n_observed_positives": 7, "n_predictions": 24, "n_relabeled_vs_sentinel": 7, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.275, "status": "ok", "window_end": "2026-09-27", "window_start": "2026-09-04"}, {"abs_drift_pp": 1.48, "brier": 0.2028, "calibration_drift_pp": -1.48, "country": "SD", "drift_alert": false, "empirical_pos_rate": 0.1667, "mean_predicted_prob": 0.1815, "n_observed_positives": 4, "n_predictions": 24, "n_relabeled_vs_sentinel": 4, "observed_rebuilt_from_voidly_db": true, "operational_threshold": 0.2, "status": "ok", "window_end": "2026-09-27", "window_start": "2026-09-04"}], "schema": "voidly-per-country-calibration-drift/v1", "sidecar_last_modified": "2026-10-04T05:00:15Z", "sidecar_size_bytes": 16554, "window_days": 30}