Skip to content

Is Your Marketing Model's Answer Data-Driven, or Just Your Priors Talking Back?

A statistical model hands a marketing team a channel-attribution number, and the team has to decide: act on it now, or check it first. A model can produce a confident-looking estimate that is really just an echo of its own assumptions.

The decision this creates

Before shifting spend across channels on a model output, a measurement lead has to answer one question: is this estimate supported by the data, or mostly a reflection of the priors that went into the model? Reallocating budget on a prior-driven estimate, or one a handful of outlier weeks distorted, costs real money in the wrong channels.

A check drawn from a documented Bayesian marketing-mix project

One documented Bayesian media-mix-modeling engagement illustrates the check. The setup: a model estimating how paid channels convert into new customers, refit repeatedly as new spend and outcome data arrived.

Two changes addressed a common failure mode in that setup, where a small number of unusually large observations were pulling the fitted curve away from the typical pattern:

Neither change is specific to marketing data; both are standard responses to outlier-sensitive likelihoods in Bayesian modeling generally.

Modeling choiceDefaultOutlier-resistant alternativeWhat changes
Outcome scaleRaw countLog scaleThe fit responds to proportional change instead of raw spikes
LikelihoodNormalStudent-THeavier tails discount extreme points instead of letting them dominate the fit

The reach function, reparameterized so a human can read it

The project also rewrote the function describing how a channel's reach saturates as spend increases, in terms two marketers could argue about directly: the number of users at saturation, and the initial cost to reach one user.

\beta \cdot \tanh\left(\frac{x}{\beta \cdot c_0}\right)

Here x is spend, β is the saturation user count, and c_0 is the initial cost per user. Written this way, a domain expert can set a reasonable prior on β or c_0 from what they know about the channel, instead of guessing at an abstract curve-fitting parameter. Priors are only useful when a human can say whether they are plausible. (Understanding Bayesian Marketing Mix Modeling: Prior Specifications)

The actual check: run it under different priors and see what moves

Readable priors make the next step possible: refit the model under a range of plausible prior settings and watch which parameter estimates hold steady and which ones swing.

A model output that has not been run through this check is not yet a decision-ready number, no matter how precise it looks in the first pass.

A causal chain diagram showing a raw model estimate passing through a sensitivity check, splitting into a data-driven signal or a prior-driven signal, with only the data-driven signal reaching a decision-ready estimate.
A model estimate only becomes decision-ready after it survives a prior-sensitivity check.

Where this fits with causal testing

Subconscious does not build or sell media mix models, adstock functions, or marketing-channel attribution infrastructure. It tests a specific decision, such as a price, a message, or a launch action, through a randomized causal experiment rather than an econometric attribution model, and it does not replace channel-level MMM work.

The discipline in the check above still applies. Causal experiments produce an estimated effect with a confidence interval, and that estimate should also survive scrutiny, not get treated as ground truth on the first run. Subconscious can test or validate studies with real human participants, which lets a team move from a simulated experiment to real-human validation without changing the causal question being asked. See the research behind that approach.

Before the next reallocation

Before a model's channel or budget number changes real spend: has anyone checked whether it holds up under different reasonable assumptions, or is it running on its first pass? If not, that check is the next step, not the budget change itself.