Three marketing mix modeling engines on the same data: Robyn, Meridian and PyMC-Marketing. You set the specification on each model and pick the best result.
Swipe to see the whole flow →
Every project is a canvas. The nodes are the pieces of your model: the dataset, the variables, the period, each Robyn, Meridian or PyMC run, each budget allocation, and the benchmark that compares them.
No R, no Python, no environment to set up, nothing running on anyone's laptop. Upload a CSV or Excel in whatever shape it already has and map your columns on screen: KPI, media spend, organic, controls, and geo and population if you have them.
That mapping becomes the Dataset and Variables nodes, and every model you hang off them reads the same one. Edit it later and meryn tells you how many trained models it invalidates before you confirm.
Robyn
Meridian
PyMCTen node types in the palette. Drop one on the canvas and drag a wire from whatever feeds it: a model hangs off a period, an allocator off a model, the benchmark takes as many as you connect to it.
No form asks which dataset this model uses — the wire already said so. Six months later you open the project and see what fed what.
Hang as many models as you want off the same period and press Run. You don't wait for one to finish to start the next: they train at the same time, and the ring around a node means that model is training right now.
Anything over your plan's concurrency waits in a queue and starts by itself when a slot frees up. Close the tab; the canvas is where you left it when you come back.
Informed priors
Fixed budget
R² .91
3.7×
Baseline
Max response
R² .89
3.4×
Longer adstock
Target efficiency
R² .87
3.1×
Custom curves
R² .84
2.9×
Meridian and Robyn agree Paid Social is underinvested by ~12%. Their allocators disagree on TV — that's where to dig.
Wire models and allocators into the benchmark node and it puts all three engines on the same axes: fit, ROAS, contribution per channel — with each budget allocation sitting next to the model that produced it, not in a separate tool. Which channels the engines agree on, and which they don't, is visible in the same table.
Every finished model also arrives with a verdict: Ready to use, Use with care, Not ready, or Not enough to judge. Each finding says what is off and where its threshold came from — the statistics literature, our own judgement, or the spread of the runs that already exist.
Marking a winner doesn't publish anything. When you publish the flow, whoever has the link sees that winner and its optimized budget, read only, without an account.
Publish a flow and the project's link opens it: the winner you marked and its optimized budget, read only, with no account to create. The models you tried and discarded stay where they are. Revoke the link whenever you want and it stops working.
Inside, a project is open to the whole team or to the people you name, and everyone who has it can create and run models. There's no read-only seat to hand out, because a link already does that: nobody has to be added to your team to see a result.
Every parameter below is one you set yourself, in the model node, before the run. The second list is what isn't supported today.
Robyn
Meta · R
Meridian
Google · Python
PyMC-Marketing
Open source · Python
None of these are supported today. If one of them is a dealbreaker, better to know before you upload anything.
Good — then you know a single run is the easy part. What Meryn adds is the tenth run, and the thing that compares all ten. Your data scientists keep their workflow. Your media analysts, strategists and clients stop queuing behind them for every variation.
Yes — each model trains in its own isolated container, so they don't share memory, disk or each other's files. Your plan sets how many run at once: 1 on Free, 3 on Pro, 10 on Enterprise. Anything beyond that waits in a queue and starts by itself the moment a slot frees up. You don't have to be watching.
Can you see the priors they set? Can you rerun the model next quarter with updated spend? If the pipeline lives in their environment, you don't own your measurement. On a canvas the whole thing is one diagram you can reopen, rewire and rerun — whether the agency built it or you did.
Every finished model carries a verdict — Ready to use, Use with care, Not ready, or Not enough to judge — with the findings behind it and where each threshold came from: the statistics literature, our own judgement, or the spread of the runs that already exist. A clean panel is not a guarantee. It means we found none of the problems we know how to look for. And you don't have to take one run's word for it: when several models with different priors point at the same channel, that's evidence, not a dashboard telling you what to believe. The engines are the same open-source code published by Meta, Google and PyMC Labs.
We're onboarding teams one at a time. Leave your email and we'll reach out.
Join the waitlist →Runs Robyn, Meridian and PyMC · Export your models and charts