FreeStatisticalTools.com
Marketing analytics

Marketing Mix Modeling (MMM)

Estimate how much each marketing channel drives sales. The model adds carry-over (adstock) and diminishing returns to each channel’s spend, controls for price, trend and seasonality, then decomposes sales into base and channel contributions with their return on investment.

Free · No sign-upReplaces Robyn · Meridian · LightweightMMMWorks with your data
Updated · By Bibin Xavier

Data 104 × 6

Paste from Excel, or drop a CSV, TSV or Excel file here.
Example data 104 rows, 6 variables. Data stays in this browser tab.
Weektext · 104 levelsSalesnumericTV_SpendnumericSearch_SpendnumericSocial_SpendnumericAvg_Pricenumeric
2023-01-0251786471714093624.95
2023-01-0948114388112797784.99
2023-01-16513743401154524385.07
2023-01-23510280174214295.16
2023-01-3058205254615258804.54
2023-02-06500200154110785.3
2023-02-13575450148312344.53
2023-02-20536480146913694.91

Variables and options

Media spend channels 3 selected · min 1
Control variables (price, promotions …) 1 selected
Results update automatically when you change an option.

Results

104 rows · example data
R².845adj. .830
MAPE3.5%
Media share of sales24.3%
Total media ROI3.30sales per unit spent
Durbin-Watson2.21
Table 1

Channel results

ChannelTotal spendAdstock decayHalf-life (periods)Contribution% of sales% of media effectROIMarginal ROI
TV Spend150,2050.701.9342,3485.8%23.7%2.281.56
Search Spend177,9040.000879,20814.8%60.7%4.943.55
Social Spend110,9040.350.7225,7503.8%15.6%2.041.45

Note. Contribution = estimated sales from the channel over the whole period. ROI = contribution ÷ spend (sales per unit of spend, before costs). Marginal ROI = extra sales from 1% more spend per unit of that extra spend; with diminishing returns it is below the average ROI. Adstock: at = xt + λ at−1, with λ chosen for each channel by least squares on a grid.

Table 2

Regression coefficients

TermCoefficientSE (Newey-West)tp
Intercept90586.79723812.814523.76< .001
Trend15.78009.85991.60.113
sin(1)655.0333335.68131.95.054
cos(1)-4602.4345264.1957-17.42< .001
sin(2)393.1439263.82421.49.140
cos(2)-309.9253276.6647-1.12.265
Avg Price-9842.4469695.2810-14.16< .001
TV Spend (transformed)1.09630.12758.60< .001
Search Spend (transformed)7.16292.43182.95.004
Social Spend (transformed)1.95050.95072.05.043

Note. Standard errors are robust to autocorrelation and heteroskedasticity. Sine and cosine terms model yearly seasonality.

Actual and fitted sales

Sales decomposition

Response curves (total contribution vs total spend)

Table 3

Budget reallocation (same total budget)

ChannelCurrent spendSuggested spendChangeContribution nowContribution after
TV Spend150,205108,499-28%342,348271,827
Search Spend177,904265,707+49%879,2081,158,437
Social Spend110,90464,808-42%225,750150,326

Note. Moves budget from the channel with the lowest to the highest marginal ROI, keeping each channel within ±50% of its current spend to avoid extrapolating. Expected extra sales: 133,283 (9.2% of the current media contribution). Treat this as a hypothesis to test, not a guarantee.

Interpretation

The model explains 84.5% of the variation in Sales (MAPE 3.5%). Media drive about 24.3% of sales; the rest is base demand from trend, seasonality and controls. Search Spend has the highest return (4.94 per unit spent) and Social Spend the lowest (2.04). Marginal ROI shows where the next unit of budget works hardest. This is a single-equation least-squares MMM: validate it with holdout periods or experiments before moving large budgets.

How to cite this tool

Using these results in a thesis, journal article, report or class assignment? Please cite this free tool so others can find it. It keeps the site free.

APA 7

Xavier, B. (2026). Marketing Mix Modeling (MMM) [Web application]. FreeStatisticalTools.com. https://freestatisticaltools.com/marketing-mix-modeling/

BibTeX

