Skip to main content
MilestonePyMC-Marketing 1.0 is here. The first stable API after two years of 0.x. Read our take on what changed and what it means for your MMM.Read the post
Live · pymc-marketing 1.3.0 · released 3d ago

Built on PyMC, by the team behind PyMC-Marketing

Enterprise marketing mix modeling built on PyMC

PyMC gives teams a transparent Bayesian modeling engine, and PyMC-Marketing shows how to use it for MMM. SIMBA, built by the same team, turns that approach into a practical platform for uploading data, fitting models, reviewing ROI, and optimizing budgets.

PyMC-Marketing pulse

A living, well-maintained open-source project

These numbers reflect public activity in the PyMC-Marketing repository — not SIMBA customer data. We track it so you can see, at a glance, that the open-source project our team maintains is moving forward every week.

snapshot Oct 26, 2026

Latest version
1.3.0
released 3d ago
GitHub stars
1.3k
477 open issues
Contributors (90d)
27
93 PRs merged in 30d
Downloads / month
101.7k
via PyPI
PyPI downloads (last 5 complete months)
102.1k-40.7% vs prev. month
peak 183.5k
low 102.1k
May 26Sep 26

What's new

Releases & news

Stay current with PyMC-Marketing releases and our own writing on Bayesian MMM.

1.3.0
Oct 22, 2026

1.3.0

