Introduction
Is your attribution model properly handling discounts? There are very few brands, especially in the D2C space, that don’t utilize discounts in their strategy. But how do you measure how well those discounts work? Are your ads driving the sales, or is it the discount? Without proper modeling, you risk misattributing success to the wrong factors.
Why Include Discounts in Your MMM?
Marketing Mix Modeling (MMM) is designed to separate base sales (what would happen without any marketing) from incremental sales (what comes from marketing efforts). But how should discounts be classified? They are undoubtedly part of a marketing strategy—making them incremental—but they are not a traditional paid channel.
Understanding the true impact of discounts is critical: How much does a discount alone increase sales? And how much more effective is it when combined with an ad campaign? If discounts aren’t accounted for properly, you risk overestimating or underestimating the effect of other marketing tactics.
Failing to account for discounts in your model can lead to misattributing their impact. Imagine running a 10% off sale while simultaneously launching a Facebook ad campaign. If your MMM doesn’t factor in the discount, it might credit all the sales boost to Facebook ads when, in reality, a significant portion was driven by the discount itself.
In modeling terms, discounts act as a confounding variable, influencing both ad spend and sales. Incorporating discount data ensures your MMM accurately assigns credit, improving the precision of channel ROI estimates.
Discounts play a crucial role in your marketing mix.
Even seemingly small promotions can have outsized effects. Free shipping, for instance, reduces friction at checkout and can significantly lift conversion rates. One case study found that adding a free shipping offer increased conversion rate by 36% for a retailer of small items, and by nearly 63% for a retailer of larger items. Clearly, these promotional tactics can move the needle. MMM helps you measure their effect accurately, so you don’t overlook their value.
So how do we actually incorporate discounts and price changes into a marketing mix model? Let’s walk through three approaches, from simplest to most advanced, with examples for each.
1. Simple On/Off Contextual Variable (Free Shipping Example)
The most straightforward way to model a promotion in MMM is with an on/off indicator, often called a dummy variable. This is a binary variable that flags the periods when a promotion was active (1) versus inactive (0). It’s like adding a switch to your model that flips on during the promo.
Example – Free Shipping: Suppose your e-commerce business offers “Free Shipping” during the first two weeks of December. You can create a variable FreeShipping
that equals 1 for those two weeks and 0 for all other weeks. By including this in your regression model, you let MMM measure the bump in sales attributable to the free shipping offer when that switch is on. If the coefficient for FreeShipping
is significant and positive, it indicates a sales uplift whenever free shipping is active. Essentially, the model learns the incremental lift from offering free shipping, after accounting for other factors.
This simple approach is powerful for capturing contextual events. It’s commonly used to account for short-term promos, holidays, or one-off campaigns. In practice, analysts use dummy variables to represent promotions in MMM all the time.
Day | Free Shipping | Ad Spend | Sales |
1 | inactive | 1000 | 2000 |
2 | active | 1500 | 4000 |
3 | active | 1500 | 5000 |
The key is to use a separate dummy for each distinct promotion or event type you want to measure
For instance, if you also ran a “Buy One Get One Free” deal at a different time, that should be a different binary variable (so the model can tell which promotion drove what impact).
Why it’s useful: An on/off promo variable isolates the effect of a promotion without needing detailed pricing data. It’s very easy to implement. Even if you’re not a technical person, you can imagine plotting your sales over time and simply marking which weeks had free shipping – you’ll often see a bump. The dummy variable approach quantifies that bump. It answers questions like “Did our free shipping week drive a statistically significant sales increase, and by how much?”
Keep in mind that dummy variables capture any effect during that period. So if multiple things happened at once (e.g. free shipping + a TV ad), you’d ideally include dummy variables or controls for all those major events to avoid conflating their effects. When used thoughtfully, on/off indicators are a great starting point to measure promotions in MMM. They ensure that tactics like free shipping get the credit they deserve in the model.
2. Category-Specific Discount Variables
Sometimes you need more nuance than a simple on/off flag. Many businesses run continuous discounts or vary promotions by product category. In these cases, you can incorporate category-specific discount variables to capture how price reductions in different categories influence sales.
What does this mean? Instead of a binary yes/no promotion, we use a numeric variable that represents the average discount percentage (or price reduction) offered in a given category during each time period. If you have multiple key categories, you can include one variable per category. This approach lets the model estimate different effects for discounts in each category, recognizing that a sale on Electronics might drive sales differently than a sale on Apparel, for example.
Example – Category Discounts: Imagine your retail business sells both Electronics and Furniture. You often have separate promotions for each category. You could calculate metrics like: “In week 12, Electronics category had an average discount of 20% off, and Furniture had 0% off (no sale). In week 13, Electronics discount was 5%, Furniture was 10%,” and so on. Now feed these two time series (Electronics_Discount%, Furniture_Discount%) into the MMM as independent variables. The regression will determine how changes in each variable relate to changes in overall sales (or you could model category sales separately with their respective discount as drivers).
Day | Apparel Discounts | Electronics Discounts | Ad Spend | Sales |
1 | 10% | 0% | 1000 | 2000 |
2 | 10% | 10% | 1000 | 3000 |
3 | 0% | 20% | 1000 | 3500 |
This granular approach yields insights such as: “A 10% increase in average Electronics discount yields a X% increase in sales, whereas the same 10% discount in Furniture yields a smaller (or larger) increase.” In other words, it uncovers the price sensitivity for each category. Marketers can learn which product lines are more promotion-sensitive and plan discounts accordingly. Perhaps you discover that Electronics discounts drive significant volume (high elasticity), but Furniture sales are less responsive to discounts (maybe customers care more about seeing items in-person, etc.). These learnings are gold for strategy – you might allocate more promotional budget to categories where discounts really boost sales, and use other tactics for categories where they don’t.
Practical considerations: When using multiple discount variables, make sure they don’t all move in perfect lockstep, or it’s hard for the model to tell their effects apart. Typically, different categories will have different promotion calendars, which provides the necessary variation. It’s also important to align these variables with how you measure sales. If you’re modeling total sales, a big discount in one category will only move total sales in proportion to that category’s share. If one category dominates your revenue, its discount effect will dominate too. Alternatively, you can build separate MMM models per category (with that category’s sales as the dependent variable) to get a clearer picture for each – then compare results.
In summary, category-specific discount modeling brings a richer layer of detail. It acknowledges that not all discounts are equal – the impact can differ by product line. By incorporating this into MMM, you get a more actionable analysis. You’ll know, for instance, if your “10% off Electronics” promotion is a better investment than “10% off Furniture”, and you can optimize future promotions accordingly.
3. Full Price Response Curves: Capturing Price Elasticity and Non-Linear Effects
The two approaches above treat discount effects in a linear or additive way – a flat lift from a promo on vs. off, or a linear relationship per percentage off. In reality, price effects on sales are often non-linear. Small discounts might have little effect until a tipping point, or very deep discounts might yield diminishing returns. This is where modeling full price response curves comes in, using the concept of price elasticity and more advanced techniques to capture complex discount outcomes.
Price Elasticity 101: Price elasticity measures how sensitive demand is to price changes. Formally, it’s the percentage change in quantity sold for a percentage change in price
For example, if a product has an elasticity of -1.9, it means a 1% increase in price would lead to roughly a 1.9% decrease in units sold (all else equal)
Likewise, a temporary price cut of 1% would boost sales volume by about 1.9%. Products or categories with an elasticity greater than 1 (in absolute value) are considered elastic – demand jumps more than the price change. If elasticity is less than 1, it’s inelastic – price drops don’t boost sales enough to offset the revenue loss. Many essential or high-brand-equity items have inelastic demand, while discretionary items or competitive markets often show elastic demand.
In an MMM context, incorporating price elasticity means allowing the model to capture these curvature effects rather than assuming every 1% discount has the same impact on sales. How can we do this in practice? Here are a few approaches:
- Log-Log Models: One common method is to use a logarithmic transformation for sales and price. By regressing
log(Sales)
onlog(Price)
(and other variables), the coefficient onlog(Price)
directly estimates elasticity. This inherently models a non-linear response: a 10% price drop might yield roughly a constant % lift in sales (elasticity), regardless of base price level. It’s a way to make the relationship multiplicative rather than additive.
Such a model might reveal, for example, that a 10% off sale tends to produce a 15% sales increase, whereas a 20% off sale yields a 30% increase – consistent with the elasticity found. - Polynomial or Piecewise Regression: Another approach is to include non-linear terms of the discount or price variable, such as a squared term or define ranges. For instance, you could have one variable for “discount percentage” and another for “(discount percentage)^2”. A significant quadratic term would indicate diminishing returns or acceleration at higher discount levels. Alternatively, you might split the discount effect into segments (e.g., 0–10% vs. 10–30% vs. 30%+ discounts) and give each segment its own coefficient to capture different sensitivities. This can model situations like small discounts don’t matter much until you hit a threshold that really entices consumers.
- Advanced Response Curves (Hill/S-Curve models): In more sophisticated MMM implementations (often Bayesian or machine learning based), you can use functional forms that naturally saturate. A popular choice is the S-curve or logistic-shaped curve, which reflects a slow start, then rapid increase in response, then saturation at high levels of stimulus. In our case, the “stimulus” is the depth of a discount. An S-curve means maybe a 5% off coupon barely moves the needle, a 30% off creates a big spike in sales, but going from 30% to 50% off doesn’t double the sales again – it starts to plateau. These curves are frequently used to model diminishing returns in advertising, and can be applied to promotions as well.
Modern MMM tools allow fitting such non-linear curves for media and price inputs
Example – Price Response Curve: Let’s say you want to understand the effect of discount depth on sales for a particular product. Using historical data, you notice that when the product was 5% off, sales were only slightly above normal. At 15% off, sales jumped noticeably (say 20% higher). At 30% off, sales were about 50% higher, but at 50% off, sales were maybe 70% higher – not as much of an incremental jump as one might expect from the huge price cut. This suggests a saturation effect. By fitting a non-linear model (e.g. an S-curve) to this data in MMM, you could capture this pattern. The model might output a curve showing diminishing returns: the first 20% discount yields big gains, beyond that the incremental gains shrink. With this knowledge, you might decide that going beyond 30% off isn’t worth it for margin trade-off, since the extra volume doesn’t justify the revenue loss.
Interpreting results: Advanced price modeling in MMM can get technical, but the outcomes are highly actionable. You might derive an optimal price or discount level that maximizes revenue or profit – essentially finding the sweet spot of the price response curve. You could also simulate scenarios: “What if we increased our average discount from 10% to 15% next quarter – how much more sales might we expect, according to the model?” This goes beyond attribution and into forecasting and strategy, powered by the rich insights on price sensitivity.
It’s worth noting that to reliably estimate complex non-linear effects, you need sufficient data variation and volume. If you’ve only ever done one sale, a full elasticity curve is hard to pin down. But larger organizations with frequent promotions or multi-year data can leverage these techniques to refine their pricing and promo tactics. When executed well, modeling full price response curves gives you a true picture of how price moves markets, which is a potent competitive advantage.
Conclusion
Make sure to incorporate discounts into your models. Discounts play a key role in sales performance, but failing to account for them can distort your results. Choose the method that best fits your needs—whether it’s a simple on/off indicator, category-specific discount tracking, or advanced price response modeling.
Be mindful of overcomplicating your model. While adding variables can improve accuracy, too many can lead to overfitting. Experiment with different approaches to strike the right balance between complexity and precision.
Understanding the true impact of discounts will help you make better-informed decisions and optimize your marketing spend effectively.