{"auc_range":0.3092,"auc_variance":0.0088,"country_code":"IR","generated_at":"2026-05-21T20:02:27.290333+00:00","honest_caveats":["OONI test types have different probe densities across countries; AUC is not perfectly apples-to-apples.","\"Diagnostic\" does not mean \"causal\" — a test type may be high-AUC because operators chose to test it heavily on incident days.","AUC computed in-sample (no train/test split) so values are upper bounds on out-of-sample performance.","Logistic regression uses class_weight=balanced because positive days are rare.","Incidents within +/- 1 day are positive; this can leak signal between adjacent days.","Countries with insufficient labeled data are skipped silently — see n_countries_total vs n_countries_viable."],"interpretation":"Per-test-type AUC measures how separable censorship/mixed incident days are from non-incident days using ONLY that OONI test type's anomaly rate. The top_test_type is the most diagnostic for this country — where journalists should look first when investigating a new event.","model_id":"ooni-test-type-diagnostic-v1","n_positive_days":22,"n_total_days":83,"n_viable_test_types":7,"test_types":[{"auc":null,"coef":null,"mean_rate":0.3426,"n_days":35,"n_negative":19,"n_positive":16,"skipped_reason":"lt_50_days","test_type":"http_invalid_request_line"},{"auc":0.8381,"coef":-1.1761,"mean_rate":0.5852,"n_days":71,"n_negative":53,"n_positive":18,"test_type":"tor"},{"auc":0.7311,"coef":-0.7152,"mean_rate":0.6212,"n_days":59,"n_negative":42,"n_positive":17,"test_type":"http_header_field_manipulation"},{"auc":0.6917,"coef":0.6615,"mean_rate":0.5915,"n_days":69,"n_negative":51,"n_positive":18,"test_type":"facebook_messenger"},{"auc":0.6761,"coef":0.7452,"mean_rate":0.6534,"n_days":61,"n_negative":42,"n_positive":19,"test_type":"telegram"},{"auc":0.6688,"coef":1.0188,"mean_rate":0.6774,"n_days":59,"n_negative":42,"n_positive":17,"test_type":"whatsapp"},{"auc":0.5723,"coef":-0.4117,"mean_rate":0.1875,"n_days":83,"n_negative":61,"n_positive":22,"test_type":"web_connectivity"},{"auc":0.5289,"coef":-0.0701,"mean_rate":0.7806,"n_days":70,"n_negative":51,"n_positive":19,"test_type":"signal"}],"top_auc":0.8381,"top_test_type":"tor","window_days":730,"_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."}}