Method write-up

How I'd approach an MMM

Start from the budget decision, build the data honestly, let experiments anchor the model, and present a recommendation with its range.

  1. 1. Start from the decision

    Write down the budget question the model has to answer: next quarter's channel split, whether a channel can absorb more, or how far a cut can go. That decides the granularity, the time window, and which channels need to be separate.

  2. 2. Build the dataset

    Weekly spend by channel from invoices or platform billing, matched to booked sales from the ledger rather than platform-reported revenue. Add what else moves sales: seasonality, promotions, pricing, product launches, distribution changes. Check every series for gaps, definition changes, and outliers before anything is fit.

  3. 3. Specify and fit

    In a Bayesian MMM such as Google Meridian, each channel gets carryover (adstock) and saturation, with priors that encode what is plausible. Fit, then check convergence, posterior predictive fit, and out-of-sample error on held-back weeks. A model that fits the past but can't predict a holdout isn't ready.

  4. 4. Calibrate with experiments

    Lift tests are the strongest evidence available. Use geo or randomized test results to inform the priors on return for the channels they measured, and plan the next test where the model is least certain.

  5. 5. Read the curves, not the averages

    The output that matters is each channel's response curve and its marginal return at current spend. Run budget scenarios at fixed total spend and at a few totals, with guardrails on how fast any channel can move.

  6. 6. Present the decision

    Leadership gets the recommendation, the range around it, what it assumes, and what would change it. Then the model is refreshed on a schedule, and its recommendations are checked against what actually happened.

This is how I'd approach the problem in general. It describes a method, not results from any employer or client.