Adstock Optimization

Find the Optimal Carryover Rate for Each Channel

What is Adstock Optimization?

Adstock optimization systematically tests multiple carryover rates to find the one that maximizes variable performance in your model.

Goal: Identify the adstock rate that produces highest T-statistic and R² improvement

Why Optimize Adstock?

The Problem with Guessing

Typical approach:

  • Use industry standard (TV = 70%)

  • Hope it's correct for your situation

  • May be suboptimal

Better approach:

  • Test rates 0% through 90%

  • Find empirically best rate

  • Data-driven, not assumption-driven

Impact of Wrong Rate

Too low (e.g., 30% when should be 70%):

  • Underestimates total effect

  • Lower coefficient

  • Appears less significant

  • Undervalues channel

Too high (e.g., 90% when should be 50%):

  • Overestimates persistence

  • Inflated long-term effect

  • May capture trend, not carryover

  • Misleading optimization

Optimal rate:

  • Maximizes statistical significance

  • Best model fit

  • Accurate effect measurement

How to Optimize Adstock

Method 1: Variable Testing Interface

Step 1: Select variable

  • Choose one media variable to optimize

  • Example: TV_Spend

Step 2: Select multiple adstock rates

  • Check: 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%

  • Or subset: 30%, 50%, 70% for quicker test

Step 3: Run test

  • Click "Test Variables"

  • System tests variable with each rate

Step 4: Review results

  • Each rate shown as separate row

  • Compare T-statistics

  • Compare R² increases

  • Compare p-values

Step 5: Select winner

  • Choose rate with:

    • Highest T-statistic

    • Lowest P-value

    • Highest R² increase

Step 6: Apply to model

  • Add variable with optimal rate in Model Builder

Method 2: Systematic Testing

Test incrementally:

  1. Start with 0%, 30%, 60%, 90%

  2. Identify range (e.g., 30-60%)

  3. Test narrower: 30%, 40%, 50%, 60%

  4. Find peak performance

  5. Use optimal rate

Interpreting Optimization Results

Results Table

Example output:

Variable
Adstock
T-Stat
P-Value
R² Increase

TV_Spend

70%

4.2

0.001

+0.035

TV_Spend

60%

3.9

0.002

+0.032

TV_Spend

50%

3.5

0.005

+0.028

TV_Spend

80%

3.8

0.003

+0.031

TV_Spend

40%

3.1

0.008

+0.024

Winner: 70% adstock (highest T-stat, best R²)

Clear Winner Pattern

Characteristics:

  • One rate significantly outperforms

  • T-stat > 0.3 higher than next best

  • Clear peak in results

Decision: Use winning rate confidently

Flat Pattern

Characteristics:

  • Multiple rates perform similarly

  • T-stats within 0.2 of each other

  • No clear peak

Decision:

  • Choose middle of range

  • Or use business judgment

  • Variable may not need adstock

Monotonic Increase

Characteristics:

  • Higher rates always better

  • Even 90% shows improvement

  • No peak detected

Warning: May be capturing trend, not carryover

Decision:

  • Recheck data for trends

  • Consider detrending

  • Cap at 80% maximum

Optimization by Channel Type

TV Advertising

Typical optimal range: 60-80%

Why:

  • High frequency drives awareness

  • Brand recall persists

  • Long consideration periods

Test strategy: Focus on 50%, 60%, 70%, 80%

Digital Display

Typical optimal range: 30-50%

Why:

  • Moderate frequency

  • Some brand building

  • Retargeting extends effect

Test strategy: Focus on 20%, 30%, 40%, 50%

Typical optimal range: 0-20%

Why:

  • High intent, immediate action

  • Little brand building

  • Short consideration

Test strategy: Focus on 0%, 10%, 20%

Radio

Typical optimal range: 40-70%

Why:

  • Frequency-dependent

  • Moderate persistence

  • Awareness building