@software{xavier_marketingmixmodel_2026,
  author = {Xavier, Bibin},
  title = {Marketing Mix Modeling (MMM)},
  publisher = {FreeStatisticalTools.com},
  year = {2026},
  url = {https://freestatisticaltools.com/marketing-mix-modeling/},
  note = {Web application}
}
Download citation:

Suggested sentence for your methods section: “The analysis was carried out with the free Marketing Mix Modeling (MMM) tool on FreeStatisticalTools.com (Xavier, 2026).”

What is marketing mix modeling?

Marketing mix modeling estimates how much each marketing channel drives sales from aggregate data over time. This tool applies adstock carry-over and diminishing returns to each channel’s spend, controls for trend, seasonality, price and other factors, and decomposes sales into base and channel contributions with ROI, marginal ROI, response curves and a budget reallocation.

When to use marketing mix modeling

Use a marketing mix model to estimate the sales contribution and ROI of each paid channel from aggregate weekly or monthly data, without user-level tracking, and to see where extra budget would work best.

Assumptions

  • Spend varies independently enough across channels and over time for the effects to be separated; channels that always move together cannot be distinguished.
  • Carry-over follows a geometric adstock and returns diminish logarithmically; the model is linear in these transformed spends.
  • Important drivers of sales (price, promotions, distribution, seasonality, competitors) are included or controlled; otherwise media effects are biased.

How to set up your data

One row per period (week or month) in time order, with the sales or KPI, one spend column per channel and optional controls such as price, promotions or holidays. At least two years of weekly data is recommended.

What marketing mix modeling is

Marketing mix modeling (MMM), also called media mix modeling, estimates how much each marketing channel contributes to sales, using aggregate data over time: weekly or monthly sales, spend on each channel, and other factors such as price, promotions and seasonality. Because it needs no user-level tracking or cookies, MMM has come back into fashion as privacy rules and browser changes weaken digital attribution. Open-source frameworks such as Meta’s Robyn, Google’s Meridian and LightweightMMM have made it popular well beyond large consumer-goods companies.

The core of every MMM is a regression of sales on transformed media spend. Two transformations capture how advertising really works:

  • Adstock (carry-over): advertising keeps working after it is shown. A TV burst this week still drives some sales next week and the week after. Geometric adstock models this as at = xt + λ at−1, where λ is the decay rate. With λ = 0.6, 60% of this week’s effect carries over to next week; the half-life is ln(0.5) / ln(λ) periods.
  • Saturation (diminishing returns): the tenth thousand spent in a week works less hard than the first. This tool uses a logarithmic response, m·ln(1 + a/m) with m the average adstocked spend, which is close to linear at low spend and flattens as spend grows.

How this tool fits the model

  1. Base terms: an intercept, an optional linear trend, optional yearly seasonality (two pairs of sine and cosine terms for weekly, monthly or quarterly data) and any control variables you select, such as price, promotions, holidays or distribution.
  2. Adstock decay: either a fixed value for all channels, or estimated for each channel by searching a grid of decay rates (0 to 0.95) and keeping the combination with the smallest sum of squared errors, refined in coordinate-descent passes.
  3. Regression: ordinary least squares on the transformed variables, with Newey-West standard errors that are robust to the autocorrelation typical of time-series data.
  4. Sign constraint: negative media effects are almost always the result of confounding (for example spend that rises when sales fall), so by default channels with a negative estimate are dropped and the model is refitted.
  5. Decomposition: each channel’s contribution in each period is its coefficient times its transformed spend; base sales are the rest of the fitted value.

The key outputs

  • Contribution and share: total sales attributed to each channel over the period and its share of total sales and of the media effect.
  • ROI: contribution ÷ spend, the average return per unit spent. An ROI of 2.3 means each unit of spend generated 2.3 units of sales (before costs and margins).
  • Marginal ROI: the extra sales from 1% more spend divided by that extra spend. With diminishing returns, marginal ROI is lower than average ROI, and it is the right number for deciding where the next unit of budget should go.
  • Response curves: total contribution of each channel as spend is scaled from 0% to 200% of the current level, showing where saturation sets in.
  • Budget reallocation: a simple optimiser that moves budget from the channel with the lowest marginal ROI to the one with the highest, keeping the total budget fixed and each channel within ±50% of its current spend to avoid extrapolating far beyond the data.

Worked example with the built-in data

The example covers 104 weeks of sales with spend on TV (in flights), search and social, plus average price and yearly seasonality. The model explains 85% of the variation in weekly sales (MAPE 3.5%, Durbin-Watson 2.2). Media drive about 24% of sales. Search has the highest return (ROI 4.9, marginal ROI 3.6), TV and social have ROIs of about 2.3 and 2.0. TV has the longest carry-over (decay 0.70, half-life of about two weeks), as expected for a brand-building medium. The optimiser suggests shifting budget from TV and social towards search, raising media-driven sales by about 9% with the same total budget; this is a hypothesis to test with a geo experiment before acting on it.

Data requirements

  • One row per week (preferred) or month, in time order, without gaps.
  • At least two years of weekly data (100+ observations) is recommended so that seasonality and carry-over can be separated from media effects; fewer periods allow only a few channels.
  • Spend should vary: channels that are always on at the same level, or always move together, cannot be separated statistically. Flighting and natural variation help.
  • Include the big non-media drivers: price, promotions, distribution, competitor activity, holidays, macro shocks such as lockdowns. Omitting them biases media effects.
  • Use spend for all channels in the same currency; impressions or GRPs can be used instead, but ROI is then per impression.

Validating an MMM

A good in-sample fit is necessary but not sufficient. Check that coefficients have plausible signs and magnitudes, that decay rates make sense (TV usually decays more slowly than search), and that residuals show no strong pattern. Refit the model on the first 80% of the data and compare predictions with the last 20%. Most importantly, calibrate with experiments: geo-holdout or lift tests for at least the largest channels are the best check that the model’s causal estimates are right.

Limitations of this lite MMM

This is a transparent, single-equation least-squares model. It does not include Bayesian priors, hierarchical structures across regions, interaction effects between channels, or long-term brand effects, and its uncertainty estimates do not reflect the search over decay rates. It is ideal for learning MMM, for quick first models, for academic projects and for checking the plausibility of vendor results; for high-stakes budget decisions, use it as a starting point together with experiments and fuller frameworks.

Reporting

Report the data period and frequency, the transformations (adstock type and decay, saturation), the controls, model fit (R², MAPE), and for each channel its decay, contribution, share and ROI, with a note that estimates come from observational data. Example: “A marketing mix model of 104 weeks of sales (R² = .85, MAPE = 3.5%) with geometric adstock and logarithmic saturation attributed 24.3% of sales to media. Search had the highest return on investment (4.94), followed by TV (2.28) and social (2.04).”

Glossary of MMM terms

  • Base sales: sales that would occur without media, driven by trend, seasonality, price and distribution.
  • Incremental sales: sales caused by a channel, its contribution in the decomposition.
  • Adstock decay (λ): the share of a period’s advertising effect that carries over to the next period.
  • Half-life: the number of periods for the effect of a burst to fall to half, ln(0.5)/ln(λ).
  • Saturation: the flattening of the response curve as spend increases.
  • Response curve: total contribution of a channel as a function of its spend.
  • mROI: marginal return on investment, the return on the next unit of spend.
  • Calibration: adjusting or validating model estimates with experimental lift measurements.

Key references: Jin, Wang, Sun, Chan and Koehler (2017), “Bayesian methods for media mix modeling with carryover and shape effects”, Google; Broadbent (1979) on adstock; Hanssens, Parsons and Schultz (2001), Market Response Models.

How to use this tool

  1. Enter your data. Paste columns from Excel, Google Sheets or SPSS with variable names in the first row, or upload a CSV or Excel file. The example data shows the expected layout.
  2. Choose the variables. Select the sales or kpi, media spend channels, control variables (price, promotions …), period (optional and for labels).
  3. Set the options. Fill in adstock decay, diminishing returns, seasonality and include a linear trend.
  4. Read the results. Results update automatically. Read the plain-English interpretation, then use Copy table to paste APA-style tables into Word and Copy for the results sentence.

How to report marketing mix modeling in APA style

Report the model specification (adstock, saturation, controls), fit (R², MAPE), and for each channel the decay, contribution, share and ROI, with the caveat that estimates are observational.

Frequently asked questions

What is adstock?

The carry-over effect of advertising: a_t = x_t + λa_{t−1}. A decay of 0.6 means 60% of this week’s effect carries into next week.

What is saturation in MMM?

Diminishing returns: each extra unit of spend in a period produces less additional sales. This tool uses a logarithmic response.

What is the difference between ROI and marginal ROI?

ROI is average return per unit spent. Marginal ROI is the return on the next unit of spend, which is lower with diminishing returns and guides budget shifts.

How much data do I need?

Ideally two or more years of weekly data with variation in spend across channels and over time.

Why are negative channel effects dropped?

Negative media effects usually reflect confounding, such as spend rising when sales fall, rather than real harm.

How do I validate an MMM?

Check plausibility, holdout accuracy and, ideally, calibrate with geo experiments or lift tests.

Related tools

See also

Learn this method step by step in the free course Customer and Marketing Analytics, with exercises and a certificate.

Browse all categories