Systems Lab

Agent skill

incrementality-testing-guide

This skill should be used when the user asks to \"run an incrementality test\", \"measure true ad impact\", \"design a geo lift test\", mentions \"incremental ROAS\", \"holdout experiment\", or \"is my advertising actually working\".

activeSelf-containedInstructions only1,953 words

Filed under Analytics and reporting.

From Ad-Superpowers/ad-superpowers-plugin · 120 skills · 5 · pushed 2026-09-10

What it does when it runs

This skill should be used when the user asks to \"run an incrementality test\", \"measure true ad impact\", \"design a geo lift test\", mentions \"incremental ROAS\", \"holdout experiment\", or \"is my advertising actually working\". Do NOT use for: attribution discrepancy diagnosis (use attribution-reconciler), A/B testing landing pages (use landing-page-optimization-guide), or first-party data / tracking setup (use first-party-data-strategy).

Read from the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about incrementality-testing-guide

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/Ad-Superpowers/ad-superpowers-plugin.git /tmp/ad-superpowers-plugin
git -C /tmp/ad-superpowers-plugin sparse-checkout set "plugin/skills/incrementality-testing-guide"
mkdir -p ~/.claude/skills/incrementality-testing-guide
cp -R "/tmp/ad-superpowers-plugin/plugin/skills/incrementality-testing-guide/." ~/.claude/skills/incrementality-testing-guide/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

Or take the whole library

This repo ships a .claude-plugin manifest, so Claude Code can install all 120 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.

/plugin marketplace add Ad-Superpowers/ad-superpowers-plugin
/plugin

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from Ad-Superpowers/ad-superpowers-plugin/blob/9b6385d2d2d228e4dac096a1d6bc5715c04fa736/plugin/skills/incrementality-testing-guide/SKILL.md, which is licensed MIT (repository). 1,953 words, 34 headings.

Incrementality Testing Guide

Purpose

Help advertisers understand and implement incrementality testing to measure the true causal impact of their advertising, beyond what traditional attribution can tell them.

When to Use This Skill

Invoke when user mentions:

  • Incrementality: "Is my advertising actually working?"
  • Testing: "How do I run a geo lift test?"
  • Attribution skepticism: "I don't trust platform reporting"
  • True ROAS: "What's my incremental ROAS?"
  • Holdout tests: "Should I run a holdout experiment?"
  • MMM/Econometrics: "What is marketing mix modeling?"
  • Conversion lift: "How do I set up a conversion lift study?"

Part 1: Why Incrementality Testing Matters

The Attribution Problem

Traditional attribution (last-click, platform-reported) has fundamental flaws:

Attribution TypeWhat It MeasuresWhat It Misses
Last-click (GA4)Final touchpointAll assist interactions
Platform reportingPlatform's attributed conversionsOver-credits, includes organic
View-throughAd view → conversionMany would convert anyway
Multi-touchWeighted path creditStill doesn't prove causation

The Core Problem: Attribution tells you WHO converted after seeing an ad, not WHETHER the ad caused the conversion.

What Incrementality Testing Answers

The Question: "What additional conversions/revenue occurred BECAUSE of advertising that would NOT have happened without it?"

MetricDefinitionFormula
Incremental conversionsConversions caused by adsTest group - Control group
Incrementality rate% of conversions caused by ads(Test - Control) / Test
Incremental ROAS (iROAS)True return on ad spendIncremental Revenue / Ad Spend

Industry Benchmarks: Typical Incrementality Rates

Channel/TacticTypical IncrementalityNotes
Prospecting (cold audience)70-90%Reaching new users
Generic search75-95%High intent, new customers
Brand search10-40%Users already looking for you
Retargeting (cart abandoners)40-60%Some would return anyway
Retargeting (site visitors)20-40%Higher cannibalization
Retargeting (past buyers)15-30%Lowest incrementality
Social awareness50-80%Hard to measure directly
Display prospecting60-85%Depends on targeting

Key Insight: High ROAS channels often have LOW incrementality (brand search, retargeting), while lower ROAS channels (prospecting) often have HIGH incrementality.


Part 2: Types of Incrementality Tests

1. Geo Lift Tests (Gold Standard)

How it works: Turn off advertising in some geographic regions while keeping it on in others.

