{"feature_importance":[{"feature":"horizon_days","importance":0.12919840216636658},{"feature":"month_sin","importance":0.11068723350763321},{"feature":"global_30d_events","importance":0.10472018271684647},{"feature":"month_cos","importance":0.09765468537807465},{"feature":"follower_base_rate","importance":0.09538375586271286},{"feature":"follower_90d_events","importance":0.09220441430807114},{"feature":"follower_enc","importance":0.08680064231157303},{"feature":"days_since_follower_last","importance":0.07990104705095291},{"feature":"follower_30d_events","importance":0.06445127725601196},{"feature":"same_auth_cluster","importance":0.035676512867212296},{"feature":"pair_coevents_365d","importance":0.03256774693727493},{"feature":"trigger_enc","importance":0.027370326220989227},{"feature":"trigger_30d_events","importance":0.027290312573313713},{"feature":"same_region","importance":0.016093412414193153}],"honest_caveats":["Pairwise temporal classifier; primary horizon=7d.","Trained on 17622 rows, tested on 9306 rows in last 45d window.","Each row is a (trigger_event, follower_country, horizon) tuple \u2014 same trigger appears N-follower times per horizon, so AUC is not strictly per-event but per-pair.","did_follow=1 includes ANY censorship/mixed event in the follower country within H days, which may be coincidental rather than causal contagion. Model can only learn that the joint distribution shifts after the trigger, not establish causality.","Top-chains are TEST-SET averages \u2014 they reflect what the model PREDICTS, not what necessarily WILL happen. Use as a forecast prior, not a ground truth.","Sparse positive class (~18% at 7d horizon) means precision @ high-confidence cutoffs is noisy \u2014 recommend using the score as a relative ranking, not an absolute probability."],"horizons_days":[3,7,14],"model":"pairwise-xgboost","n_candidate_countries":34,"n_follower_countries":34,"n_significant_pairs":92,"n_trigger_countries":34,"overall_test_ap":0.5134118545225828,"overall_test_auc":0.6983610717603259,"passed_promote_gates":true,"per_horizon_test_metrics":{"14":{"ap":0.5972444851313632,"auc":0.691951249794626,"brier":0.22713750929056467,"n_test":3102,"pos_rate":0.3346228239845261},"3":{"ap":0.34975608080084875,"auc":0.6457041379459076,"brier":0.1413486352273149,"n_test":3102,"pos_rate":0.16795615731785946},"7":{"ap":0.4928577559110649,"auc":0.6696949571962517,"brier":0.18587975807485208,"n_test":3102,"pos_rate":0.25435203094777564}},"primary_horizon_auc":0.6696949571962517,"primary_horizon_days":7,"promote_gate_thresholds":{"min_primary_auc":0.65,"min_significant_pairs":10},"trained_at":"2026-05-21T14:25:41.860469Z","version":"1.0"}
