{"id":48330,"plugin_id":"plugins_6abfcceaad1c81918be3b0e607037eb6","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:36:06.090Z","digest":"ef24a42c6380d6d64e164544d96e42925828c09cb62f5254fa89385e4cf987aa","against":null,"payload":{"description":"Analyze a finished geo experiment or regional holdout from a CSV of KPI by region and day. Estimates the incremental effect with an interval, incremental CPA or ROAS, and runs robustness checks. Use when the user has run a geo test, regional go-dark, brand search blackout by region, or heavy-up and wants the result.","included_files":[{"relative_path":"assets/readout-template.md","size_in_bytes":1058},{"relative_path":"assets/test-plan-template.md","size_in_bytes":1879},{"relative_path":"references/data-format.md","size_in_bytes":2479},{"relative_path":"references/directional-methods.md","size_in_bytes":4223},{"relative_path":"references/geo-design-rules.md","size_in_bytes":5553},{"relative_path":"references/literature.md","size_in_bytes":43626},{"relative_path":"references/method-ladder.md","size_in_bytes":4055},{"relative_path":"references/platform-lift.md","size_in_bytes":4707},{"relative_path":"references/reading-results.md","size_in_bytes":3462},{"relative_path":"references/script-reference.md","size_in_bytes":3739},{"relative_path":"references/validation.md","size_in_bytes":4026},{"relative_path":"scripts/geolift.py","size_in_bytes":61898}],"name":"geo-test-readout","skill_md_contents":"---\nname: geo-test-readout\ndescription: Analyze a finished geo experiment or regional holdout from a CSV of KPI by region and day. Estimates the incremental effect with an interval, incremental CPA or ROAS, and runs robustness checks. Use when the user has run a geo test, regional go-dark, brand search blackout by region, or heavy-up and wants the result.\n---\n\n# Geo test readout\n\nEstimates the effect of a geo experiment with the bundled script and reports it in a form a team can decide on.\n\nThe user's explicit instructions take priority over this guidance. Reply in the user's language.\n\n## Inputs\n\n- The CSV with the KPI by geo and day, covering the pre-period and the test (and cooldown). Spend by geo if available, value if available.\n- Treated geos, test start, and the last day to measure (end of cooldown).\n- Test type, and the test plan if one exists.\n\nAsk for whatever is missing. If there is a test plan, use its treated list, dates and decision rule exactly.\n\n## Steps\n\n1. Run `python scripts/geolift.py profile --data <file>` and check that the treated geos exist and the dates cover the window.\n2. Run `python scripts/geolift.py readout --data <file> --treated <geos> --start <date> --end <date> --type <type> --out readout`.\n   - Add `--exclude-controls` for neighboring geos with spillover risk if the plan named a buffer.\n3. Read `references/reading-results.md` and apply it:\n   - Report effect, lift and interval from `primary`. Note `interval_kind`.\n   - Compare with `secondary` (the other estimator). Disagreement means a fragile result.\n   - Go through `checks` and `warnings`, and say what each failed check means.\n   - Compute or report iCPA or iROAS from `money`, and set them next to the platform-reported CPA or ROAS if the user has them.\n4. Apply the decision rule from the plan. If there was no plan, apply the decision mapping in `references/reading-results.md` and say the rule was set after the fact.\n5. Show the chart (`readout.png`) and offer the daily series (`readout_daily.csv`).\n6. Write the readout with `assets/readout-template.md`.\n\n## Output\n\n- First line: effect and interval, and what it means for the decision.\n- Incremental cost or return against the reported one.\n- Robustness table.\n- Limits: what the result does not cover.\n- Next step.\n\n## Rules\n\n- Never report a point estimate without its interval.\n- An interval that includes zero is not proof of no effect. Give the MDE context.\n- Do not rerun with different dates, geos or methods until the result looks better. If a change is justified (a tracking outage, a geo that leaked spend), make it once, say why, and report both versions.\n- A go-dark with spend leakage in treated geos underestimates the effect; report the leakage.\n\n## Scripts and references\n\n- `scripts/geolift.py`, documented in `references/script-reference.md`.\n- If code execution is not available, give the user the exact command to run locally.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}