MMM Refresh Cadence

When to Refresh an MMM and What Triggers an Off-Cycle Rebuild

A refresh appends new weeks to the same marketing mix model. A rebuild reopens the specification. The events that justify rebuilding early, plus a drift check.

On this page

An off-cycle rebuild of a marketing mix model (MMM) is triggered by an event that changes what the model has to explain: a channel it has no variable for, a pricing or distribution change, a tracking break in an input series, or a spend pattern outside the range it was fitted on. Everything else belongs to the routine refresh, which appends the newest weeks to the same specification on a calendar. We read the refresh documentation for Google's Meridian and Meta's Robyn on October 7, 2026 to see where each tool draws that line, then added a drift check to run after every refresh.

How often should you refresh a marketing mix model?

How often you should refresh a marketing mix model depends on how often the budget gets decided, and both vendors leave the interval to you. The refresh guide from Google says "Model refreshes can be done as frequently as you would like" and suggests "updating the model quarterly, annually, or at a frequency that matches your marketing budget decision making process." The features page from Meta observes that "Conventionally, the model refresh cycle of MMM is bi-annual or even longer" and presents Robyn's refresh feature as one that "enables model refresh and reporting as frequently as the data allows." It also cautions: "Note that this feature is not yet tested thoroughly and might provide instable refresh results."

The usage examples in the refresh source file from Meta show a 13-week cadence and a 4-week cadence, roughly quarterly and monthly. Tie whichever you choose to a real budget decision, because a refresh that moves no money only adds reporting work.

What a refresh changes and what it holds fixed

In Meridian a refresh is a refit. Google recommends "adding the new data to the older data and running Meridian", with a choice about whether to drop the oldest weeks "to stay in the 2-3 year data window that's common in an MMM." Fitting the new quarter by itself is "generally not recommended", since modeling new data apart from old data "won't properly consider lagged effects."

Robyn narrows the search instead. Per Meta's features page, robyn_refresh() starts from the selected model, "updates its hyperparameter with a narrower range that's proportional to the new data / total data ratio", and scores fit on the new weeks alone: "the NRMSE only accounts for the new period while refreshing".

A rebuild reopens what a refresh largely carries forward: the variable list, the window length, and the priors or hyperparameter ranges. Last quarter's ROI figures stop being directly comparable with the new ones, which is why a rebuild should have a named reason.

What Google Meridian and Robyn say about rebuilding after structural changes

On refresh frequency versus a rebuild after structural changes, Google Meridian and Robyn differ in how far their MMM documentation goes. Robyn is explicit. The documentation block in that same Robyn source file calls the function suitable for updating within "reasonable periods" and names two situations where a rebuild is considered the better choice:

  • "Most data is new: If initial model was trained with 100 weeks worth of data but we add +50 weeks of new data."
  • "New variables are added: If initial model had less variables than the ones we want to start using on new refresh model."

The code enforces the extreme case. When the number of refresh steps reaches the length of the modeling window, it stops with the message "Refresh input data is completely new. Please rebuild model using robyn_run()."

Meridian's refresh page never uses the word rebuild, and we found no use of "off-cycle" in either tool's refresh documentation. Google supplies the reason structural change matters: "Meridian doesn't model media effectiveness as time-varying." A longer window therefore "reduces variance because you have more data, but it can increase bias if media effectiveness and strategies have changed drastically over time." When the business behaves differently on either side of an event, one estimate ends up averaging two regimes.

Which events justify rebuilding early?

Marketing mix model rebuild triggers that justify going off-cycle come down to five events, each tied to the documentation above. The actions in the last column are our practice; neither vendor publishes this table.

