MMM Modelling

Statistical modelling to find your
true optimal budget

Run OLS regression, Bayesian PyMC, Meridian or Robyn models directly inside Nuso. Upload your CSV, map your channels, get saturation curves and optimal allocation.

Get started free → View all features
app.nuso.co.uk — MMM · Experiment Bed
+ New Experiment
Compare (2 selected)
Overview
Marketing
MMM
AI Studio
Saved runs: 3 of 5
Framework
Label
Weeks
Fit
Date
Status
OLS
OLS · 52 weeks
52
R² 0.84
3 Mar
Complete
PyMC
Bayesian test · 52w
52
LOO 0.79
1 Mar
Complete
Meridian
Full year run
52
Running…
Optimal Allocation — OLS run
Google
£6,750
Meta
£4,950
TikTok
£3,300
Google Saturation Curve
Optimal £6.75k

Four model frameworks,
one platform

Upload a CSV of your weekly channel spend and revenue. Map each column to a media channel. Select your model — OLS for speed, PyMC for Bayesian inference, Meridian or Robyn for industry-standard outputs — and run in one click.

  • Saturation curves per channel (Hill function)
  • Adstock decay modelling (geometric & Weibull)
  • Optimal spend allocation at target ROAS
  • Model fit metrics: R², MAPE, posterior distributions
  • Channel contribution waterfall charts
Spend Allocation — OLS Run Optimal at 3.5× ROAS
Spend → Revenue ↑

Channel saturation curves — dots show current spend position

Google
48%
Meta
35%
TikTok
17%

Four frameworks

Choose the model that fits your confidence level

Fast

OLS Regression

Ordinary Least Squares — the fastest path to channel coefficients and saturation curves. Results in seconds. Perfect for exploratory analysis.

Bayesian

PyMC

Full Bayesian inference with MCMC sampling. Posterior distributions, uncertainty quantification, and credible intervals on every parameter.

Google

Meridian

Google's open-source Bayesian MMM framework. Industry-standard Hill + Adstock transformations, geo-level modelling, and budget scenario planning.

Meta

Robyn

Meta's automated MMM using multi-objective optimisation (Nevergrad). Ridge regression with hyperparameter tuning and Pareto-front model selection.

⌨️

Developer Console

Full Python environment under the hood. Inspect model coefficients, download fitted values, and pipe results to your own notebooks via REST API.

🔬

Experiment Bed

Run multiple model configurations side-by-side. Compare OLS vs PyMC vs Robyn on the same dataset and see which yields the most defensible ROAS estimates.

AI Insights

After each run, Gemini AI summarises your results in plain English — flagging which channels are over-invested, which are undersaturated, and where to reallocate next week.

Compare models
side by side

Don't guess which framework to trust. Run the same input data through OLS, PyMC, Meridian and Robyn simultaneously. Compare R², MAPE, and optimal allocations across all four.

  • Multi-run comparison table
  • ROAS estimates with confidence intervals
  • Allocation divergence analysis
  • Export comparison report to CSV

Experiment Bed — Run Comparison

Run #4 — Robyn
Nevergrad · 3000 iterations
4.2× ROAS
Best fit · R²=0.91
Run #3 — PyMC
MCMC · 1000 draws
3.9× ROAS
R²=0.88 · MAPE=8.2%
Run #2 — Meridian
Bayesian · Hill+Adstock
4.0× ROAS
R²=0.89
Run #1 — OLS
Baseline · 0.4s
3.5× ROAS
R²=0.82 · Quick baseline
Channel saturation

Know exactly where each
channel hits its ceiling

Saturation Analysis
Bayesian model · 52 weeks · R² 0.91
Optimal
Current
Google Ads
Optimal point £0 £15k
Current: £10.2kOptimal: £9.5k
Meta Ads
Optimal point £0 £15k
Current: £9.8kOptimal: £11.2k
TikTok Ads
Overspending! £0 £8k
Current: £4.5kOptimal: £3.2k
Optimal reallocation
Move £1.3k TikTok → Meta
Projected +0.3× ROAS improvement
Model confidence
91%
Bayesian posterior interval
Revenue uplift
+£4,200/mo
Estimated from optimal allocation
4
Model frameworks
Hill+
Adstock transformations built in
1-click
CSV upload to results
FAQs

Frequently asked questions

What is Marketing Mix Modelling (MMM) and why do Shopify brands need it?

Marketing Mix Modelling (MMM) is a statistical technique that uses historical sales and spend data to quantify the contribution of each marketing channel — and external factors like seasonality and promotions — to overall revenue. Unlike pixel-based attribution, which depends on tracking cookies and is increasingly broken by iOS privacy changes and ad blockers, MMM is privacy-safe because it works entirely with aggregated data. For Shopify brands spending more than £20k/month on paid media, MMM provides an independent, platform-agnostic view of true marketing effectiveness that can't be gamed by platform-reported numbers. It answers the fundamental question every brand marketer faces: "If I move £10,000 from Meta to Google, what actually happens to revenue?"

