v2.4.1 · Model Running

Stop GuessingWhich ChannelActually Works.

Bayesian marketing mix modeling that decomposes every dollar of spend into its true incremental contribution — across paid search, social, TV, podcast, and 5 more channels.

14-day model refresh vs. 6-month consulting cycle
Channel ROAS within ±3% of geo holdout tests
Full REST API · Programmatic access · No PDFs
$ python -m mmm_terminal
mmm_terminal — model_fit.py
RUNNING
from mmm_terminal import BayesianMMM
model = BayesianMMM(
adstock="geometric", saturation="hill"
)
model.fit(
spend_data=spend_df,
revenue=revenue_series,
channels=["meta", "google", "tiktok", "tv", "podcast", "email"],
prior_scale=0.5
)
Scroll
147 brands modeled this week$2.4B in spend analyzedavg. 23% budget reallocation after first runMeta ROAS lift: +18% after optimizationpodcast attribution: finally solved6 continents · 31 currencies · unified model
147 brands modeled this week$2.4B in spend analyzedavg. 23% budget reallocation after first runMeta ROAS lift: +18% after optimizationpodcast attribution: finally solved6 continents · 31 currencies · unified model
Competitive Analysis

The attribution tools you're using
are lying to you.

Last-click gives Google all the credit. Platform dashboards give themselves all the credit. Traditional MMM consultancies give you a PDF in 6 months. We give you coefficients in 14 days.

Dimension
SELECTED
MMM_Terminal
Traditional MMM ConsultancyLast-Click AttributionPlatform Self-Reporting
Model Refresh Speed14 days4–6 monthsReal-time (wrong)Real-time (biased)
Channel GranularitySub-channel + creativeChannel-level onlyLast-touch onlyOwn channel only
Holdout Accuracy±3% MAPE±12–18% MAPEN/A (not causal)N/A (self-reported)
Cross-channel Halo✓ Measured✓ Manual✗ Ignored✗ Ignored
Diminishing Returns✓ Hill function✓ Manual curves
Saturation Modeling✓ Automatic~ Partial
Annual CostFrom $1,200/yr$80K–$400KFree (misleading)Free (walled)
API / Programmatic✓ Full REST API✗ PDF reports~ Limited~ Export only
= Supported natively~ = Partial support = Not available
The math is not complicated. The execution is.

We handle the NUTS sampling, adstock priors, and saturation curves. You get the ROAS table.

Run Free Model →
Accuracy Benchmarks

Numbers that survive
a board meeting.

Every claim below is validated against geo holdout tests — real markets withheld from training, compared against actual lift. This is how we know our numbers are right.

14-day
model refresh cycle
vs. 4–6 month consulting engagement

Automated pipeline ingests spend CSVs or API feeds, runs NUTS sampling overnight, and surfaces updated coefficients by morning. No analyst babysitting required.

±3%
holdout MAPE
channel-level ROAS accuracy vs. geo holdout tests

Every model ships with a built-in holdout validation: 20% of markets withheld during training, ROAS estimates compared against actual lift. If we miss by more than 5%, we flag it.

97%+
reduction in attribution cost
vs. traditional MMM consultancy at $200K/yr

A mid-market DTC brand running 6 channels previously spent $180K on a consultancy for annual MMM. MMM_Terminal delivers continuous modeling for $2,400/yr with faster refresh and API access.

8+
channel types supported
paid search, social, TV, OOH, podcast, email, affiliate, direct

Adstock transformations tuned per channel type. Geometric decay for digital, Weibull for TV and OOH. Hill saturation curves fitted via gradient descent on posterior samples.

Channel Intelligence

Every channel modeled
on its own physics.

Podcast has a 3-week lag. TV has halo spillover. TikTok saturates at $40K. Email has near-zero decay. We model each channel's unique adstock and saturation profile — not a one-size-fits-all curve.