TriggerWhy a refresh cannot absorb itOff-cycle action
A new channel, or one channel split in twoIt is a new variable, the second of Robyn's two rebuild situationsRebuild, and plan a lift test for the new channel
A pricing or distribution changeSales shift for a reason the model has no variable forAdd the variable and revisit the window
A tracking breakAn input series stops measuring the same thingRepair or restate the series first, and rebuild only if the definition changed for good
A spend pattern the model never sawThe response curve is being read outside the range it was fitted onRebuild or re-tune, and test the channel that moved
Most of the window is newRobyn's first rebuild situation: 50 new weeks on a 100-week modelRebuild

Price is the clearest case. The variable guide from Google defines non-media treatment variables as marketing activities "such as running a promotion, the price of a product, and a change in a product's packaging or design." A model specified before a price change often has no such variable, and appending weeks will not create one. We handle a distribution change, such as a new retailer or marketplace, the same way.

For spend, the practical question is how far counts as too far. In a fixed-budget scenario, the optimization guide from Google sets default bounds of 70% and 130% of each channel's spend. We borrow that band as a tripwire: a channel whose new-quarter spend lands outside it gets reviewed before anyone trusts the refreshed curve.

A tracking break can pass for a marketing effect. Our primer on marketing attribution covers attribution models and their limits, and the Attribution Doctor is a further resource on that side.

Which changes can a scheduled refresh absorb?

A marketing mix modeling refresh cadence is built to absorb seasonality and ordinary spend changes, and a structural break is the case it cannot handle. Seasonality is in the specification from the first build: Robyn "provides trend, season, holiday & weekday decomposition out of the box using Prophet". Spend changes inside the fitted range are what a refresh exists to capture, and Meta lists among its expectations "that the refreshed model reflects the media spend changes in the new period".

A structural break changes the relationship between spend and sales, so our test is whether the event needs a variable the model lacks or leaves the old weeks describing a business that no longer exists. A yes to either moves the work from the calendar to a rebuild.

The drift check to run after every refresh

Google's refresh guide warns that "MMM estimates often exhibit high variance", so that "incorporating even a relatively small amount of new data may have a noticeable effect on the model's results." Pulling the new posterior toward the old one with priors carries its own warning: "setting priors that match an old MMM's results effectively counts the old data twice." A drift check each cycle separates refresh noise from a real trigger. We run four steps:

  1. Rerun the health checks. In the health-check guide from Google, convergence passes when max_r_hat is below 1.2, the negative baseline probability passes below 0.2 and fails above 0.8, and a Bayesian posterior predictive p-value below 0.05 fails.
  2. Compare each channel's ROI with the previous build. Our rule: a new posterior mean inside the old credible interval is refresh noise, and one outside it needs an explanation before it reaches a budget deck.
  3. Compare the baseline. Robyn expects "that the refreshed model has stable baseline compared to initial model". A step at the refresh boundary is a reason to look for a missing variable.
  4. Score input drift with the Population Stability Index.

Screening MMM model drift with the Population Stability Index

MMM model drift can be screened with the Population Stability Index (PSI), a credit-scoring statistic that compares a distribution at model development with the same distribution at review. A March 2023 review paper on arXiv defines it as a sum over categories: the review proportion P minus the development proportion q, multiplied by the log of P over q. The abstract of a December 2020 paper in the Journal of Risk Model Validation records the usual reading: below 0.10 is a "little change", 0.10 to 0.25 a "moderate change", and above 0.25 a "significant change, action required". It also cautions that "These benchmarks are used without reference to statistical type I or type II error rates", so treat the bands as a prompt to look. We found no mention of PSI in the Meridian or Robyn pages cited here; applying it to channel spend share is our adaptation.

A hypothetical example, computed with the natural log: a model built on a window where spend split 40% search, 30% paid social, 15% online video, 10% display and 5% affiliates meets a quarter with video pushed hard and total spend roughly flat.

ChannelShare in modeling window (q)Share in new quarter (P)Contribution to PSI
Paid search40%24%0.082
Paid social30%24%0.013
Online video15%37%0.199
Display10%10%0.000
Affiliates5%5%0.000
Total PSI0.29

