Doc. SR-MMM101-001 · Rev. A · 2026 A media mix model that shows its work.

01 / Four numbers from one worked sample model

These come from a single synthetic sample model built to test the method end-to-end: a demonstration, not a guarantee about performance on any other dataset.

24 / 24
hidden true values landed inside the sample model's ranges
2.6%
avg. error forecasting 12 weeks the sample model never saw
~92%
of real values captured by its 90% ranges: "90% means 90%"
4 of 4
independent solver runs agreed: "closed to the same books"

02 / The five concepts inside the machine

01 · Baseline

"What would've happened anyway"

Word of mouth, brand, seasonality: leads that arrive with zero ads.

baseline (no credit to ads) incremental: ads get credit here

The model carves this out first, so ads only get credit for the extra.

See itCommand chart note: "modeled incremental contribution."

02 · Adstock

"Ads keep working after you stop paying"

A campfire cooling after you stop adding wood.

week 0 fades

Every channel cools at its own speed: Search cools instantly; CTV/audio glow longer. Half-life = weeks until half the effect is gone.

See itfitted per channel in engine artifacts.

03 · Saturation

"The tenth coffee does nothing"

First $1,000 reaches the eager; the tenth reaches people who've seen it five times.

you are here flat = saturated steep = headroom

The response curve: steep part = headroom, flat part = saturated.

See itMMM Lab curve chart: the dot is today's spend.

04 · Average vs. marginal CPL

The single most important distinction

Average = report card about the past. Marginal = price of the NEXT lead.

AVG $69 the past NEXT $300 the decision

A channel can look cheap on average and be expensive at the margin. Budget decisions ride on marginal. Many black-box vendors blur this distinction; SignalRig leads with it.

See it"Next-dollar economics" cards on Command.

05 · Uncertainty

"Ranges, not guesses dressed as facts"

A number without a range is a guess wearing a suit.

lo med hi

Bayesian = thousands of plausible answers (the posterior); we report the middle and the 90% range. A wide range is a feature: the model saying "I can't see this channel; here's how to fix it."

See itevery med (lo–hi) figure, shaded bands, confidence chips.

+ · Scenario planner

How "move money" math works

Slide DOWN one curve, slide UP another, across thousands of plausible answers.

Display ↓ lose a little Meta ↑ gain more

Output = a lift range + the probability the move helps at all.

See itMMM Lab slider + the verdict banner that says it in words.

03 / The five receipts: how the model earns trust

This is what separates a testable model from a black-box score.

01

The hidden-answer exam

Synthetic data where the true values were fixed in advance, so the model had to find them blind. 24/24 inside its ranges, in this worked sample model.

Say it like this"We graded the model on an exam where we held the answer key. 24 for 24, and it re-runs every retrain."

02

The blindfold test (holdout)

Hid the last 12 weeks; model forecast them. 2.6% avg error, ranges captured reality ~92% of the time, again, in this sample model.

Say it like this"Judge it on the weeks it never saw."

03

Four independent solvers agree

