Another Failed Experiment: My Painful Love Affair with Meta’s Robyn for MMM
Introduction: Back in the Ring (Why Do I Do This to Myself?)
If you read my last rant about Google’s Lightweight MMM, you probably thought:
“Surely this guy has learned his lesson. He’s not going to let another open-source MMM tool chew him up and spit him out.”
Oh, my sweet summer child.
Of course I did it again.
Because like every data scientist with a masochistic streak, I believed the next shiny package would be different. I believed the marketing hype. I believed I was one pip install away from glory.
This time, the culprit wasn’t Google. It was Meta’s Robyn — the open-source Marketing Mix Modelling framework that LinkedIn ninjas won’t stop bragging about.
On paper, it was perfect. Developed by a Big Tech giant, powered by evolutionary algorithms, and free. I thought:
“This is it. My redemption arc. My infinite leverage moment. Naval Ravikant, watch me ride the exponential curve straight to MMM SaaS unicorn status.”
Reality check: instead of infinite leverage, I got infinite AWS bills, a UI Frankenstein that nobody wanted to use, and the soul-crushing realization that evolutionary computing is just a polite way of saying “hope you like waiting.”
This is the story of how I turned Meta Robyn into a sleep-depriving, budget-burning disaster.

Why Meta Robyn Looked Like a Dream
On paper, Robyn is irresistible:
- ✅ Developed by Meta (not a random grad student’s thesis on GitHub)
- ✅ Open-source, free, and extensible
- ✅ Already tested in real-world campaigns
- ✅ Boosted by a cult following of “data ninjas” who treat it like marketing’s second coming
The idea is elegant:
- You feed in your media data (spend, impressions, sales, whatever)
- Robyn applies adstock transformations (carryover effects) and diminishing returns (saturation curves)
- Then it runs an evolutionary computing algorithm to find coefficients that minimize error and balance “share of spend” vs. “share of impact”
In theory, it prevents absurd models where $1 of print ads explain 90% of sales.
In practice, it’s like putting a Formula 1 engine inside a lawnmower. Powerful, but not something your neighbourhood gardener can drive.

Step 1: Wrestling With R and Docker
Let’s start with the obvious: Robyn is built in R.
I’m a Python person. R to me is like visiting an old relative’s house — it smells funny, and the furniture doesn’t fit, but you pretend you’re comfortable.
To run Robyn, I had to:
- Break it into Docker modules
- Set up AWS EC2, S3 storage, IAM permissions
- Run commands in CLI like some hacker in a low-budget Netflix show
Technically, it worked. But every run felt like launching a space shuttle just to boil a cup of tea.
I already sensed trouble, but I thought: “No worries. Once I wrap this in a nice UI, marketers will love it.”
Ha. :)

Step 2: Building a UI Because Marketers Hate Command Lines
Imagine telling a CMO:
“To run your MMM, just SSH into AWS, call the right R function, and reload data from your S3 dataset.”
That’s how you get unfriended on LinkedIn.
So I built a UI layer in React. Buttons, sliders, dropdowns, file uploaders — the whole spa treatment.
It worked. Kind of. Marketers could upload files, tweak priors, and hit “Run.”
But behind the shiny UI lurked a monster: evolutionary computing.
Step 3: Reality Punch #1 – The AWS Money Pit
At first, AWS was manageable. A few EC2 hours here, some S3 storage there.
Then reality hit:
- Marketers don’t run models once. They rerun them constantly.
- Evolutionary computing eats CPU cycles like my uncle eats free buffet shrimp.
- Load balancing, uptime, security, user sessions — suddenly I wasn’t running a side project, I was running Netflix for MMM.
My monthly AWS bill? Over AUD 1,000. And that was with free developer credits. Without them, I’d be selling my furniture on Gumtree.
Naval Ravikant once said code is the ultimate leverage. I disagree. AWS is the ultimate leverage — against your bank account.

