Credits the ads that work slowly
A TV or video ad sells things for weeks after the money stops. Without that, the sale gets handed to whatever was running the day it happened — usually search, which was just catching demand someone else created.
You spend across several channels and the platforms each claim the same sales. Upload a CSV of weekly spend and revenue and find out what each channel is really giving back, which ones have stopped paying for extra money, and how to split the same budget better. No sign-up, nothing installed, and your media plan never leaves this tab.
Drop a CSV of weekly spend and results here, or
One row per week or day: a date, one spend column per channel, and the conversions or revenue you want explained. Two to 12 channels, up to 800 periods.
The file is read and the model is fitted in this browser tab. Your spend data never reaches our server, so there is nothing for us to keep.
Most free “marketing ROI calculators” divide revenue by spend and call it an answer. This one accounts for the fact that ads keep working after you stop paying, that channels hit a ceiling, and that Christmas would have happened anyway.
A TV or video ad sells things for weeks after the money stops. Without that, the sale gets handed to whatever was running the day it happened — usually search, which was just catching demand someone else created.
Every channel has a point where extra money stops buying much. You get a curve per channel with today's spend marked on it, so you can see whether you are still on the steep part.
Your sales chart is split into the part you would have had anyway, the trend, the seasonal lift and each channel. If marketing only explains a small slice, it says so rather than hiding it.
No extra money. It moves spend from the channels that have flattened out towards the ones that have not, and tells you what that would have been worth.
A range around every return figure, and a warning when your data cannot really answer the question — too few weeks, a channel that never changes, two channels that always move together.
Everything runs in this tab, so your media plan never reaches a server. The breakdown, the returns and the suggested budget all download as CSV.
A date column, one spend column per channel, and the sales or conversions you want explained. Most planning spreadsheets already look like this; if yours has a row per campaign, rows sharing a date are added together.
It reads your headers to find the date, the outcome and the spend columns. Every guess is a dropdown you can change, and the answer updates as soon as you do.
The warnings sit above the results on purpose. If they say your data cannot separate two channels, the neat table underneath is a starting point for a test, not an answer.
Want to see it work before you go hunting for your own file? The run it on made-up data link under the upload box builds a few years of pretend weekly data and runs the whole thing on it, so you can see exactly what comes out.
Less than the confident-looking table suggests. This kind of analysis is genuinely useful and genuinely fragile, and its worst habit is handing you a precise number built on almost nothing. Four things to keep in front of you:
Marketing mix modelling is a statistical method that explains a business outcome — revenue, orders, conversions — using how much you spent on each marketing channel over time, alongside everything else that moves the number: trend, seasonality and the demand you would have had anyway. It works on aggregate weekly data, not on individual people, so it needs no cookies, no pixel and no user-level tracking. It came out of consumer goods in the 1960s and came back when privacy changes broke click-based attribution.
You fit a regression of your outcome on channel spend, after transforming each channel twice. First adstock, which carries part of last period's spend into this one because advertising keeps working after the money stops. Then a saturation curve, which bends the response so the tenth thousand pounds does less than the first. The fitted coefficients give each channel's contribution, and whatever the model cannot attribute to media is the baseline — the sales you would have made regardless.
One row per week with a date, a spend column for every channel, and the outcome you want explained. Two years of weekly data — 104 rows — is the usual minimum, because the model has to see several seasons and several different spend levels to separate them. Fewer than about 52 rows and the estimates get unstable. Adding controls such as price, promotions, distribution or competitor activity improves the fit, but spend and outcome are the core.
Adstock is the assumption that advertising you paid for last week still sells this week. The model carries a fraction of each period's spend forward: x' = x + theta multiplied by the previous adstocked value. Theta is the decay rate, fitted per channel and between 0 and 1. A theta of 0.7 means 70% of the effect survives into the next week, typical of brand and video; a theta of 0.1 is almost immediate, which is what search usually looks like.
A saturation curve describes diminishing returns: each extra pound in a channel buys less than the pound before it, because you have already reached the people who were cheapest to reach. It is usually modelled with a Hill curve, which has a half-saturation point (the spend at which the channel is halfway to its ceiling) and a shape parameter that decides whether returns fall away immediately or after an initial S-shaped ramp. Without one, a model believes doubling the budget doubles the sales forever.
It depends entirely on your margin, and most benchmarks quoted online ignore that. A rough rule is that a channel breaks even at 1 divided by your gross margin — at a 40% margin that is a ROAS of 2.5, at a 20% margin it is 5.0. Ecommerce blended ROAS commonly lands between 3 and 5, but a subscription business with high lifetime value can profit at under 1 on first order. The number that matters for budget decisions is incremental ROAS, not the figure the ad platform reports.
ROI is the total outcome attributed to a channel divided by everything you spent on it — an average across all the money already committed. Marginal ROI is what the next pound would return at your current spend level, read off the slope of the response curve. They separate exactly when saturation bites, so a channel can have the best average ROI and the worst marginal ROI because it is already flat. Reallocate budget on marginal ROI; average ROI only tells you about money you cannot spend again.
No. A mix model finds spend patterns that correlate with your outcome, so it cannot separate a channel that drove sales from one you happened to switch on during a strong quarter, and when two channels always run together it often cannot tell them apart at all. Only experiments establish causality: geo holdouts, matched-market tests, and controlled lift studies. The right use of a model is to decide which experiment is worth running, then to calibrate the model against the result.
A mix model works from aggregate spend downward and sees everything, including the channels you cannot track. Path-based channel attribution works from tracked journeys upward and sees them in detail. They will disagree; the disagreement is usually the finding. If the outcome you are modelling fell off a cliff at a specific point rather than drifting, the traffic drop analyser is the faster question to ask first, and the SEO audit covers the case where the cause was technical.
All of them are pieces of Meelu, a desktop app where an AI marketing agent runs your marketing on your own machine — no row cap, no upload, and nothing leaves the laptop. Join the waitlist.