Quick answer: Use a media-mix model (MMM) when the question is "how should I split my budget across channels?" and touch-level attribution when the question is "which touchpoint gets credit for this conversion?" They are complements, not competitors — and for outbound communication channels the distinction matters more than for web analytics. Last-click and multi-touch attribution assume touchpoints arrive as tracked web events. An SMS sent, a voice call placed, a WhatsApp push delivered — those are outbound events your platform originates, and conversions close through offline or aggregated paths (phone orders, store visits, sales closed by a rep) that no click-stream ever sees. Channel-level regression models the relationship between aggregate spend and aggregate revenue without needing per-user path data, which is why MMM survives privacy-era measurement gaps that kill cookie-based models.
Why outbound channels need a separate model surface
Web analytics tools — GA4, Segment, or your data warehouse — were designed around inbound web events. Channel reporting that mixes paid ads with SMS, voice, and WhatsApp push needs a shared vocabulary that both sides of the funnel can consume. Orbit puts that vocabulary inside your own platform: outbound sends are platform events by construction, and a revenue event in your CDP provides the dependent variable the model regresses against. This is a tenant-owned analytics control — you pick the event and properties; Orbit runs the regression; nothing external touches your data.
What Orbit ships: Insights > Marketing mix model
The surface is Insights > Media mix model (/insights/media-mix-model). You configure a model run with:
- Revenue event — the CDP event carrying conversion value (for example,
Order Completed). - Date range — 14, 30, 60, 90, or 180 days of aligned daily spend and revenue.
- Channel, spend, and revenue properties — defaults are
channel,cost, andvalue; you re-point them if your event schema differs. - Carryover (adstock decay) — how much yesterday's spend still influences today's revenue, from 0 (none) to 0.95 (nearly all).
Run the model and it fits channel-level regression across the window. The report returns fit quality (R²), total revenue, revenue attributed to channels, and a baseline per day — plus a per-channel breakdown the next section walks through.
Reading the model
The channel table reports, per channel:
| Column | What it answers |
|---|---|
| Contribution | Revenue this channel drove in dollars, with a relative bar |
| Share | Its percentage of attributed revenue |
| ROI | Contribution divided by spend, as a multiple |
| Response curve | A sparkline over spend multipliers — diminishing returns rendered, not asserted |
| Current spend per day | Your average over the window |
| Recommended per day | Where the model reallocates under a fixed total budget, with the delta shown |
That last column is what MMM buys you over attribution: not just "how credit was shared" but "how to split the budget." The Insights > Attribution surface (/insights/attribution) remains the bottom-up complement — touch-level credit assignment across your goals, as covered in the outbound goals, attribution, and route preview walkthrough. Run both. MMM sets the mix; attribution sanity-checks it at the journey level.
Insights > Journey paths (/insights/journey-paths) gives the second check: the sequence of touches conversions actually traversed. If the model upweights SMS but journey paths show conversions on SMS-specific paths close mostly on voice follow-ups, the recommendation needs a human eye — the model is a starting point for a planning conversation, not its conclusion.
Example: SMS vs email vs paid ads for a seasonal campaign
A retailer runs a three-week holiday promotion across SMS, email, and paid social:
- Setup — pick the seasonal order event as the revenue event, a 90-day lookback (to catch pre-launch baseline), defaults for the spend and channel properties, and adstock decay at 0.3 — SMS decays fast, but paid-ad exposure carries forward.
- Read — SMS shows a 6.1x ROI but a flat response curve past your current daily spend; email returns 3.4x and keeps scaling; paid ads land 1.9x.
- Action — the recommended split shifts budget from paid ads into email until its curve flattens too, and holds SMS at saturation. Attribution confirms at the touch level which of the conversions SMS last-clicked were really email-assisted.
- Iterate — re-run after the campaign window closes with a tighter range, and compare recommended-versus-actual before committing the next quarter's mix.
Frequently asked questions
When should I use MMM instead of last-click attribution?
Use MMM when the decision is budget allocation across channels, especially where conversions close offline or in aggregated systems no click tracker can see. Use last-click when the decision is which touchpoint closed a conversion inside a tracked web funnel. The two answer different questions; neither substitutes for the other.
What data does the model need before it returns results?
At least two weeks of aligned daily spend and revenue. Wider windows (60–180 days) fit more stable models. If you see "Not enough history yet," widen the date range or confirm the revenue, spend, and channel properties are being recorded on your events.
How do I set the carryover (adstock decay) parameter?
SMS and direct channels decay quickly — values near 0–0.2. Paid and brand channels carry forward longer — 0.3–0.6. The default 0.3 is a reasonable middle; if you know a channel's half-life from prior tests, set it explicitly.
Does the recommended budget split account for my total budget?
Yes — the recommendation reallocates a fixed total budget across channels, so recommended spend per channel always sums to your current total. It is a reallocation answer, not a "spend more" answer.
How does this relate to the attribution report?
MMM is top-down (aggregate spend vs aggregate revenue); attribution is bottom-up (touch-level credit across journeys). The budget question MMM answers is the one attribution cannot; the credit question attribution answers is the one MMM cannot. Insights > Journey paths rounds out the triangulation with path-level evidence.
Is my data sent anywhere external for modeling?
No. The regression runs on your tenant's CDP events inside your account. You control which event and which properties the model consumes.
Resources
- Insights > Media mix model — the live report
- Outbound goals, attribution, and route preview — the bottom-up counterpart
- Insights > Attribution — touch-level credit assignment
- Insights > Journey paths — path-level sanity check