Upload a CSV of periodic sales and channel spend and get a media mix model: each channel's contribution and share, return and marginal return with intervals, fitted carryover and diminishing-returns curves, the whole outcome decomposed over time, and a straight answer on whether the per-channel split can be trusted. Free.
Free analyses run on up to 10,000 rows. Larger files are randomly sampled to that size — sign up to analyze your full dataset.
Fitting carryover and saturation per channel...
Sent to — Per-channel contribution and share, return and marginal return with intervals, response curves, the decomposition over time, fit diagnostics, a collinearity verdict, R code, and AI insights.
Analyze another fileThe outcome in each period is modelled as a non-marketing baseline (intercept, linear trend, Fourier seasonality at the cadence's natural cycle) plus, for each channel, a coefficient times a saturated, carried-over version of that channel's spend. Carryover is geometric adstock: carried spend equals this period's spend plus a decay rate times the previous period's carried spend. Diminishing returns are a negative-exponential saturation, concave everywhere, so the model can never imply constant returns to spend. Both shape parameters are fitted per channel — first by a coordinate-wise grid search over decay rates and saturation scales, then by a continuous Nelder-Mead refinement from that solution — scored on the Akaike information criterion with the shape parameters counted, and additionally checked out-of-sample on the last fifth of the series when it is long enough. Coefficients come from ordinary least squares with no regularisation; contribution, return per unit of spend and marginal return all scale directly from the coefficient, so their 95 percent intervals follow from its standard error. Marginal return is computed by lifting the channel's entire spend path by 1 percent and re-running its own fitted carryover and saturation.
Use it when you have at least two years of periodic marketing spend by channel alongside a periodic outcome, and you want a contribution and diminishing-returns picture that accounts for carryover instead of crediting each period's spend only to that period.
Not for deciding whether a specific campaign caused a lift — that is an incrementality test with a held-back control. Not for splitting credit across touchpoints inside individual customer journeys — that is multi-touch attribution. Not for a single channel with no spend variation, and not for a period count in the low tens, where the shape parameters cannot be identified.
Built for: Marketing analysts, growth leads, CMOs and finance partners deciding where the next unit of budget goes
Typical data source: A weekly or monthly spreadsheet with the period, the sales or conversions in that period, and a spend column per channel — the standard export from a media plan or an ad-platform roll-up
One row per period, with the outcome and each channel's spend in that period. For example, weekly revenue against four channels:
Minimum 24 rows · Best with 104-260 weekly periods (two to five years) with 3-6 channels
Which marketing channels actually drive sales? Regression-based media mix attribution with adstock and saturation. Map a dated outcome (sales, revenue, conversions) and the spend columns for each channel, and get a per-channel contribution and share of the outcome, a return and marginal return per unit of spend with 95 percent intervals, response curves showing where each channel flattens out, the whole outcome decomposed over time into a non-marketing baseline plus each channel, and a collinearity diagnostic that says out loud when the per-channel split cannot be trusted. Carryover decay and diminishing returns are FITTED per channel by grid search plus refinement, never assumed.
The outcome split period by period into a non-marketing baseline and each channel's fitted contribution — the picture that shows how much would have happened anyway.
Per-channel contribution, share, return and marginal return, plus the fitted decay rate and the spend level at which the channel reaches 90 percent of its modelled maximum.
Return per unit of spend with 95 percent intervals — the channels whose intervals span zero are the ones the data cannot distinguish from returning nothing.
Each channel's fitted diminishing-returns curve, showing where extra budget stops buying much.
Three identification checks that decide whether the per-channel split can be believed at all, or only the combined marketing total.
How well the model reproduces the outcome, including out-of-sample error and the residual-autocorrelation warning that the intervals may be understated.
The full specification, the search, and what the numbers do and do not license.
Plain-English interpretation — what the numbers mean, what's significant, and what to do next.
Where did last year's revenue actually come from?
Map your weekly revenue and each channel's weekly spend. You get the whole series decomposed into a non-marketing baseline plus each channel's fitted contribution, so you can see how much of the business would have happened with the ads switched off — usually far more than a spend-versus-sales chart suggests.
See our FAQ for details on pricing, data privacy, and how the analysis works. Every report includes a Methodology section showing the statistical test, assumptions checked, and diagnostics run.
Run any analysis on your own data — validated R analyses, interactive reports, AI insights, and PDF export.
Try Free — No Credit CardTell us what went wrong, in your own words. We capture the page you're on automatically, so no need to describe where you are.