The main open-source MMM libraries in October 2026 are Google’s Meridian, PyMC Labs’ PyMC-Marketing and Meta’s Robyn, with Uber’s Orbit as a specialist option for effects that change over time and Google’s LightweightMMM now archived. Meridian and PyMC-Marketing are Bayesian Python libraries that handle regional data and experiment calibration; Robyn is an R package built on ridge regression with an automated hyperparameter search, and it’s the one most marketers met first.
When I built the Vexpower MMM path, I taught Robyn in R and then LightweightMMM and Orbit in Python, which seemed like the obvious line-up at the time. One of those three has since been archived and another has slowed right down, which tells you something about this corner of open source: The code is free, but the libraries are maintained by marketing science teams whose priorities move, and you’re the one left holding a model when they do. So rather than list features from memory, I went through each repository, its PyPI or CRAN page and its changelog on 24 October 2026 and wrote down what’s actually there. If you’re new to the method itself, start with what marketing mix modeling is and come back.
The open source MMM tools side by side
The table covers the six libraries that fit a marketing mix model and the seven that run or analyze the experiments you’ll want to calibrate the model with. Filter by what your team needs, sort by release date to see who is still shipping, and tap any row for the adstock and saturation options, optimizer and license.
Which language does your team work in?
What level is your sales and spend data?
Do you have lift tests or geo experiments to calibrate with?
How do you feel about Bayesian modeling (priors, MCMC diagnostics)?
What matters most right now?
A few things jump out once you sort by latest release. Meridian, PyMC-Marketing and GeoX all shipped in the last two months, Orbit in May, and everything else is in some form of maintenance or retirement. GitHub stars are a poor guide here: Orbit has the most, but most of those people came for the forecasting, not the marketing mix modeling, and CausalImpact’s count reflects a decade of use far outside marketing.
Meridian: Google’s Bayesian geo-level MMM
Meridian is Google’s official MMM, released publicly in January 2025 and now on version 2.1.0 (17 September 2026). It’s a Bayesian model sampled with NUTS (the No-U-Turn Sampler, the standard MCMC algorithm for this kind of model), built to run either nationally or as a hierarchical geo model where each region gets its own estimates that are pulled towards a shared average. Adstock is geometric or binomial decay and saturation is a Hill curve, which keeps the shapes interpretable. What sets it apart is the calibration story: you can set priors directly on ROI, marginal ROI or contribution, and version 2.0 added calibration from incrementality experiments, including the new Meridian GeoX library for designing and analyzing geo tests. It also handles reach and frequency data, and there’s a Scenario Planner for budget conversations.
The trade-offs are practical rather than statistical. Meridian’s README recommends at least one GPU, version 2.0 switched the default backend from TensorFlow to JAX with a handful of breaking changes, and Google says it answers GitHub questions in weekly batches and rarely merges outside pull requests because the code is tied to internal systems. From what I’ve seen, the teams who do best with Meridian are Python teams with regional data and at least one experiment to anchor the priors. If that’s you, it’s the strongest default in 2026.
PyMC-Marketing: the flexible Bayesian toolbox
PyMC-Marketing is maintained by PyMC Labs, the consultancy around the PyMC probabilistic programming project, and it shipped version 1.3.0 on 22 October 2026. Its MMM started from the same Google paper as Meridian (Jin et al. 2017), but it has grown into a toolbox where nearly every part is swappable. Reading the source, the adstock options are geometric, delayed, binomial and two Weibull forms, and the saturation options include logistic, Hill, Michaelis-Menten, tanh, root and log curves, or one you write yourself. It supports lift-test calibration and ROAS or cost-per-acquisition calibration, time-varying baselines and media effects, multidimensional models across geos or any other split, and a budget optimizer.
That flexibility is the reason to choose it and the reason to be careful. You have to make more decisions than with Meridian or Robyn, and every one of them is a prior or a functional form that changes the answer. It also requires Python 3.12 or later and PyMC 6, so it won’t drop into an older environment. If your team already knows PyMC, or wants to model something the other libraries don’t (a funnel where awareness drives search, say), this is where I’d start.
Robyn: Meta’s semi-automated R package
Robyn is the library that made open-source MMM mainstream in marketing departments. It’s an R package from Meta Marketing Science that fits a ridge regression and uses Nevergrad, Meta’s gradient-free optimization library, to search adstock and saturation hyperparameters against two objectives at once: NRMSE for prediction error and DECOMP.RSSD, which penalizes models whose share of effect strays far from share of spend. Add experiment results and a third objective, MAPE.LIFT, pulls the model towards them. Adstock can be geometric or one of two Weibull shapes, saturation is Hill, and the budget allocator answers either “best split for this budget” or “what budget hits this target ROAS”.
Robyn hands you a Pareto front of models that trade fit against plausibility, and you pick one. I like that, because it makes the analyst’s judgment visible instead of hiding it in a default. However, development has slowed: The latest CRAN version is 3.12.1 from 2 July 2025, and the main branch hasn’t changed since June 2025. There’s a Python port (robynpy, still in beta) whose own README says it was translated from R using LLMs such as Llama, so I’d treat it as experimental. Robyn also models one national series, so regional data has to be aggregated or modeled region by region.
Orbit KTR: when channel effects drift over time
Orbit is Uber’s Bayesian forecasting library, and it’s on this list because of one model: Kernel-based Time-varying Regression (KTR), described in a paper by Edwin Ng, Zhishi Wang and Athena Dai with marketing mix modeling as the application. Instead of one coefficient per channel for the whole period, KTR lets the coefficient move smoothly over time, which is closer to how a channel really behaves when creative, targeting and competition change. It’s fitted with variational inference through Pyro, and you can add time-windowed priors on a coefficient (coef_prior_list), which is a neat way to tell the model what a lift test found in a particular month.
Orbit is actively maintained (version 1.1.5.1, 22 May 2026) but it’s not an MMM package. There’s no adstock, no saturation, no decomposition plot and no budget optimizer, so you build those yourself or around it. I taught Orbit on Vexpower because it forces you to think about time-varying effects, and that’s still the reason to reach for it.
LightweightMMM and MaMiMo: read them, don’t build on them
Google’s LightweightMMM was the go-to Bayesian MMM in Python from 2022 until Meridian arrived. The repository is now archived, the README says it’s no longer supported and recommends switching to Meridian, and the last release was 0.1.9 in May 2023. If you have an LMMM model in production, Google publishes a migration guide, and the LightweightMMM page maps the concepts across.
MaMiMo, by Robert Kübler, is a small Python library that packages carryover and saturation as scikit-learn transformers, so you can drop them into a pipeline with any regressor. It’s very readable and a good way to understand how the pieces fit together. However, it hasn’t had a release since June 2023 and the repository doesn’t declare a license, which in practice means you shouldn’t put it in a work codebase without asking the author.
The experiment libraries that keep your model honest
An MMM is an observational model, so it can be confidently wrong when spend and demand move together. Experiments are how you check it, and the open-source options split by language. In Python, Meridian GeoX (Google, version 1.0.1, September 2026) designs and analyzes geo tests, including multi-cell designs, and hands the result to Meridian as an ROI prior. CausalPy from PyMC Labs covers synthetic control, difference-in-differences, interrupted time series and more, Bayesian by default with an OLS option. Google’s older matched_markets (time-based regression) and trimmed_match (the Trimmed Match estimator for paired geo experiments) are both labeled “for research purposes only”, and trimmed_match hasn’t changed since 2023.
In R, Meta’s GeoLift uses augmented synthetic control to pick test markets, run power analysis and read out a geo lift test; it gets fixes but hasn’t tagged a release since May 2023. Google’s CausalImpact (version 1.4.1 on CRAN, September 2025) remains the standard way to ask what would have happened without an intervention, and tfp-causalimpact is its Python port. Whichever you use, the output is a lift estimate with an interval, which is exactly what Robyn, Meridian and PyMC-Marketing know how to consume.
Which open-source MMM should you start with?
Most of the choice comes down to five things: the language your team writes, whether your data is national or regional, whether you have experiments to calibrate with, how comfortable you are with Bayesian diagnostics, and what you need first. Work through the picker with your own answers.
In my experience the library matters less than people expect and the data matters more. A Robyn model and a Meridian model fitted to the same clean data with sensible controls usually tell a similar story about which channels are strong and which are saturated; the differences show up in the intervals and the edge cases. A badly specified model in any of them, with seasonality left out or a promotion missing, will be wrong in the same direction. That’s why I’d always fit a simple model from scratch first, in Python, R or even Excel, so you know what a reasonable answer looks like before a package hands you one.
Free software isn’t free MMM
None of these libraries charges a license fee, but that’s rarely the expensive part. The cost is the weeks spent assembling clean weekly spend and sales data, choosing controls, checking the decomposition against what the business knows, and refreshing the model every quarter. That’s why plenty of companies that start on open source end up paying a vendor or a consultancy to run the model for them. The build vs buy page has a calculator for that trade-off, and the MMM software directory covers the commercial tools.
I’ve left a few things out on purpose. Commercial platforms aren’t open source, even when they publish example code, so they’re in the vendor directory instead, and abandoned tutorial repositories with a few hundred stars aren’t libraries you’d run a budget on. If you want to try two of the libraries above side by side, the practice dataset below is small enough to fit in any of them in minutes.
If you’d rather learn the method by building it, the Vexpower MMM course walks through one invented brand from brief to budget decision, and the open-source libraries make a lot more sense once you’ve seen every step done by hand.
