
The Ultimate Guide to Choosing Your Perfect MMM Tool
Robyn, Meridian, Orbit, or custom-made MMM? In this blog post, we compare leading free, paid or custom MMM tools, to help you decide which best fits your needs.

Meridian GeoX is Google's open-source Python library for designing and analysing geo experiments. It assigns markets by stratified randomisation, estimates lift with time-based regression, and converts the result into an ROI prior that calibrates a Meridian marketing mix model.
Meridian GeoX is an open-source Python library from Google for running geo experiments, built to sit alongside Meridian, Google's Bayesian marketing mix model. It covers the whole life of a test: choosing which markets to treat, checking before any money is spent whether the design can detect the effect expected, estimating the lift afterwards, and handing that estimate to Meridian as a prior. It needs daily KPI data by geo, plus daily spend by geo for heavy-up and go-dark designs, which change an existing budget rather than launching a new one.
The design step is where it differs most from older tooling. Rather than hand-picking matched markets, it groups geos into strata by volume, trend and seasonality — k-means clustering over features such as the mean, coefficient of variation, slope and autocorrelation of each geo's KPI series — and then randomises treatment within each stratum. That is stratified randomisation applied to markets, and it keeps the property matched-market designs give up: assignment, not judgement, decides which markets are treated. Google's argument for it is that matched-market selection tends to understate the noise in the estimate, because markets chosen for how closely they tracked in the pre-period flatter the fit.
Candidate designs are then screened on data they were not fitted to. The pre-period is split into training, validation and final-selection windows, and each design is scored on out-of-sample fit, on A/A simulations that check the analysis does not report effects where none exist, on its minimum detectable effect, and on the budget needed to reach adequate power. Screening out of sample is the important detail: a design chosen for its in-sample fit is chosen partly for its noise, which is how a test that looked well powered on paper comes back inconclusive.
The analysis is time-based regression. The treated group's average KPI is regressed on the control group's over the pre-period, the fitted relationship is projected through the test window as the counterfactual, and the accumulated gap is the lift. GeoX constrains the slope to be non-negative and makes no distributional assumption about the errors, quantifying uncertainty with placebo-based inference instead. The assumption carrying the weight is that control markets stay at business as usual throughout — the requirement every counterfactual method shares, and one that has to be checked against the media plan rather than inferred from the data.
The link to Meridian is what makes it more than another geo-testing package. A finished GeoX analysis can be passed straight to Meridian's calibration builder, which turns the incremental return and its standard deviation into an ROI prior for that channel — widening it when the test's spend was small relative to the channel's usual level, when the test is old, or when it was too short to capture the full carryover. That is MMM calibration with the adjustments made explicit, which is a real improvement on pasting a lift figure in as a tight prior. The honest framing is the same as for GeoLift: a careful implementation of established methods with good planning tooling, not a new kind of evidence.
The four pieces of the pipeline, from assignment to the prior Meridian receives.
k-means strata over geo features → randomise within each stratumFeatures are each geo's KPI mean, coefficient of variation, slope, lag-1 autocorrelation and dynamic time warping distance. Four strata by default.
Ȳ_treat,t = α + β · Ȳ_control,t + εₜ, β ≥ 0Fitted on the pre-period and projected through the test window — see time-based regression.
MDE = SE_lift · ( z₁₋α/₂ + z₁₋β ) / baselineTwo-sided by default, and independent of which analysis method is chosen afterwards.
σ_prior = σ_exp · √( 1 + τ_spend + τ_recency + τ_duration )Small tests, old tests and short tests each widen the prior. Recency decays with a 52-week half-life.
A US retailer wants a geo test of paid social to calibrate its Meridian model. GeoX screens candidate designs across the 210 DMAs, and the selected go-dark test switches paid social off in the treated markets for six weeks, with revenue as the KPI.
The stratified design could detect a 4.1% effect where the hand-picked one needed 9.8%, and a measured iROAS of 2.6 enters Meridian as a prior centred near 3.1 with twice the test's standard deviation.
The first two rows are the design screen earning its keep. The hand-picked markets looked comparable, and the A/A simulations show what that looked like in practice: on periods where nothing happened, the analysis reported a significant effect 13% of the time against a nominal 5%, because markets chosen for how well they tracked understate the real noise. The stratified design holds its error rate and detects a smaller effect. The last three rows are the calibration adjustments, and both move the number the way they should. The test withheld only a quarter of the channel's spend, so extrapolating to the whole channel is uncertain and the prior's spread doubles from 0.7 to about 1.4. And six weeks captures only about 84% of the carryover a geometric adstock with α = 0.5 implies, so the mean is scaled up from 2.6 to about 3.1. A team that pasted 2.6 ± 0.7 straight into the model would have constrained the channel more tightly, and slightly lower, than the experiment supports.

Robyn, Meridian, Orbit, or custom-made MMM? In this blog post, we compare leading free, paid or custom MMM tools, to help you decide which best fits your needs.


When your advertising efforts are up and sales are increasing, that’s great news, but it doesn't necessarily mean the ads are the reason. Here are three popular tools to measure the lift of a campaign.

Strata, the design screen and the hand-off to Meridian are where a GeoX test is won or lost — see Geo Testing