AspectDetails
MechanismCompare sales in "ad on" vs "ad off" regions
Best forAny channel, any business size
Minimum spend€5,000/month
Duration4-8 weeks
ConfidenceHigh (if properly designed)

Pros:

  • Works for any advertising channel
  • Measures real-world impact
  • Clean causal inference

Cons:

  • Requires sufficient regional sales
  • Lost revenue in control regions
  • Geographic spillover possible

Design Principles:

  1. Match test/control on historical sales (within 15%)
  2. Account for regional differences (demographics, income)
  3. Run for at least 4 weeks (full purchase cycles)
  4. Document external factors during test

2. Conversion Lift (Meta/Google)

How it works: Platform creates test/holdout groups automatically.

PlatformNameSetupRequirements
MetaConversion LiftExperiments → Conversion Lift€2K+/month spend
GoogleConversion LiftVia Google rep€5K+/month, rep assistance

Pros:

  • Free to run
  • Platform handles randomization
  • Results in 2-4 weeks

Cons:

  • Only tests that specific platform
  • Relies on platform's measurement
  • Some campaigns ineligible

3. Holdout Tests (For Retargeting)

How it works: Exclude a random % of your audience from seeing ads.

ParameterRecommendation
Holdout size10-20% of audience
Duration3-4 weeks minimum
MeasurementCompare conversion rates

Setup Steps:

  1. Create audience of all retargeting-eligible users
  2. Randomly split (use user ID hash)
  3. Exclude holdout group from all retargeting campaigns
  4. Track conversions in both groups for 4+ weeks
  5. Calculate: (Test CR - Control CR) / Test CR = Incrementality

4. Synthetic Control Methods

How it works: Use statistical modeling to create a "synthetic" control group.

When to use:

  • Can't run true experiment
  • Historical data available
  • Need to analyze past campaigns

Tools:

  • Google's CausalImpact (R/Python)
  • Facebook's GeoLift (Python)
  • Custom regression modeling

5. Marketing Mix Modeling (MMM)

How it works: Statistical analysis of all marketing inputs vs. business outcomes.

AspectDetails
Data needed2+ years, weekly granularity
Cost€15,000-50,000
Time8-12 weeks
ConfidenceHighest (holistic view)

Best for:

  • Large advertisers (€100K+/month)
  • Multi-channel marketing
  • Strategic planning

What MMM tells you:

  • Contribution of each channel to revenue
  • Optimal budget allocation
  • Diminishing returns curves
  • Long-term brand effects

Part 3: Designing a Good Incrementality Test

Test Design Checklist

Before Starting:

  • Define hypothesis clearly (e.g., "Meta retargeting drives 50%+ incremental conversions")
  • Choose appropriate test type for budget/channel
  • Calculate required sample size
  • Set test duration (minimum 4 weeks)
  • Document baseline metrics

Test Structure:

ElementRequirement
Test/Control balance50/50 for geo, 80/20 for holdout
Sample matchingHistorical metrics within 15%
DurationAt least 1 full purchase cycle + 1 week
IsolationNo other major changes during test
DocumentationExternal factors logged daily

Statistical Power Calculation

Minimum sample sizes for reliable results:

Desired ConfidenceMDE (Minimum Detectable Effect)Conversions Needed
80%±30%~200 per group
80%±20%~400 per group
90%±20%~600 per group
95%±15%~1,000 per group

Formula for sample size:

n = 2 × (Zα + Zβ)² × σ² / (μ1 - μ2)²

Where:
- Zα = 1.96 for 95% confidence
- Zβ = 0.84 for 80% power
- σ = standard deviation
- μ1 - μ2 = effect size to detect

Avoiding Common Pitfalls

PitfallProblemSolution
Test too shortResults not statistically significantMinimum 4 weeks
Unmatched groupsBiased baseline comparisonPre-match on historical KPIs
ContaminationTreatment leaks to controlStrict geographic separation
Multiple testingFalse positivesPre-register one primary metric
Optimizing during testChanges invalidate resultsFreeze all campaign settings
External factorsNoise masks signalDocument and adjust for events

Part 4: When to Test (and When Not To)

Test Prioritization Framework