Step 4: Reality Punch #2 – Evolutionary Computing Is Just a Fancy Way to Say “Slow”
Here’s where Robyn flexes its academic muscles.
Unlike Google Lightweight MMM (which uses Bayesian regression), Robyn leans on evolutionary algorithms. Think of it like Darwin for data:
- Generate possible solutions
- Mutate them
- Cross them over
- Keep the fittest
- Repeat 10,000 times
It’s brilliant in theory. But in practice? It’s like watching paint dry while your laptop fan screams for mercy.
On a dataset with 20+ variables, a single run took 1.5 to 2 hours.
Want to test different priors? Add another two hours.
Want to rerun because the marketer didn’t like the results? See you tomorrow.
Robyn integrates with Nevergrad (a fancy optimization library) to speed things up. But good luck installing that in a dockerized AWS production setup. I tried. It was like fitting a square peg into a round hole while blindfolded.
So I had to rely on R’s built-in optimizer — the horse cart of optimization.
Result: I spent more time watching loading bars than analysing results. At one point, I considered livestreaming it as performance art: “Watch this guy age in real time while his MMM runs.”

Step 5: Reality Punch #3 – The Adstock & Diminishing Returns Dance
This is where Robyn really separates itself from Google Lightweight MMM.
With Robyn, you must predefine two transformations:
- Adstock: simulates the carryover of ads. Like a hangover — you feel it the next day, but eventually it fades.
- Diminishing Returns: simulates saturation. Like coffee — the first cup wakes you up, the fifth just makes your hands shake.
Sounds reasonable, right? Except you have to set these parameters before running the model.
For a data scientist, fine. For a marketer? Forget it.
Explaining to a CMO why their Facebook budget needs a half-life of 7 days is like explaining string theory at a dinner party. They’ll smile politely, then quietly start planning your replacement.
And because these parameters matter so much, every rerun is agony:
- Run the model → weird results → marketer confused
- Adjust decay or saturation → rerun for 1.5 hours → still weird
- Marketer annoyed → you question life choices
It’s like Groundhog Day, but with more AWS charges.

Step 6: Reality Punch #4 – The Results
Even after hours of computation, the results often made no commercial sense.
Marketers asked:
- “Why does my competitor double their spend, but your model says it barely affects us?”
- “Why is this channel showing negative sales impact? Are my ads so bad they make people return products?”
- “Why does it take me 10 reruns to get something believable?”
I checked my parameters. I swear I set them correctly. But Robyn still sometimes spat out coefficients that would make a freshman stats student blush.
To appease users, I built dropdowns so they could manually adjust adstock and diminish return parameters. But that just made them feel like unpaid interns playing with dials.
After two painful tries, most users rage-quit and ghosted me.
Step 7: The Death of My Self-Service MMM Dream
The usage logs told a sad story:
- Trial 1: Excited.
- Trial 2: Frustrated.
- Trial 3: Never came back.
Follow-up calls? Ignored.
Emails? Ghosted.
Me? Shouting into the void.
The harsh truth: marketers don’t want a powerful MMM engine. They want something simple, fast, and pretty.
Robyn is brilliant for data scientists. But for marketers, it’s like giving a Formula 1 car to someone who just wants to drive to the grocery store.
I’ve written several articles sharing my experiences and lessons learned with Meta Robyn. If you’re curious to dive deeper 👇:
The Open-Source MMM Paradox: Why Google and Meta’s Tools Miss the Mark for Real-World Marketers
Why Google Meridian and Meta Robyn Fall Short in Marketing Mix Modelling Tuning and Tweaking
Exploring Meta Robyn and Google Lightweight: Open-Source MMM Packages

Lessons Learned (a.k.a. My Therapy Notes)
- Naval Ravikant was half-right. Code does scale infinitely… but only when packaged and user-friendly. Otherwise, it just scales your headaches.
- Open source ≠ product. Robyn is amazing for analysts, but brutal for marketers.
- Evolutionary computing ≠ marketer-friendly. Long run times + manual tuning = death of enthusiasm.
- AWS is unforgiving. A “fun project” can balloon into Netflix-level costs overnight.
- Adstock and diminishing returns are critical. But requiring non-technical users to set them upfront is like asking a toddler to drive stick shift.
Respect Where It’s Due
Let me be clear: I respect Meta for releasing Robyn. It’s a serious contribution to the MMM community.
But building a self-service MMM SaaS tool on top of it? That’s a different beast. It’s not a magic bullet — it’s the start of a long, expensive, humbling journey.

Conclusion: Reality Will Punch You in the Face
If you’re a marketer thinking Robyn will solve your problems, or a founder dreaming of your MMM SaaS unicorn, learn from me:
- It’s not that easy.
- It’s not that cheap.
- And yes, reality will punch you in the face.
At least I now have two failed experiments to write about: Google Lightweight MMM and Meta Robyn.
Who knows? Maybe the trilogy will be about Google Meridian framework. Stay tuned.