Test strategy: Focus on 40%, 50%, 60%, 70%

Advanced Optimization Techniques

Seasonal Optimization

Test by season:

  • Q4 optimal rate may differ from Q1

  • Holiday effects change carryover

  • Test separately if data allows

Product Category Optimization

Different products, different rates:

  • Impulse products: Lower rates

  • Considered purchases: Higher rates

  • Test by category if multiple products

Combined with Curves

Optimization order:

  1. First optimize adstock rate

  2. Then apply saturation curve

  3. Don't optimize both simultaneously

Why: Separate effects for clarity

Common Optimization Scenarios

Scenario 1: New Channel Launch

Situation: Just started Radio, need optimal rate

Approach:

  • Wait for 8-12 weeks of data

  • Test broad range: 0%, 30%, 60%, 90%

  • Identify pattern

  • Refine with narrow range

Caution: Limited data means less reliable optimization

Scenario 2: Channel Performance Review

Situation: TV has been at 70% for years, is it still optimal?

Approach:

  • Test current rate (70%) plus neighbors (60%, 80%)

  • If neighbors better, expand testing

  • Update rate if clear improvement

Frequency: Re-optimize annually or when market changes

Scenario 3: Budget Optimization

Situation: Need ROI for each channel at optimal adstock

Approach:

  • Optimize adstock for each channel

  • Build model with optimal rates

  • Run decomposition for ROI

  • Use for budget allocation

Result: More accurate ROI, better optimization

Validation and Checks

After Optimization

Validate optimal rate:

Statistical check:

  • T-stat significantly higher

  • P-value < 0.05

  • R² improvement meaningful

Business check:

  • Rate aligns with channel behavior

  • Similar to industry benchmarks

  • Makes logical sense

Diagnostic check:

  • VIF acceptable

  • Residuals well-behaved

  • No issues introduced

Red Flags

🚨 Optimal rate = 90%+

  • Likely capturing trend

  • Check for time trends in data

  • Consider detrending

🚨 Optimal rate = 0% for all channels

  • May indicate data issues

  • Check for weekly vs. monthly mismatch

  • Verify data quality

🚨 Wildly different from expectations

  • TV optimal at 10%

  • Search optimal at 80%

  • Investigate data quality

Best Practices

Testing Approach

Start broad:

  • Test 0%, 30%, 60%, 90% first

  • Identify general pattern

  • Narrow down from there

Test systematically:

  • Don't skip rates

  • Cover full range

  • Document results

One channel at a time:

  • Don't optimize all simultaneously

  • Focus on one variable

  • Validate before moving to next

Applying Results

Use optimal rate:

  • Apply in Model Builder when adding variable

  • Document choice and rationale

  • Include in model documentation

Retest periodically:

  • Quarterly or annually

  • When market changes

  • After major campaigns

Validate with business:

  • Share results with channel owners

  • Confirm makes sense

  • Get buy-in on rate

Troubleshooting

No clear optimal rate

All rates perform similarly

Solution:

  • Variable may not need adstock

  • Use 0% or business judgment rate

  • Focus optimization elsewhere

Optimization takes too long

Testing many rates for many variables

Solution:

  • Optimize one variable at a time

  • Use broader increments (0%, 30%, 60%, 90%)

  • Refine only top candidates

Results contradict business knowledge

Optimal rate doesn't match expectations

Investigation:

  • Check data quality

  • Review variable definition

  • Validate with stakeholders

  • May reveal new insights OR data issues

Key Takeaways

  • Optimize adstock by testing multiple rates systematically

  • Look for rate with highest T-statistic and R² increase

  • Typical ranges: TV 60-80%, Digital 30-50%, Search 0-20%

  • Test one variable at a time for clarity

  • Validate optimal rate against business logic

  • Re-optimize periodically as markets change

  • Use Variable Testing interface for efficient optimization

  • Apply optimal rates in Model Builder when adding variables

Last updated