FactorTest PriorityReason
Largest spend channelHIGHHighest potential impact
Channel with uncertain performanceHIGHClarify value
RetargetingHIGHOften over-attributed
Brand searchMEDIUMKnown low incrementality
New channel (testing)LOWAlready in test mode
Proven channelLOWRetest every 12 months

When NOT to Test

  • <€5K/month spend: Insufficient data for significance
  • <100 monthly conversions: Sample too small
  • During promotional periods: Too much noise
  • Q4 peak season: Data too valuable to sacrifice
  • After major changes: Need stable baseline first
  • When desperate: Tests take 4-8 weeks

Testing Calendar Template

QuarterTest FocusWhy
Q1 (Jan-Mar)Prospecting channelsPost-holiday baseline
Q2 (Apr-Jun)RetargetingPre-summer assessment
Q3 (Jul-Sep)Brand campaignsBefore Q4 planning
Q4 (Oct-Dec)NO TESTINGPeak revenue period

Part 5: Interpreting Results

Understanding Your Results

Incrementality RateInterpretationAction
85-100%Highly incrementalScale confidently
65-85%Mostly incrementalMaintain, optimize
45-65%Partially incrementalReview targeting, reduce waste
25-45%Low incrementalitySignificant optimization needed
<25%Mostly cannibalisticConsider pausing

Calculating True Performance

Adjusted Metrics:

Reported ROAS: 5.0x
Measured Incrementality: 60%
Incremental ROAS: 5.0x × 60% = 3.0x

This channel's TRUE return is 3.0x, not 5.0x

Budget Reallocation Logic:

If iROAS is...And target ROAS is...Then...
Above target-Scale spending
At target-Maintain
Below target but positiveAbove breakevenOptimize before scaling
Negative/minimalAnyReduce or pause

Statistical Significance Check

Your result is statistically significant if:

  • p-value < 0.05 (95% confidence)
  • Confidence interval doesn't cross zero
  • Effect size is > minimum detectable effect

If not significant:

  • Extend test duration
  • Increase sample size
  • Accept wider confidence interval
  • Combine with other data sources

Part 6: Quick Reference Tables

Test Type Selection Matrix

SituationRecommended TestWhy
Single platform, €5K+/monthGeo liftMost reliable
Meta only, any budgetMeta Conversion LiftFree, easy
Retargeting specificallyHoldout testDirect measurement
Historical analysisSynthetic controlNo experiment needed
€100K+/month, multi-channelFull MMMComprehensive view

Platform-Specific Notes

PlatformBuilt-in TestingNotes
MetaConversion Lift, Brand LiftIn Experiments tab
GoogleConversion Lift (via rep)Requires Google contact
TikTokConversion Lift (limited)Check current availability
LinkedInBrand LiftLimited conversion lift

Cost of Not Testing

Annual SpendIf 20% Non-IncrementalIf 30% Non-Incremental
€50K€10K wasted€15K wasted
€100K€20K wasted€30K wasted
€500K€100K wasted€150K wasted
€1M€200K wasted€300K wasted

Part 7: Next Steps After Testing

Post-Test Action Framework

  1. Document findings: Create permanent record of methodology, results, confidence
  2. Share with stakeholders: Translate to business impact
  3. Adjust budgets: Reallocate based on iROAS
  4. Update reporting: Add incrementality context to dashboards
  5. Plan next test: Incrementality changes over time - retest in 6-12 months

Building a Measurement Culture

LevelPractice
StarterOne test per year on largest channel
DevelopingQuarterly tests on different channels
AdvancedContinuous testing calendar, synthetic control
MatureFull MMM with regular lift studies

Optional: Enrich with Live Data

If the user has connected their GA4 account, pull baseline metrics before the test starts to establish the pre-test period benchmark:

# Capture pre-test baseline: conversions, sessions, revenue by channel
ga4_run_report(
    property_id="YOUR_PROPERTY_ID",
    start_date="30daysAgo",
    end_date="today",
    metrics=["keyEvents", "sessions", "purchaseRevenue"],
    dimensions=["date", "sessionDefaultChannelGroup"]
)

Document this baseline before the test begins. Post-test, run the same query for the test period and compare. The difference (adjusted for seasonality) is your incrementality signal. Store both outputs to calculate iROAS accurately.

Last updated: February 2026 Based on industry best practices and academic research in causal inference

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what incrementality-testing-guide does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.