Major Changes 🛠: fix(mmm): correct Weibull CDF kernel length · Use signed Normal likelihood for lift test calibration · fix(mmm): one meaning for y_original_scale; the log-link median becomes mu_original_scale. New Features 🎉: feat: add Named/Ref terms, and use terms (with cov…

Read release notes

1.2.0
Sep 29, 2026

1.2.0

Major Changes 🛠: refactor(bass): migrate dim handling to pymc.dims. New Features 🎉: feat: allow for Transformation call after apply method · feat: add pymc_marketing.terms · feat(mmm): reject target values outside the likelihood support at build time · fix(mlflow): log constra…

Read release notes

1.1.0
Aug 27, 2026

1.1.0

Major Changes 🛠: refactor(budget-optimizer): allocate_budget returns BudgetOptimizationResult. New Features 🎉: feat(mmm): parametrise GeometricAdstock by half-life · refactor(budget-optimizer): BudgetOptimizer accepts pm.Model + DataTree directly · Expand mmm.summary for front…

Read release notes

1.0.0
Aug 7, 2026

1.0.0

PyMC-Marketing v1.0.0 is out. After two years of 0.x releases, this is our stable API. Multidimensional MMM is now the MMM. Geo, product, and channel dimensions are first-class, with one xr.Dataset carrying all inputs. · ~1.5x faster sampling, thanks to model freezing and a stat…

Read release notes

0.19.4
May 6, 2026

0.19.4

New Features 🎉: Add Zarr save/load support to ModelIO (zarr>=3 shim) · Load models without fit data. Documentation 📖: Adding Consideration Sets Model to Mixed Logit · fix grammar in causal approach notebook · fix(docs): convert Resources section from raw HTML to markdown headi…

Read release notes

Geo MMM
Marketing Mix Modeling

Should You Build a Geo MMM When Media Is Bought Nationally?

Regional sales do not make national media regional. When a geo MMM adds causal information, why population-apportioned spend fails, and a quick diagnostic.

Aug 28, 2026·14 min read

Bass Diffusion
New Product Launch

Forecasting a Product Launch With No Sales History

A Bass model needs p, q and M before a new product has sold anything. Learn them from previous launches, then update as the first weeks of sales arrive.

Aug 28, 2026·17 min read

Budget Optimisation
Customer Lifetime Value

When Should Your Budget Optimiser Use LTV?

Budget optimisation has two sensible modes. Without a trusted value per acquisition, hold spend fixed and maximise acquisitions. With one, let the budget move.

Aug 28, 2026·10 min read

Marketing Mix Modeling
Hierarchical Models

When Your MMM Won't Mix: Predict the Better Prior Before You Refit It

Compress a reference posterior into Gaussian likelihood messages, solve candidate priors analytically, and predict NUTS ESS before paying for the refit.

Aug 20, 2026·16 min read

Marketing Mix Modeling
Adstock

Half-Life Is Still the Parameter: Extending the Idea to Delayed Adstock

Delayed adstock trades pure decay for build, peak and decay. Keep the half-life parameterisation, and the two questions it lets your team argue about.

Aug 18, 2026·12 min read

Marketing Mix Modeling
Attribution

Who Gets the Credit? Decomposing Multiplicative Marketing Mix Models

Why channel removal effects overlap in a multiplicative MMM, how Shapley and Aumann-Shapley allocate that overlap, and what benchmark tests tell us about the trade-offs.

Aug 13, 2026·14 min read

Built on PyMC, by the team behind PyMC-Marketing

Open-source transparency, productionised

PyMC-Marketing gives you the modeling primitives. SIMBA wraps them in a workflow your whole team can use without leaving Bayesian rigour behind.

Priors you can actually inspect

Configure Bayesian priors without writing PyMC code

PyMC-Marketing exposes priors for adstock, saturation, and every coefficient. SIMBA turns that into a typed UI: pick distributions, see live previews, and ship the same model PyMC-Marketing would fit from a notebook.

  • Distribution previews update as you change parameters
  • Smart defaults seeded from your historical spend
  • Every prior is auditable and exportable

Prior builder

PyMC-Marketing
Variable
Distribution
Mean
Decay
Meta_spend
InverseGamma
2.5
0.30
TV_GRPs
TruncatedNormal
1.2
0.45
Search_clicks
HalfNormal
1.8
0.20
OOH_impressions
InverseGamma
0.8
0.15

Each row is a PyMC prior, stated the same way PyMC-Marketing states it — no translation layer.

Saturation & adstock

tanh + geometric
SpendResponse
Linear assumption
tanh saturation
Real consumer behaviour, not straight lines

Saturation, adstock, and seasonality come built-in

PyMC-Marketing ships first-class transformations for diminishing returns and carry-over effects. SIMBA exposes them in your model spec so you never have to invent your own response curves.

  • Tanh, logistic, and Hill saturation curves
  • Geometric and Weibull adstock for memory decay
  • Fourier seasonality and external regressors

DIY PyMC-Marketing vs SIMBA

AreaDIY PyMC-MarketingSIMBA
Modeling engineOpen-source PyMC-Marketing codePyMC-Marketing powered models in a guided workflow
UsersData scientists and Python usersMarketing science, analytics, and business teams
OutputsCustom notebooks and chartsReusable ROI, response curve, scenario, and optimization views
New

Drive PyMC-Marketing through your AI assistant

The SIMBA MCP Server lets Claude, Cursor, and other MCP-compatible clients fit PyMC-Marketing models, inspect results, and run scenarios using natural language.

Frequently asked questions

Is SIMBA a replacement for PyMC-Marketing?

No. SIMBA is a platform built on PyMC by the team behind PyMC-Marketing, for teams that want the transparency of the open-source modeling approach with a product workflow around it. Its engine is its own PyMC code; it does not import PyMC-Marketing.

Can technical teams still inspect assumptions?

Yes. The point of the SIMBA approach is to keep model assumptions visible while making the workflow easier for non-notebook users.

Which version of PyMC does SIMBA run?

SIMBA pins a recent stable release of PyMC and records the engine version with every model run. The PyMC-Marketing pulse on this page shows activity in the open-source project the same team maintains.

Is SIMBA a fork of PyMC-Marketing?

No. SIMBA's engine is its own PyMC code, written by the team that maintains PyMC-Marketing. It shares the same conventions — adstock before saturation, lift tests as likelihood observations, full posterior inference — so a SIMBA model can be reproduced in a PyMC-Marketing notebook, and the tutorial notebooks in our public docs show how.

Does SIMBA contribute back to PyMC-Marketing?

Yes. We work closely with PyMC Labs and contribute fixes, examples, and documentation upstream. Building on a well-maintained open-source foundation only works if we help keep it healthy.

Build a more transparent MMM workflow

Talk through your current data, modeling process, and where SIMBA can help.

Book a Strategy Call