At 0.29 the quarter sits above the 0.25 line, which makes it a rebuild candidate and a case for a geo-holdout test on video. A routine quarter at 38%, 31%, 16%, 10% and 5% scores 0.002. One edge case is instructive: the arXiv paper notes that the index is calculated to be infinite when a category is observed in one period and absent from the other, so a brand-new channel breaks the statistic and sends you back to the first row of the trigger table.

When drift appears, a fresh experiment settles the question faster than another round of tuning. Our primer on what incrementality means is the place to start, the multiplier method covers calibrating platform-reported numbers with test results, and MMM refresh and rebuild work sits with our data and analytics team. Keep a rebuild log with the date, the trigger and the PSI behind it, so next year's analyst can tell a regime change from refresh noise.

Sources

  • Google, Meridian guide "Refresh the model", last updated June 30, 2026
  • Google, Meridian guide "Model health checks", last updated October 2, 2026
  • Google, Meridian guide "Organic media and non-media treatment variables", last updated May 15, 2026
  • Google, Meridian guide "Budget optimization scenarios", last updated August 3, 2026
  • Meta, Robyn documentation, "Model refresh" section
  • Meta, Robyn source file refresh.R, notes for robyn_refresh()
  • Journal of Risk Model Validation, Yurdakul and Naranjo, "Statistical properties of the population stability index", December 2020
  • arXiv, du Pisanie and co-authors, "A critical review of existing and new population stability testing procedures in credit risk scoring", March 2023

Frequently asked questions

How often should you refresh a marketing mix model?
Match the refresh to your budget cycle. Google's Meridian documentation says model refreshes "can be done as frequently as you would like" and suggests quarterly, annually, or a frequency that matches your marketing budget decision process. Meta's Robyn documentation presents its refresh feature as allowing updates as frequently as the data allows, and cautions that the feature is not yet tested thoroughly.
Can I use robyn_refresh() after adding a new channel?
Robyn's own notes advise a rebuild in that case. The documentation for robyn_refresh() lists "New variables are added" as one of two situations where it is considered better to rebuild the model than to refresh it. The other is when most of the data is new, with the example of adding 50 weeks to a model trained on 100 weeks.
Should a refresh drop the oldest weeks when new ones are added?
Sometimes. Google's Meridian guide says discarding the oldest data may be necessary to stay in the 2-3 year window that is common in an MMM, and calls the decision a bias-variance trade-off. A longer window reduces variance because there is more data, and it can increase bias if media effectiveness and strategies have changed drastically over time.
Is the Population Stability Index built into Meridian or Robyn?
We found no mention of it in Meridian's refresh and health-check guides or in Robyn's refresh documentation. PSI comes from credit scoring, where it compares a distribution at model development with the same distribution at review. Applying it to channel spend share after a refresh is our adaptation, and the 0.10 and 0.25 bands are a convention for when to look closer.
Does a large ROI change after a refresh mean the model is broken?
Not by itself. Google's Meridian guide notes that MMM estimates often exhibit high variance, so even a relatively small amount of new data may have a noticeable effect on results. Before treating the change as real, check whether the new estimate falls inside the previous credible interval, whether the health checks still pass, and whether channel spend share drifted.

Free tools for this topic

FREE TOOLAttribution DoctorA media-mix model that runs in your browser.FREE TOOLUTM Campaign BuilderClean tracking links your analytics will thank you for.PLAYBOOKThe First-Party Data PlaybookMeasurement that survives privacy — and gets sharper.

Keep reading

GlossaryWhat Is Incrementality? The Question Attribution Can't AnswerRead →GuidesHow to Run a Quarterly Geo-Holdout Test Your CFO Will Actually TrustRead →DataThe Multiplier Method for Calibrating Platform Attribution With Incrementality TestsRead →
CATALIST NEWSLETTER

Monthly dose of growth marketing.

Get marketing tips, narratives, guides, and playbooks delivered to your inbox.

Protected by reCAPTCHA — Google's Privacy Policy and Terms of Service apply.