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:
- Start with 0%, 30%, 60%, 90% 
- Identify range (e.g., 30-60%) 
- Test narrower: 30%, 40%, 50%, 60% 
- Find peak performance 
- Use optimal rate 
Interpreting Optimization Results
Results Table
Example output:
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%
Paid Search
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:
- First optimize adstock rate 
- Then apply saturation curve 
- 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