Hover a channel card
to see diminishing returns curve
Paid Search
$42K/mo
HIGH ROAS
3.87×ROAS
Adstock Decay85%
Saturation62%
Diminishing Returns
$20K▓▓▓▓▓▓▓▓▓▓▓3.48×
$40K▓▓▓▓▓▓▓▓░░░░2.71×
$60K▓▓▓▓▓▓░░░░░░1.94×
$80K▓▓▓▓░░░░░░░░1.16×
$100K▓▓░░░░░░░░░░0.58×
Meta Social
$78K/mo
SATURATING
2.41×ROAS
Adstock Decay72%
Saturation78%
Diminishing Returns
$20K▓▓▓▓▓▓▓▓▓▓▓2.17×
$40K▓▓▓▓▓▓▓▓░░░░1.69×
$60K▓▓▓▓▓▓░░░░░░1.21×
$80K▓▓▓▓░░░░░░░░0.72×
$100K▓▓░░░░░░░░░░0.36×
TikTok
$31K/mo
GROWTH
1.93×ROAS
Adstock Decay68%
Saturation44%
Diminishing Returns
$20K▓▓▓▓▓▓▓▓▓▓▓1.74×
$40K▓▓▓▓▓▓▓▓░░░░1.35×
$60K▓▓▓▓▓▓░░░░░░0.96×
$80K▓▓▓▓░░░░░░░░0.58×
$100K▓▓░░░░░░░░░░0.29×
Linear TV
$28K/mo
BRAND HALO
1.12×ROAS
Adstock Decay41%
Saturation89%
Diminishing Returns
$20K▓▓▓▓▓▓▓▓▓▓▓1.01×
$40K▓▓▓▓▓▓▓▓░░░░0.78×
$60K▓▓▓▓▓▓░░░░░░0.56×
$80K▓▓▓▓░░░░░░░░0.34×
$100K▓▓░░░░░░░░░░0.17×
Podcast
$8K/mo
REBALANCE
0.74×ROAS
Adstock Decay31%
Saturation29%
Diminishing Returns
$20K▓▓▓▓▓▓▓▓▓▓▓0.67×
$40K▓▓▓▓▓▓▓▓░░░░0.52×
$60K▓▓▓▓▓▓░░░░░░0.37×
$80K▓▓▓▓░░░░░░░░0.22×
$100K▓▓░░░░░░░░░░0.11×
Email
$5K/mo
UNDERINVESTED
4.22×ROAS
Adstock Decay92%
Saturation21%
Diminishing Returns
$20K▓▓▓▓▓▓▓▓▓▓▓3.80×
$40K▓▓▓▓▓▓▓▓░░░░2.95×
$60K▓▓▓▓▓▓░░░░░░2.11×
$80K▓▓▓▓░░░░░░░░1.27×
$100K▓▓░░░░░░░░░░0.63×

Adstock: Geometric decay for digital (α fitted per channel), Weibull for broadcast. Saturation: Hill function (k, n fitted via NUTS). Priors: weakly informative half-Normal(0, 0.5). Sampling: 4 chains × 1000 draws, R̂ < 1.01 required.

Live Sandbox

Touch the terminal
before you trust it.

Pre-loaded with 2 years of synthetic DTC spend data across 6 channels. Run the model, inspect the posteriors, stress-test the ROAS curves. No signup required.

Synthetic spend data: $180K/mo across 6 channels
Pre-fitted model with 4000 posterior samples
Interactive ROAS curves and budget optimizer
Export coefficients as CSV or JSON
Explore the Sandbox →
sandbox@mmm-terminal:~$mmm run --demo synthetic_dtc_2024
> Loading synthetic_dtc_2024.parquet (104 weeks)
> Channels: meta, google, tiktok, tv, podcast, email
> Total spend: $187.4M (2-year horizon)
> Model fitted · R̂=1.001 · MAPE=2.9%
 
Budget Recommendation (next 30 days):
↑ google +$12K (under-saturated)
↑ email +$3K (ROAS=4.2×, cap not hit)
↓ meta -$8K (saturation: 78%)
↓ podcast -$4K (ROAS below breakeven)
 
Projected revenue lift: +$47K/mo (+6.2%)
Free Tier

Run your first model.
No card. No call.
No consultant.

Upload a spend CSV, connect your revenue source, select your channels. The model runs overnight. By morning you have channel coefficients, ROAS estimates, and a budget reallocation recommendation.

Free tier includes:
2 model runs/month
Up to 4 channels
52-week data horizon
CSV export of coefficients
Holdout validation report
API access (100 calls/day)PRO
Unlimited channelsPRO
Slack/webhook alertsPRO
Provision Model Environment
$

No credit card. Free tier: 2 models/month, 4 channels, 52-week history.

The question your board is going to ask

"What's actually working?"

Now you have a number, not a narrative. Channel-level ROAS, saturation curves, and budget recommendations — derived from your actual spend data, validated against holdout markets.

Free tier · No credit card · 2 models/month included