How should MMM distinguish dynamic pricing from genuine promotions?
The short answer
MMM should identify promotions from explicit offers and their eligibility rules, while keeping routine dynamic price changes separate. Validate promotion flags against campaign records, and agree what the reference price represents. A price difference can identify discounted sales; the model must still estimate whether and how much demand the promotion added.
This article is part of Asked by Marketers, a series answering real questions from marketing leaders.
Sellforte's team holds more than 1,450 meetings each year with marketing leaders in Ecommerce and Retail about Marketing Mix Modeling and incrementality testing. Each week, we anonymize at least one question from those conversations and answer it in depth, based on what marketers are actually struggling with, not what keyword tools suggest. About the series →
Why marketers ask this
A business changes prices throughout the year, but runs promotional campaigns only at selected times. Its MMM dashboard nevertheless shows promotions contributing to sales almost every day. Before using that result to plan the next offer, the team needs to know what the promotion input actually contains.
A rule based on price movements can combine several commercial decisions under one label. Marketing may control a campaign discount, while another team or an algorithm controls ordinary pricing and clearance. Mixing those activities makes it harder to tell which decision the measured return should inform.
What should count as a promotion in MMM?
Define a promotion by the offer the business made and the purchases eligible for it. An explicit discount, a coupon, or a temporary campaign price provides a clearer starting point than a rule that flags every departure from a historical average price.
For a business using dynamic pricing, agree on the distinction between routine price adjustments and additional promotional offers. Keep clearance markdowns identifiable too. They address a different commercial decision, even when all three activities lower the price a customer pays.
| Activity | What happened | What to identify in the data |
|---|---|---|
| Routine dynamic pricing | The ordinary price changed under the business's pricing rules. | The price history and the agreed treatment of ordinary pricing. |
| Marketing promotion | A defined offer reduced the price for eligible purchases. | The offer, its dates, eligibility, and discount. |
| Clearance markdown | The business reduced the price to clear stock. | A separate markdown classification and a defined reference price. |
These definitions should be agreed with the people who own pricing and promotions. A low transaction price alone does not reveal which action produced it.
What data helps distinguish an offer from routine pricing?
Use the offer information attached to the sale where it exists. An internal offer ID, promotion type, or campaign-price flag can connect an eligible transaction to the commercial action. This identifier may be different from an advertising campaign ID, and it does not have to be a code the customer typed at checkout.
Check whether the sales feed already contains enough information before requesting a separate promotions file. Where additional metadata is needed, connect the offer to its active dates, applicable products or customers, and discount mechanic. A campaign calendar helps validate the mapping, but a campaign running on a particular day does not establish that every purchase that day qualified.
The reference price also needs a business definition. A product's launch price, its current ordinary price, and its price before clearance can differ. Calculating every discount against the launch price can fold subsequent routine price changes into the promotional discount. Document which comparison each field represents.
Where should routine dynamic pricing go in the model?
Agree its treatment separately from the promotion input. Depending on the model and available data, ordinary pricing may have a separate price feature or be handled within the baseline specification. Removing it from the promotion label does not establish that its causal effect has been measured.
Marketing Mix Modeling estimates how different drivers contribute to sales. The promotion input describes an activity for the model to evaluate. Sales carrying an offer code are therefore different from the incremental sales attributed to that offer: some purchases may have happened anyway.
This distinction matters when reviewing a large promotion contribution. First check that the input represents the intended activity. Then examine the estimated effect.
What should we check when promotions appear overstated?
Compare the flagged transactions with known offers before changing the modeling assumptions. Start with periods when a documented promotion ran and periods when prices changed through routine pricing alone.
- Trace a sample of flagged sales back to the offer or pricing rule. Check why each transaction qualified.
- Look for genuine offers the rule missed, including campaign prices that are already embedded in the selling price.
- Review the reference-price calculation and keep markdowns distinguishable from marketing discounts. Check that an explicit discount and a derived price difference do not count the same reduction twice.
- Have the modeling team reassess the model after correcting the input, including any changes to media and baseline contributions.
If reliable offer data is unavailable, document that limitation and review whether the current proxy is usable. Check a price-window rule against how the business actually prices before relying on it to identify offers.
Removing a faulty proxy also requires care. Genuine promotions can coincide with advertising, and their sales effect still needs to be considered. Sellforte's research on promotions in MMM explains how omitting promotional activity can distort media return estimates.
How this looks in practice
Consider a hypothetical product launched at $100. Routine dynamic pricing later sets its ordinary price at $90. A marketing offer then gives eligible customers 10% off that $90 price, bringing the amount paid to $81. Assume the $90 price would apply to the same purchase without the offer.
Compared with the launch price, the customer paid 19% less. The additional marketing discount was $9, or 10% of the current ordinary price. Recording the entire $19 difference as a marketing discount would combine the routine price adjustment with the offer.
The input should preserve that distinction: the ordinary price moved to $90, and the eligible sale received a further $9 discount. The model then evaluates the offer's incremental effect. The 10% discount itself is not a 10% sales-lift estimate.
Related questions
Does this tell us how to set each product's price?
No. Distinguishing price changes in MMM improves the definition of the activity being measured. Setting individual prices is a separate operational decision with its own inputs and constraints. Sellforte's guide to promotions, markdowns, and marketing distinguishes strategic promotion analysis from item-level dynamic pricing.
How Sellforte helps
Sellforte combines MMM with promotion modeling to analyze incremental sales and margin by promotion type, discount depth, and product category. Agreeing the promotion definitions and checking the sales inputs are part of making those results useful for your business. Book a demo to discuss your pricing and promotion setup.
Authors

Lauri Potka is the Chief Operating Officer at Sellforte and has over 15 years of experience in Marketing Mix Modeling, marketing measurement, and media spend optimization. Before joining Sellforte, he worked as a management consultant at the Boston Consulting Group, advising some of the world's largest advertisers on data-driven marketing optimization. Follow Lauri on LinkedIn, where he is one of the leading voices in MMM and marketing measurement.
You May Also Like
These Related Stories
The Missing 24%: Why MMM Without Promotions Behaves Like Last-Click

How to choose a Marketing Mix Modeling solution in Retail: 69 Criteria
