{"generated_at":"2026-05-21T13:45:55.195134","metrics":{"architecture":"GraphSAGE-2layer-h64","dropout":0.5,"epochs":60,"feature_cols":["n_evidence_30d","n_evidence_180d","block_rate_30d","block_rate_180d","n_unique_dates","pct_dns_block","pct_tcp_reset","pct_outage","pct_interference","pct_block","country_risk_tier","log_degree","has_evidence"],"graph_n_edges":841064,"graph_n_nodes":7060,"hidden_dim":16,"honest_caveats":["Only 6 tier-1 ASNs have density >= 100 evidence rows AND >= 30 unique days. Leave-one-out CV across 6 folds is barely statistical — every miss is 16% accuracy.","Training set is the OTHER 52 labeled ASNs (most have < 30 unique days). Label is `had_shutdown_next_7d` from the same evidence table — there's leakage potential via the country-risk and topological neighbors.","Per-ASN forecasting is data-sparsity-bound, not model-architecture-bound. Even a perfect GNN is limited by how few ASNs we have ground truth for."],"loocv_accuracy_at_0.5":0.8333333333333334,"loocv_auc":0.8,"loocv_predictions":[{"asn":8895,"country":"SA","label":1,"score":0.9859580397605896},{"asn":146812,"country":"CN","label":1,"score":0.9999949932098389},{"asn":135473,"country":"ID","label":1,"score":0.9990249872207642},{"asn":215597,"country":"IQ","label":1,"score":0.9910857081413269},{"asn":47541,"country":"RU","label":0,"score":0.784126877784729},{"asn":43727,"country":"RU","label":1,"score":0.5791134834289551}],"lr":0.01,"mean_score_gap":0.12690856456756594,"n_labeled_total":58,"n_tier1_loocv":6,"passed_promote_floor":false,"perm_pvalue":0.321,"promote_floor_auc":0.65,"schema":"voidly-gnn-asn-forecast/v1","seed":42,"tier1_loocv_asns":[8895,146812,135473,215597,47541,43727],"trained_at":"2026-05-21T04:58:09.589520Z","version":"v1","weight_decay":0.0005},"schema":"voidly-gnn-asn-info/v1","summary":{"architecture":"GraphSAGE-2layer-h64","loocv_auc":0.8,"n_labeled":58,"n_tier1_loocv":6,"passed_promote_floor":false,"perm_pvalue":0.321,"promote_floor":0.65},"_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."}}