How-To Guide

How to Handle Promotions in MMM

Promotions produce large outcome lifts that contaminate channel coefficients if not modeled correctly. How to add promotional intensity as a control without it absorbing media effects.

By Ramanath, CTO & Co-Founder at Presenc AI · Last updated: May 18, 2026

Why Promotions Matter

Promotions (discounts, sales, free shipping events, BOGO offers) produce large lift in conversion that is not driven by media. If the MMM does not model promotional intensity, it attributes the lift to whatever media was running during the promotion. Black Friday paid spend looks 5x more effective than it is because the model conflates promotional lift with paid effect.

Step 1: Build the Promotional Intensity Series

Weekly promotional intensity as a quantitative variable. Options: average discount depth across active SKUs, share of revenue from discounted SKUs, promotional spend as a percentage of revenue. Pick one approach and stick with it; the choice matters less than the consistency.

Step 2: Add Promotional Calendar Indicators

Specific high-promotional events (Black Friday, Cyber Monday, brand-specific anniversary sales, Prime Day for Amazon-dependent brands) get binary indicators in addition to the intensity variable. The events have large one-week spikes that the smooth intensity series does not capture.

Step 3: Model the Pull-Forward Effect

Promotions pull demand forward from future periods. The week after a major sale typically has lower-than-baseline demand because buyers who would have purchased in that week purchased during the promotion. Model this as a lagged effect of the promotional intensity, or use a negative-effect indicator for the post-promotion week.

Step 4: Distinguish Brand-Driven From Retailer-Driven Promotions

For brands selling through retail, retailer-driven promotions (the retailer's sale events) produce different effects from brand-driven promotions (the brand's own sales). Model separately if both are material; the response curves and pull-forward dynamics differ.

Step 5: Validate Decomposition

After fitting, inspect the promotional contribution decomposition. Promotional spend should attribute meaningful but not dominating share of revenue; if promotions are contributing 60+ percent of total revenue, the promotional variable is over-fit. If essentially zero in a brand with material promotional activity, it is under-fit.

How Presenc AI Helps

Presenc AI provides AI visibility data that disentangles AI-driven lift from promotional lift. Without the AI variable, AI-driven demand can be absorbed into the promotional indicator (especially when promotions and AI campaigns run concurrently); with both variables in the spec, the model identifies their separate contributions.

Frequently Asked Questions

Control variable. Promotional intensity is a brand decision (price action), not a media exposure. Modeling it as a media channel with adstock and saturation produces wrong response curves; modeling it as a control captures the lift without misattribution.
A lagged promotional intensity variable with negative coefficient in the immediate post-promotion period. Alternative: an explicit pull-forward indicator for the week following major promotional events. The two approaches produce similar results; pick based on data availability and modeler preference.
Use the continuous promotional intensity variable plus event indicators for the largest events. The continuous variable handles the irregular smaller promotions; the event indicators handle the large discrete events. Together they cover the promotional landscape without requiring a fully cataloged calendar.
AI assistants increasingly surface promotional information ("best deals", "current sales", "is X on sale") during high-promotional windows. AI visibility for promotional prompts spikes during sale events. The interaction is real but the MMM handles it cleanly if both AI visibility (or promotional-prompt specific AI visibility) and promotional intensity are in the spec.

Track Your AI Visibility

See how your brand appears across ChatGPT, Claude, Perplexity, and other AI platforms. Start monitoring today.