{"algorithm": "XGBoost (1 model per platform)", "best_platform": {"loco_median_auc": 1.0, "name": "twitter"}, "data_age_hours": 3303.5, "data_as_of": "2026-05-21T12:18:39.776176Z", "data_freshness_note": "Any served_at/generated_at above is when this RESPONSE was assembled, not when the model ran. This artifact was last written 2026-05-21T12:18:39.776176Z (137.6 days ago). Cite data_as_of.", "data_source_artifact": "[internal path]", "data_stale": true, "honest_caveats": ["Per-platform models trained only on countries that ever observed a platform-specific block. Countries with zero history score the base rate.", "LOCO CV uses the top 8 countries per platform by positive count; thin-data platforms have wider AUC variance.", "Targets are derived from elevated/critical/warning signal_levels on platform-matching domains, not from direct block confirmations.", "Per-platform forecasts inherit strong autocorrelation: once a country actively blocks a platform, the next-week probability stays high. The model is essentially predicting 'will the current block state persist?', which it does ~85% of the time on active pairs.", "Countries with zero historical evidence on a platform score the feature-vector floor (\u2248base rate); treat these as low-information."], "horizon_days": 7, "model_id": "per-platform-forecast-v1", "overall_mean_loco_auc": 1.0, "overall_median_loco_auc": 1.0, "passed_promote_floor": true, "per_platform": {"discord": {"n_positives": 0, "n_rows": 0, "note": "insufficient data", "trained": false}, "facebook": {"feature_importance_top5": [{"feature": "crit_rate_7d", "gain": 0.44694610923094413}, {"feature": "block_rate_7d", "gain": 0.1334686993398087}, {"feature": "is_weekend", "gain": 0.08584470374833633}, {"feature": "crit_rate_14d", "gain": 0.07696856699333571}, {"feature": "dow", "gain": 0.04074056373616333}], "in_sample_ap": 0.9999349566667066, "in_sample_auc": 0.9997326100338566, "loco_folds": 8, "loco_mean_auc": 0.9978448275862069, "loco_median_auc": 1.0, "n_countries": 25, "n_positives": 1444, "n_rows": 1804, "temporal_auc": 0.969742310889443, "temporal_n_test": 476, "trained": true}, "instagram": {"feature_importance_top5": [{"feature": "crit_rate_7d", "gain": 0.5482473059977826}, {"feature": "block_rate_7d", "gain": 0.10496062442112232}, {"feature": "crit_rate_14d", "gain": 0.08487416444306325}, {"feature": "is_weekend", "gain": 0.05726831073688956}, {"feature": "dow", "gain": 0.030440861532879327}], "in_sample_ap": 0.9999486682417972, "in_sample_auc": 0.9998349118209006, "loco_folds": 8, "loco_mean_auc": 0.9967532467532467, "loco_median_auc": 1.0, "n_countries": 26, "n_positives": 1501, "n_rows": 1955, "temporal_auc": 0.9815963855421687, "temporal_n_test": 495, "trained": true}, "linkedin": {"n_positives": 0, "n_rows": 0, "note": "insufficient data", "trained": false}, "reddit": {"feature_importance_top5": [{"feature": "crit_rate_7d", "gain": 0.3133579579205753}, {"feature": "is_weekend", "gain": 0.1599242085726686}, {"feature": "block_rate_7d", "gain": 0.15091178022512558}, {"feature": "country_block_rate_14d", "gain": 0.059005401830470296}, {"feature": "dow", "gain": 0.04797200199953811}], "in_sample_ap": 0.9999999999999999, "in_sample_auc": 1.0, "loco_folds": 8, "loco_mean_auc": 0.9951298701298701, "loco_median_auc": 1.0, "n_countries": 20, "n_positives": 1195, "n_rows": 1375, "temporal_auc": 0.9919881305637982, "temporal_n_test": 347, "trained": true}, "signal": {"feature_importance_top5": [{"feature": "crit_rate_7d", "gain": 0.5507771596530614}, {"feature": "crit_rate_14d", "gain": 0.092470122894668}, {"feature": "block_rate_7d", "gain": 0.08192825828622788}, {"feature": "is_weekend", "gain": 0.06854568650697807}, {"feature": "dow", "gain": 0.03604428670147798}], "in_sample_ap": 0.9999456969384928, "in_sample_auc": 0.9998325650474282, "loco_folds": 8, "loco_mean_auc": 0.9990625, "loco_median_auc": 1.0, "n_countries": 27, "n_positives": 1490, "n_rows": 1969, "temporal_auc": 0.9900249376558603, "temporal_n_test": 506, "trained": true}, "telegram": {"feature_importance_top5": [{"feature": "crit_rate_7d", "gain": 0.5050570796178628}, {"feature": "is_weekend", "gain": 0.12566010924679996}, {"feature": "block_rate_7d", "gain": 0.08537327681337013}, {"feature": "crit_rate_14d", "gain": 0.08085743073933421}, {"feature": "dow", "gain": 0.03709523374153446}], "in_sample_ap": 0.9999980656143609, "in_sample_auc": 0.9999959512858716, "loco_folds": 8, "loco_mean_auc": 0.9962623374687328, "loco_median_auc": 1.0, "n_countries": 26, "n_positives": 1436, "n_rows": 1952, "temporal_auc": 0.9906534750759335, "temporal_n_test": 502, "trained": true}, "tiktok": {"feature_importance_top5": [{"feature": "block_rate_7d", "gain": 0.352963112124835}, {"feature": "country_block_rate_7d", "gain": 0.20070707941564633}, {"feature": "n_obs_7d", "gain": 0.11121251332820706}, {"feature": "dow", "gain": 0.06524940179033771}, {"feature": "crit_rate_7d", "gain": 0.05687039412253629}], "in_sample_ap": 0.9999706447678428, "in_sample_auc": 0.9997524371190282, "loco_folds": 8, "loco_mean_auc": 0.9954973236223237, "loco_median_auc": 1.0, "n_countries": 25, "n_positives": 1567, "n_rows": 1741, "temporal_auc": 0.983183856502242, "temporal_n_test": 452, "trained": true}, "twitter": {"feature_importance_top5": [{"feature": "crit_rate_7d", "gain": 0.5566702850877476}, {"feature": "crit_rate_14d", "gain": 0.15492769520307437}, {"feature": "block_rate_7d", "gain": 0.05910772844130387}, {"feature": "is_weekend", "gain": 0.047434966873652305}, {"feature": "country_block_rate_7d", "gain": 0.029721782067642845}], "in_sample_ap": 0.9990904791238324, "in_sample_auc": 0.9989414792402879, "loco_folds": 8, "loco_mean_auc": 0.9934417245158933, "loco_median_auc": 1.0, "n_countries": 70, "n_positives": 1688, "n_rows": 3292, "temporal_auc": 0.9902921238240112, "temporal_n_test": 1420, "trained": true}, "whatsapp": {"feature_importance_top5": [{"feature": "crit_rate_7d", "gain": 0.4599558801063806}, {"feature": "block_rate_7d", "gain": 0.09504630011851918}, {"feature": "crit_rate_14d", "gain": 0.09276195806039855}, {"feature": "is_weekend", "gain": 0.07282495195957918}, {"feature": "n_obs_7d", "gain": 0.05374226688764359}], "in_sample_ap": 0.9999838164851994, "in_sample_auc": 0.9999470899470898, "loco_folds": 8, "loco_mean_auc": 0.9926186399217221, "loco_median_auc": 1.0, "n_countries": 25, "n_positives": 1330, "n_rows": 1735, "temporal_auc": 0.9846989528795813, "temporal_n_test": 482, "trained": true}, "wikipedia": {"n_positives": 0, "n_rows": 0, "note": "insufficient data", "trained": false}, "youtube": {"feature_importance_top5": [{"feature": "crit_rate_7d", "gain": 0.47383422179105544}, {"feature": "is_weekend", "gain": 0.1236093439829554}, {"feature": "block_rate_7d", "gain": 0.1002996313441168}, {"feature": "crit_rate_14d", "gain": 0.08622091828483738}, {"feature": "dow", "gain": 0.05989310853246265}], "in_sample_ap": 0.9999955458796517, "in_sample_auc": 0.9999873324719414, "loco_folds": 8, "loco_mean_auc": 0.9970309295967191, "loco_median_auc": 1.0, "n_countries": 24, "n_positives": 1338, "n_rows": 1810, "temporal_auc": 0.9855586060062751, "temporal_n_test": 465, "trained": true}}, "platforms_skipped": ["discord", "wikipedia", "linkedin"], "platforms_trained": ["twitter", "whatsapp", "telegram", "youtube", "signal", "facebook", "instagram", "tiktok", "reddit"], "promote_floor": 0.65, "trained_at": "2026-05-21T12:16:46.088648Z", "worst_platform": {"loco_median_auc": 1.0, "name": "twitter"}}