Four runs from different random starts all land on the same answer (R-hat = 1.00, zero divergences; don't define those).

Say it like this"Four independent runs of the math closed to the same books."

04

Every number shows its source

Benchmarks are tagged by origin: client history, industry prior, or labeled assumption; never an unlabeled guess.

Say it like this"Provenance on every planning number."

05

The AI never invents a number

A literal code guard rejects any AI-written number that wasn't computed by the statistics.

Say it like this"Agents narrate; engines calculate."

Worth stating plainly

Today's numbers come from a synthetic twin: data built to mirror a realistic spend-and-results pattern, not pulled from any single client's live data. That's what made the hidden-answer exam possible. Once real data is connected, receipts #2 and #3 re-run automatically against your own holdout weeks, using the identical pipeline.

04 / The data contract: five spreadsheets, weekly rows

kpi.csv Required

What happened: one row per week per outcome (e.g. signups)

paid_media.csv Required

What we spent: week, channel, campaign, $, impressions/clicks

organic_owned.csv Optional

Free exposure, so paid ads don't steal organic's credit

non_media_treatments.csv Optional

One-off events (PR, promos), so spikes aren't misattributed

controls.csv Optional

Background forces: seasonality, economy

Practical asksWeekly grain. Two years if possible. Actual delivered spend (not planned). The Data Drop-In screen scores readiness 0–100, the same checker gates the model itself.

What doesn't exist yet

An ingest layer: a parser that maps per-platform exports (Google, Meta, and so on) automatically into the five-file contract. Today those files are assembled by hand or with a lightweight script; automatic ingest is on the roadmap.

05 / Credibility armor: what we are not claiming

Not a crystal ballModel informs; the market votes.ReframeWe forecast with ranges and track whether reality landed inside them.
Not person-level trackingAggregate weekly data: no cookies, no PII.ReframePrivacy-proof and future-proof. A strength.
Not a replacement for lift testsWide ranges → small geo lift test is the tiebreaker.ReframeWe say so on the Model Card.
Not instantWeekly data, weekly learning.ReframePacing lives in platforms; budget allocation lives here.

06 / Common questions: tap to reveal the answer

Straight answers to the questions people ask first.

"So what is this, in one sentence?"
Answer"It's an honest referee for marketing spend. It reads two years of weekly spend and results, figures out what each channel actually causes, and turns that into budget decisions with confidence ranges and receipts."
"How is it different from a typical black-box vendor?"
Answer"Three ways: every number shows its source and its range instead of being an orphan score; outputs land as decisions and exportable plans instead of charts you have to decode; and the model publishes its own test results every time it runs. Most legacy vendors ask for trust; SignalRig shows receipts."
"Is this real data?"
Answer"The numbers on this page come from a synthetic twin built to demonstrate the method, not from any single client's live data. That's what let us grade the model against hidden true answers ahead of time. The identical pipeline runs on real data once it's connected, using the same five-file contract."
"How accurate is it?"
Answer"On the worked sample model, where the true answers were known in advance: 24 of 24 landed inside its stated ranges. Forecasting twelve weeks it never saw: about 2.6% average error, with 90% ranges that captured reality about as often as advertised. Those numbers describe that one synthetic exercise; they aren't a guarantee for any other dataset. On real data, the same tests re-run and produce their own receipts: accuracy is a report the model publishes every time it runs, not a claim made upfront."
"Why do all the numbers have ranges?"
Answer"Because a single number hides how sure you are. The range IS the information: tight range, act; wide range, the model is telling you what data would tighten it. Bare numbers with no range give you no way to know which ones to trust."
"What's 'marginal CPL'?"
Answer"What the NEXT lead costs, not what the average lead cost. Averages describe the past; the next dollar is a decision about the margin. A channel can look cheap on average and be expensive at the margin because you've already bought its easy leads."
"What data do you need to get started?"
Answer"Weekly spend and results exports, the five-file checklist, ideally two years. Drop them in the Data screen and it scores readiness on the spot. The promos-and-events sheet is the cheapest upgrade to model confidence."

07 / Fifteen terms, one line each

MMMStatistics that splits credit for results across spend channels honestly
KPIThe result being counted (here: leads/signups)
CPLCost per lead = dollars ÷ leads
Marginal CPLCost of the next lead at current spend
BaselineResults you'd get with zero ads
AdstockAd effect that lingers after the spend
Half-lifeWeeks until half the ad effect fades
Response curvePicture of spend vs. results for one channel
SaturationFlat part of the curve: next dollar buys little
BayesianMethod that produces ranges of belief, not single guesses
Posterior / drawsThe thousands of plausible answers the model holds
90% intervalRange covering 90% of those plausible answers
HoldoutData hidden from the model to test forecasting honestly
ConvergenceIndependent runs of the math agreeing (R-hat)
ProvenanceLabel saying where a number came from