What is the difference between OLS, PyMC, Meridian and Robyn MMM frameworks?

OLS (Ordinary Least Squares) is the simplest MMM approach — a linear regression that estimates channel contributions from historical data. It is fast and interpretable but makes strong assumptions about linearity and can struggle with multicollinearity between channels. PyMC is a Python-based Bayesian inference framework that models uncertainty explicitly, producing probability distributions for each channel's contribution rather than point estimates; this gives brands a more honest picture of confidence in the model's outputs. Meridian is Google's open-source Bayesian MMM library, released in 2024, which is optimised for integration with Google's own media data and uses similar Bayesian principles to PyMC with additional features like geo-level modelling. Robyn is Meta's open-source MMM tool built in R, which adds automated hyperparameter optimisation using Nevergrad and is particularly popular in the DTC space for its budget allocation output. Nuso supports all four frameworks within the same interface, so you can run multiple models and compare results side by side.

How much data do I need to run an MMM model?

As a general rule, MMM requires at least 52 weeks (one full year) of weekly data to produce reliable channel contribution estimates, with 2–3 years of data being optimal. Shorter time periods make it difficult for the model to separate the effects of seasonality from genuine channel performance. You also need sufficient variation in your spend levels across that period — a brand that has spent exactly the same amount on Meta every week for a year will find the model struggles to isolate the effect of Meta spend on revenue. Nuso's MMM tool will flag if your dataset is too short or lacks sufficient spend variation before running the model, and suggests data quality improvements before you invest time in interpretation.

Can I run MMM without a data science team?

Yes. Nuso is specifically designed to make MMM accessible to marketing teams and founders without a data science background. The workflow is: upload a CSV of weekly revenue and channel spend data (or connect Shopify and ad platforms directly), map your columns to the correct channel types, choose your model framework (OLS for a quick read, PyMC or Meridian for Bayesian confidence intervals), and click Run. Nuso handles all the statistical fitting, adstock transformation, and saturation curve fitting behind the scenes, then presents the outputs — channel contribution percentages, saturation curves, and a budget optimiser — in plain English with charts that do not require a statistics degree to interpret.

What is adstock decay and why does it matter in MMM?

Adstock decay is the principle that advertising has a lagged and diminishing effect on consumer behaviour — a TV ad or a TikTok campaign seen today may influence a purchase made two or three weeks later, not just immediately. In MMM, adstock transformations model this carry-over effect by distributing the impact of each week's ad spend across future weeks according to a decay rate. Without adstock, an MMM model would attribute all of a channel's effect to the week the money was spent, which understates the long-term value of brand-building channels and overstates the impact of performance channels that drive immediate clicks. Different channels have different natural adstock decay rates — TV and YouTube typically decay slowly (over weeks), while paid search decays within days — and Nuso fits these decay parameters automatically during model training.

How does MMM compare to platform-reported ROAS?

Platform-reported ROAS is calculated by each ad platform independently using their own attribution window and conversion tracking, which means Google, Meta, and TikTok will all claim credit for the same customer if they appeared at different points in that customer's journey. This results in the sum of all platform-reported ROAS figures being far higher than the actual return on total ad spend — a well-known phenomenon sometimes called "attribution inflation". MMM, by contrast, measures the incremental contribution of each channel to total revenue using observed spend and revenue changes, without relying on any individual platform's tracking. For a brand spending £100,000/month, the difference between platform-reported ROAS and MMM-derived incrementality can easily reveal that one or two channels are consuming 30–40% of budget for minimal incremental lift.

What is the budget optimiser in Nuso's MMM tool?

Once an MMM model has been fitted and you have saturation curves for each channel, Nuso's budget optimiser uses those curves to recommend the allocation of a given total media budget that maximises predicted revenue. You input your total monthly spend budget — say £80,000 — and the optimiser runs a constrained mathematical optimisation to find the channel split that sits at the most efficient point on each channel's diminishing returns curve. For example, it might recommend reducing Meta spend from £50,000 to £35,000 (where Meta is showing strong saturation effects) and reallocating that £15,000 to Google or TikTok where marginal returns are still high. The output is a concrete, model-backed channel allocation you can present to stakeholders and implement with your media buyer.

Is Meridian (Google's MMM) better than PyMC?

Neither framework is universally better — they are both Bayesian MMM implementations with similar theoretical foundations, and the quality of outputs depends far more on data quality and correct model specification than on the choice of framework. Meridian has the advantage of deep integration with Google's media data and geo-level modelling capabilities, making it a strong choice if Google Ads is a significant part of your media mix and you have regional sales data. PyMC (specifically the PyMC-Marketing library) is more flexible, has a larger open-source community, and is better documented for custom model extensions. In practice, Nuso allows you to run both on the same dataset and compare the channel attribution outputs, which is often more informative than committing to a single framework — divergent results between models are a useful signal to investigate data quality issues.

Ready to see it in
your store?

Connect your Shopify store in under 5 minutes. Free plan available — no credit card required.