Performance Marketing skill 05 of 13
Marketing Mix Modelling SKILL.md
The Marketing Mix Modelling skill makes Claude, Codex or another AI agent scope, build or review an MMM with Google Meridian, Meta Robyn or PyMC-Marketing. It prepares two to three years of weekly first-party data, models adstock, saturation, price, promotions and seasonality, calibrates with lift and geo tests, validates the model and turns contribution, marginal ROI and response curves into budget scenarios.
marketing-mix-modelling/SKILL.md, version 1.0.0, 1,585 words.
By Afeez Adebayo, Marketing, SEO & Growth Expert with 10+ years of experience.
Created 10 October 2026. Updated 10 October 2026. Free to use under CC BY 4.0.
Marketing mix modelling (MMM) estimates how each channel contributes to sales using aggregated data over time: weekly spend, impressions, prices, promotions, seasonality and outside factors. It needs no user-level tracking, so it survives consent rules, cookie limits and walled gardens. Open-source tools such as Google's Meridian and Meta's Robyn have made it practical for mid-sized advertisers, not just big brands with consultancies.
This skill scopes, builds or reviews an MMM, calibrates it with experiments, and turns its outputs (contribution, ROI, response curves) into budget decisions.
Operating principles
- Garbage in, garbage out. Two to three years of clean weekly data matter more than model choice.
- Calibrate with experiments. Lift and geo tests anchor the model to causal evidence.
- Show uncertainty. Every ROI estimate comes with a range; decisions should respect it.
- Model what you can change. Include controllable levers (spend by channel, price, promotions) and important outside factors.
- Use it to plan, not to grade. MMM is best at allocation and scenario planning, not daily optimisation.
When to use, and when not to
Use it when spending across several channels (typically including offline or upper-funnel media), when attribution is unreliable because of consent or walled gardens, for annual and quarterly planning, and to settle debates between platform claims.
Don't use it for very small budgets or one or two channels with little variation (test instead with incrementality-testing), or for daily bid decisions.
Inputs to ask for, in one message
- Two to three years of weekly data: sales or conversions (from your own systems), spend and impressions by channel.
- Prices, promotions, discounts and distribution changes.
- Seasonality markers, holidays, weather or macro factors relevant to the business.
- Competitor activity if known.
- Lift or geo test results for calibration.
- The planning questions the model must answer.
Raw SKILL.md file
This is the exact file agents read, including the credit header and licence notice. Save it as marketing-mix-modelling/SKILL.md.
--- name: marketing-mix-modelling description: "Scope, build or review a marketing mix model with Google Meridian, Meta Robyn or PyMC-Marketing: two to three years of weekly first-party data, adstock and saturation, price, promotions and seasonality, calibration with lift and geo tests, validation, contribution, ROI and marginal ROI with ranges, response curves and budget scenarios. Use whenever someone asks about marketing mix modelling, MMM, Meridian, Robyn, media mix, measuring TV or YouTube, budget allocation without cookies, or how channels really contribute to sales." license: CC-BY-4.0 metadata: author: Afeez Adebayo author_url: https://afeezadebayo.com author_linkedin: https://www.linkedin.com/in/afeez-adebayo/ author_x: https://x.com/za_icon source: https://afeezadebayo.com/skills-md/marketing/performance-marketing/marketing-mix-modelling/ category: marketing subcategory: performance-marketing version: "1.0.0" created: "2026-10-10" updated: "2026-10-10" --- # Marketing Mix Modelling Marketing mix modelling (MMM) estimates how each channel contributes to sales using aggregated data over time: weekly spend, impressions, prices, promotions, seasonality and outside factors. It needs no user-level tracking, so it survives consent rules, cookie limits and walled gardens. Open-source tools such as Google's Meridian and Meta's Robyn have made it practical for mid-sized advertisers, not just big brands with consultancies. This skill scopes, builds or reviews an MMM, calibrates it with experiments, and turns its outputs (contribution, ROI, response curves) into budget decisions. ## Operating principles 1. **Garbage in, garbage out.** Two to three years of clean weekly data matter more than model choice. 2. **Calibrate with experiments.** Lift and geo tests anchor the model to causal evidence. 3. **Show uncertainty.** Every ROI estimate comes with a range; decisions should respect it. 4. **Model what you can change.** Include controllable levers (spend by channel, price, promotions) and important outside factors. 5. **Use it to plan, not to grade.** MMM is best at allocation and scenario planning, not daily optimisation. ## When to use, and when not to Use it when spending across several channels (typically including offline or upper-funnel media), when attribution is unreliable because of consent or walled gardens, for annual and quarterly planning, and to settle debates between platform claims. Don't use it for very small budgets or one or two channels with little variation (test instead with `incrementality-testing`), or for daily bid decisions. ## Inputs to ask for, in one message 1. Two to three years of weekly data: sales or conversions (from your own systems), spend and impressions by channel. 2. Prices, promotions, discounts and distribution changes. 3. Seasonality markers, holidays, weather or macro factors relevant to the business. 4. Competitor activity if known. 5. Lift or geo test results for calibration. 6. The planning questions the model must answer. ## Workflow ### Step 1. Define the questions Allocation across channels, optimal total budget, the value of upper-funnel media, the effect of price and promotions. ### Step 2. Prepare data Weekly, consistent definitions, no gaps, spend and impressions by channel, outcome from your own systems. Document every transformation. ### Step 3. Choose the tool | Tool | Approach | Notes | |---|---|---| | Google Meridian | Bayesian, open source, supports geo-level data and calibration priors | Good for advertisers with regional data and experiment results | | Meta Robyn | Open source (R), ridge regression with automated hyperparameter search | Mature community, many examples | | PyMC-Marketing | Bayesian, Python | Flexible for analysts comfortable with PyMC | | Vendor or consultancy models | Varies | Ask for transparency on assumptions and validation | ### Step 4. Specify the model Adstock (carryover) and saturation (diminishing returns) for each channel; baseline and seasonality; price and promotion effects; external factors. ### Step 5. Calibrate Use lift and geo test results as priors or constraints for the channels they cover. ### Step 6. Validate Out-of-sample fit, sensible coefficients (no negative effects for media that clearly can't hurt sales), stability across runs, comparison with test results. ### Step 7. Interpret Contribution by channel, ROI and marginal ROI with ranges, response curves, carryover lengths. ### Step 8. Plan Run budget scenarios with the response curves; recommend allocation changes within the uncertainty; plan tests for the least certain channels. ### Step 9. Refresh Update quarterly or twice a year with new data and new tests. ## Reading MMM outputs | Output | What it tells you | Watch out for | |---|---|---| | Contribution | Share of sales attributed to each driver | Baseline often large; that's normal | | ROI | Average return per pound | Average, not marginal | | Marginal ROI | Return on the next pound | The number for allocation decisions | | Response curve | How sales change with spend | Extrapolation beyond observed spend is risky | | Adstock | How long effects last | Long carryover favours steady spend | ## Data checklist - At least 104 weeks of data, ideally 156. - Spend varies over time in each channel (models can't learn from flat lines). - Outcome from finance or commerce systems, not ad platforms. - Promotions and price changes recorded weekly. - Major events logged (stock-outs, site outages, PR spikes). ## Key concepts in plain words | Concept | Meaning | Example | |---|---|---| | Adstock (carryover) | Effects of advertising continue after the ad runs | A TV burst still lifts sales two weeks later | | Saturation | Each extra pound adds less than the one before | Doubling search spend doesn't double sales | | Baseline | Sales that would happen without paid media | Brand strength, organic, repeat customers | | Priors (Bayesian models) | Starting beliefs, updated by data | A geo test showing YouTube iROAS around a value | | Marginal ROI | Return on the next unit of spend | Used to decide where the next pound goes | ## Validation checks before trusting a model 1. Holdout fit: predict the last 8 to 12 weeks without training on them; compare with actuals. 2. Coefficient sense: media effects positive, price effects in the expected direction. 3. Stability: rerun with different seeds or slightly different data; results shouldn't swing wildly. 4. Test agreement: channels with lift tests should land near the tested values. 5. Business sense: contribution and ROI should be explainable to someone who knows the market. ## Turning outputs into a budget decision - Rank channels by marginal ROI at current spend, not average ROI. - Move budget from low marginal ROI to high marginal ROI channels in steps (for example 10 to 20%). - Stay within the observed spend range; flag scenarios that extrapolate. - Pair each major shift with a confirming geo test. - Re-run the model after the next quarter of data. ## Working with a vendor model Ask for: the data used and its sources, the model specification, how adstock and saturation were set, calibration with experiments, validation results, uncertainty ranges and the ability to run your own scenarios. Avoid models that only output a single ROI per channel with no ranges or methodology. ## Edge cases and judgement calls | Situation | What to do | |---|---| | Channels always move together | The model can't separate them; create variation through tests | | Very short history | Start with tests; build MMM when data accumulates | | Model says a channel has negative ROI | Check data and priors; negative media effects are usually artefacts | | Results disagree with tests | Trust well-run tests and recalibrate | | Leadership wants one number | Show the range and the decision it supports | ## Handoffs to related skills - Calibration experiments: `incrementality-testing` - Budget plans from the model: `media-planning-budgeting` - Reporting: `paid-media-reporting` - Data and tracking quality: `conversion-tracking-capi` ## Worked example A mid-sized consumer brand spent across search, Meta, YouTube, TV and retail media. Attribution credited search with most sales and gave TV almost nothing. Using Meridian with three years of weekly regional data and two geo test results as priors, the model found TV and YouTube had long carryover and drove brand search, while non-brand search was close to saturation. Scenarios suggested moving a modest share of search budget into YouTube. A follow-up geo test confirmed YouTube lift, and the next quarter delivered more sales at the same budget. ## Output format ``` # MMM plan or review: <business>, <date> ## Questions the model answers ## Data inventory and gaps ## Tool and specification (adstock, saturation, controls) ## Calibration with tests ## Validation results ## Outputs: contribution, ROI, marginal ROI with ranges, response curves ## Budget scenarios and recommendations ## Refresh and test plan ``` ## Common mistakes - Using ad platform conversions as the outcome. - Too little data or no spend variation. - Ignoring price and promotions. - Reporting ROI without ranges. - Using average ROI instead of marginal ROI for allocation. ## Questions to ask before you model - Which decisions should the model support? - How many weeks of clean data exist, and does spend vary? - Which channels have experiment results for calibration? ## Self-check before you answer - Is the data sufficient and from first-party sources? - Are adstock, saturation, price and seasonality modelled? - Is the model calibrated with tests and validated? - Are recommendations within the uncertainty ranges? ## Official documentation and tools - Google Meridian: https://developers.google.com/meridian - Meta Robyn: https://facebookexperimental.github.io/Robyn/ - PyMC-Marketing: https://www.pymc-marketing.io/ --- Created by Afeez Adebayo, Marketing, SEO & Growth Expert Website: https://afeezadebayo.com LinkedIn: https://www.linkedin.com/in/afeez-adebayo/ X: https://x.com/za_icon Source: https://afeezadebayo.com/skills-md/marketing/performance-marketing/marketing-mix-modelling/ Licence: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). You may copy, share and adapt this skill, including for commercial use, as long as you credit Afeez Adebayo and link to the source URL above. Keep this notice in any copy or adapted version.
Workflow
Step 1. Define the questions
Allocation across channels, optimal total budget, the value of upper-funnel media, the effect of price and promotions.
Step 2. Prepare data
Weekly, consistent definitions, no gaps, spend and impressions by channel, outcome from your own systems. Document every transformation.
Step 3. Choose the tool
| Tool | Approach | Notes |
|---|---|---|
| Google Meridian | Bayesian, open source, supports geo-level data and calibration priors | Good for advertisers with regional data and experiment results |
| Meta Robyn | Open source (R), ridge regression with automated hyperparameter search | Mature community, many examples |
| PyMC-Marketing | Bayesian, Python | Flexible for analysts comfortable with PyMC |
| Vendor or consultancy models | Varies | Ask for transparency on assumptions and validation |
Step 4. Specify the model
Adstock (carryover) and saturation (diminishing returns) for each channel; baseline and seasonality; price and promotion effects; external factors.
Step 5. Calibrate
Use lift and geo test results as priors or constraints for the channels they cover.
Step 6. Validate
Out-of-sample fit, sensible coefficients (no negative effects for media that clearly can't hurt sales), stability across runs, comparison with test results.
Step 7. Interpret
Contribution by channel, ROI and marginal ROI with ranges, response curves, carryover lengths.
Step 8. Plan
Run budget scenarios with the response curves; recommend allocation changes within the uncertainty; plan tests for the least certain channels.
Step 9. Refresh
Update quarterly or twice a year with new data and new tests.
Reading MMM outputs
| Output | What it tells you | Watch out for |
|---|---|---|
| Contribution | Share of sales attributed to each driver | Baseline often large; that's normal |
| ROI | Average return per pound | Average, not marginal |
| Marginal ROI | Return on the next pound | The number for allocation decisions |
| Response curve | How sales change with spend | Extrapolation beyond observed spend is risky |
| Adstock | How long effects last | Long carryover favours steady spend |
Data checklist
- At least 104 weeks of data, ideally 156.
- Spend varies over time in each channel (models can't learn from flat lines).
- Outcome from finance or commerce systems, not ad platforms.
- Promotions and price changes recorded weekly.
- Major events logged (stock-outs, site outages, PR spikes).
Key concepts in plain words
| Concept | Meaning | Example |
|---|---|---|
| Adstock (carryover) | Effects of advertising continue after the ad runs | A TV burst still lifts sales two weeks later |
| Saturation | Each extra pound adds less than the one before | Doubling search spend doesn't double sales |
| Baseline | Sales that would happen without paid media | Brand strength, organic, repeat customers |
| Priors (Bayesian models) | Starting beliefs, updated by data | A geo test showing YouTube iROAS around a value |
| Marginal ROI | Return on the next unit of spend | Used to decide where the next pound goes |
Validation checks before trusting a model
- Holdout fit: predict the last 8 to 12 weeks without training on them; compare with actuals.
- Coefficient sense: media effects positive, price effects in the expected direction.
- Stability: rerun with different seeds or slightly different data; results shouldn't swing wildly.
- Test agreement: channels with lift tests should land near the tested values.
- Business sense: contribution and ROI should be explainable to someone who knows the market.
Turning outputs into a budget decision
- Rank channels by marginal ROI at current spend, not average ROI.
- Move budget from low marginal ROI to high marginal ROI channels in steps (for example 10 to 20%).
- Stay within the observed spend range; flag scenarios that extrapolate.
- Pair each major shift with a confirming geo test.
- Re-run the model after the next quarter of data.
Working with a vendor model
Ask for: the data used and its sources, the model specification, how adstock and saturation were set, calibration with experiments, validation results, uncertainty ranges and the ability to run your own scenarios. Avoid models that only output a single ROI per channel with no ranges or methodology.
Edge cases and judgement calls
| Situation | What to do |
|---|---|
| Channels always move together | The model can't separate them; create variation through tests |
| Very short history | Start with tests; build MMM when data accumulates |
| Model says a channel has negative ROI | Check data and priors; negative media effects are usually artefacts |
| Results disagree with tests | Trust well-run tests and recalibrate |
| Leadership wants one number | Show the range and the decision it supports |
Handoffs to related skills
- Calibration experiments:
incrementality-testing - Budget plans from the model:
media-planning-budgeting - Reporting:
paid-media-reporting - Data and tracking quality:
conversion-tracking-capi
Worked example
A mid-sized consumer brand spent across search, Meta, YouTube, TV and retail media. Attribution credited search with most sales and gave TV almost nothing. Using Meridian with three years of weekly regional data and two geo test results as priors, the model found TV and YouTube had long carryover and drove brand search, while non-brand search was close to saturation. Scenarios suggested moving a modest share of search budget into YouTube. A follow-up geo test confirmed YouTube lift, and the next quarter delivered more sales at the same budget.
Output format
# MMM plan or review: <business>, <date>
## Questions the model answers
## Data inventory and gaps
## Tool and specification (adstock, saturation, controls)
## Calibration with tests
## Validation results
## Outputs: contribution, ROI, marginal ROI with ranges, response curves
## Budget scenarios and recommendations
## Refresh and test planCommon mistakes
- Using ad platform conversions as the outcome.
- Too little data or no spend variation.
- Ignoring price and promotions.
- Reporting ROI without ranges.
- Using average ROI instead of marginal ROI for allocation.
Questions to ask before you model
- Which decisions should the model support?
- How many weeks of clean data exist, and does spend vary?
- Which channels have experiment results for calibration?
Self-check before you answer
- Is the data sufficient and from first-party sources?
- Are adstock, saturation, price and seasonality modelled?
- Is the model calibrated with tests and validated?
- Are recommendations within the uncertainty ranges?
Official documentation and tools
- Google Meridian: https://developers.google.com/meridian
- Meta Robyn: https://facebookexperimental.github.io/Robyn/
- PyMC-Marketing: https://www.pymc-marketing.io/
On this page
- When to use this skill, and when not to
- Example prompts
- Example output
- What the agent needs from you
- How this skill hands off to related skills
- How to run Marketing Mix Modelling step by step
- Situations this skill handles
- What makes this skill different
- Practical tips from real projects
- Frequently asked questions
- Changelog
When to use this skill, and when not to
Use it when spending across several channels, especially offline or upper-funnel media, when attribution is unreliable because of consent rules or walled gardens, for annual and quarterly planning and to settle debates between platform claims.
MMM estimates each channel’s contribution from aggregated weekly data, so it needs no user-level tracking. Open-source tools have made it practical for mid-sized advertisers, but the data matters more than the tool, and every estimate needs a range.
Don’t use it for very small budgets or one or two channels with little variation (use Incrementality Testing) or for daily bid decisions.
Example prompts
- “Scope a Meridian model with three years of weekly data.”
- “Review our agency’s MMM. Can we trust it?”
- “What data do we need before building an MMM?”
- “Use our MMM response curves to plan next year’s budget.”
- “Calibrate our model with these two geo test results.”
Example output
The skill returns a fixed structure. A shortened example for an imaginary site:
# MMM review: example consumer brand, 10 October 2026 ## Data 156 weeks, regional, spend and impressions by channel, price and promotions logged ## Findings (with ranges) | Channel | Marginal ROI | Carryover | | Non-brand search | Low (near saturation) | Short | | YouTube | Medium-high | Long | | TV | Medium | Long; drives brand search | ## Scenario Move a modest share of search to YouTube; confirm with geo test
Recommendations stay within the model’s uncertainty, and the least certain channels get a confirming test before major shifts.
What the agent needs from you
The skill asks for two to three years of weekly sales from your own systems, spend and impressions by channel, prices, promotions and distribution changes, seasonality and external factors, competitor activity if known, lift or geo test results and the planning questions the model must answer.
How this skill hands off to related skills
MMM sits at the centre of measurement. Calibration comes from Incrementality Testing, budget plans go to Media Planning, outputs go into Paid Media Reporting and data quality depends on Conversion Tracking.
How to run Marketing Mix Modelling step by step
- Install the skill as
marketing-mix-modelling/SKILL.md. - Write the planning questions the model must answer.
- Assemble weekly data: sales, spend, impressions, prices, promotions and events.
- Choose the tool and specify adstock, saturation and controls.
- Calibrate with test results and run the validation checks.
- Run scenarios, recommend shifts within uncertainty and plan confirming tests.
Situations this skill handles
MMM projects run into the same issues. The skill handles these situations:
| Situation | What the skill does |
|---|---|
| Channels always move together | Plans tests to create variation the model can learn from |
| Short history | Starts with tests and builds MMM as data accumulates |
| Negative ROI for a channel | Checks data and priors; usually an artefact |
| Results disagree with tests | Trusts well-run tests and recalibrates |
| Vendor model with no ranges | Asks for methodology, validation and scenarios |
| Leadership wants one number | Shows the range and the decision it supports |
What makes this skill different
Many MMMs are black boxes that output one ROI per channel. This skill makes the model transparent: documented data, explicit adstock and saturation, calibration with experiments, validation checks and every estimate shown with its range.
It then uses marginal ROI and response curves, not averages, to plan budgets, and pairs major shifts with confirming tests.
Practical tips from real projects
- First-party outcomes only; never ad platform conversions.
- Spend must vary for the model to learn.
- Use marginal ROI for allocation.
- Stay within observed spend when running scenarios.
A worked example: a consumer brand spent across search, Meta, YouTube, TV and retail media, and attribution gave TV almost no credit. Using Meridian with three years of weekly regional data and two geo test results as priors, the model found TV and YouTube had long carryover and drove brand search, while non-brand search was close to saturation. Scenarios suggested moving a modest share of search budget into YouTube; a follow-up geo test confirmed the lift, and the next quarter delivered more sales on the same budget.
Key concepts in plain words: adstock is the way advertising effects carry on after an ad runs; saturation is each extra pound adding less than the last; the baseline is sales that would happen without paid media; priors are starting beliefs in Bayesian models, such as a geo test result; and marginal ROI is the return on the next unit of spend.
Validation protects decisions: holdout fit on the last 8 to 12 weeks, coefficients that make sense, stability across runs, agreement with tests and outputs someone who knows the market can explain. When working with a vendor, ask for data sources, specification, calibration, validation, uncertainty ranges and the ability to run your own scenarios.
Data preparation takes most of the effort and decides most of the quality. The checklist is short but strict: at least 104 weeks of data and ideally 156; spend that varies over time in every channel; outcomes from finance or commerce systems rather than ad platforms; promotions and price changes recorded weekly; and major events such as stock-outs, site outages or PR spikes logged so the model doesn’t mistake them for media effects. Teams that skip this step get models that fit the past well and guide the future badly.
Tools differ in approach. Google Meridian is Bayesian, open source and supports geo-level data and calibration priors. Meta Robyn is an open-source R package using ridge regression with automated hyperparameter search and a large community of examples. PyMC-Marketing offers Bayesian flexibility in Python for analysts comfortable with PyMC. Vendor and consultancy models vary widely, so transparency about assumptions and validation matters more than the brand name.
Frequently asked questions
What is marketing mix modelling?
A statistical model that estimates how each channel, plus price, promotions and seasonality, contributes to sales using weekly aggregated data, without user-level tracking.
How much data does an MMM need?
Ideally 104 to 156 weeks of clean weekly data, with spend that varies over time in each channel.
Meridian or Robyn?
Meridian is Bayesian and supports geo-level data and calibration priors; Robyn is a mature R package with automated hyperparameter search. Both are free; the choice depends on your team’s skills and data.
Why calibrate with experiments?
Lift and geo tests anchor the model to causal evidence, which makes its estimates more reliable for channels that are hard to separate.
What is marginal ROI?
The return on the next pound of spend, which is what matters for allocation. Average ROI can make saturated channels look better than they are.
How often should the model be refreshed?
Quarterly or twice a year, with new data and new test results.
Changelog
- 1.0.0, 10 October 2026: first release.
Use, adapt and share this skill under CC BY 4.0: credit Afeez Adebayo and link to this page.
All Performance Marketing skills
- Paid Media Audit
- Media Planning and Budget Allocation
- Conversion Tracking, Consent Mode and Conversions API
- Incrementality Testing: Lift and Geo Experiments
- Google Search Ads and AI Max
- Performance Max and Shopping
- Meta Ads (Facebook and Instagram)
- TikTok, LinkedIn and Other Paid Social
- Ad Creative Strategy and Testing
- Landing Pages and Conversion Rate Optimisation for Paid Traffic
- Audiences and First-Party Data for Paid Media
- Paid Media Reporting and Attribution
