
How Marketing Mixed Modeling Can Improve Your ROI
How to plan your marketing spend while measuring the true effect of any marketing activity on your bottom line? The answer lies in Marketing Mix Modeling (MMM).

Work out how many observations you need to detect a correlation of a given size, then get r or rho, the p-value and a Fisher-z interval. That interval is the reason to use this rather than a spreadsheet formula: an r from forty rows is compatible with a far wider range of truths than its readers assume.
| Observations | 85 |
|---|---|
| Achieved power | 80.0% |
| Fisher's z | 0.3095 |
| Before rounding | 84.93 |
Collect 85 paired observations and a true correlation of 0.30 will come out significant 80.0% of the time. That is a test of whether the correlation differs from zero, and it is a much weaker goal than estimating one: a study sized exactly here will typically return an interval several tenths wide, spanning "barely there" to "strong". If you need the number rather than its sign, plan on considerably more. And rows are not always observations — two trending, seasonal weekly series contain far less independent information than their length suggests.
| Correlation to detect | Required observations |
|---|---|
| 0.05 | 3,138 |
| 0.14 | 415 |
| 0.22 | 154 |
| 0.31 | 79 |
| 0.40 | 48 |
| 0.49 | 31 |
| 0.57 | 22 |
| 0.66 | 16 |
| 0.75 | 12 |
| 0.83 | 9 |
| p-value | 0.0208 |
|---|---|
| Pearson's r | 0.4200 |
| 95% confidence interval | [0.070, 0.678] |
| t | 2.4489 |
| Degrees of freedom | 28 |
| Observations (n) | 30 |
| r² (shared variation) | 0.1764 |
| Fisher's z | 0.4477 |
| Standard error of z | 0.1925 |
A relationship this strong would be unlikely if the two variables were unrelated (Pearson's r 0.42, p 0.0208). The data is consistent with a true correlation anywhere from 0.07 to 0.68. Read that range before the p-value: if its lower end would not change a decision, "significant" has not settled anything. Two things this cannot support. It is not evidence that one variable moves the other — the same pattern appears when both simply follow something else — and it is not comparable across samples, because Pearson's r depends on how much the two variables happened to vary here; compare regression slopes instead.
| Correlation | Estimate | Interval |
|---|---|---|
| Pearson's r | 0.42 | 0.07 to 0.68 |
Use a correlation test when you have two measurements on the same units and want to know whether they move together, and how strongly. Weekly ad spend and weekly revenue, session count and day-30 retention, page speed and bounce rate. Both variables are observed rather than assigned, which separates this from every other calculator here: nothing was randomised, so the analysis describes co-movement and stops. Pearson's r measures a straight-line relationship; Spearman's rho does the same on the ranks, which suits ordinal data and cases where a couple of extreme points would otherwise write the answer.
"Correlation is not causation" is true and almost useless, because it says nothing about how to read the number in front of you. Three failure modes are more actionable. Attenuation: measurement error in either variable pulls r toward zero, capping it at roughly the square root of the product of the two measures' reliabilities, so 0.45 between two noisy proxies can reflect something far stronger. Restriction of range: r shrinks when the sample is filtered on either variable, so correlating spend against return among campaigns that cleared a spend threshold understates the relationship. And non-comparability: r is a covariance rescaled by the sample's own standard deviations, so an identical slope gives different r values in two markets whose spend varies differently.
Use something else when the question is causal or the data is a different shape. To know what happens to revenue when you change spend — not whether the two drifted together — you need a design that breaks the confounding: a geo test, a randomised experiment, or an explicit causal model. Two categorical variables want a chi-square test; comparing groups rather than tracking co-movement wants the t-test or ANOVA; time-to-event data wants the log-rank test.
Computing r requires nothing — it describes whatever numbers you feed it. The p-value and the interval carry the assumptions, and one of them fails constantly in marketing data:
The p-value comes from the usual t transformation on n − 2 degrees of freedom; the interval does not, and the reason is worth knowing. The sampling distribution of r is skewed whenever the true correlation is not zero — r is bounded at ±1, so an estimate of 0.85 has more room to fall than to rise, and a symmetric interval would run past 1. Fisher's z maps r onto an unbounded scale where that distribution is near normal with a variance depending only on n; the interval is built there and mapped back. Spearman's rho is Pearson's r on the tie-corrected ranks, so the same machinery applies.
r = Σ(xᵢ − x̄)(yᵢ − ȳ) / √( Σ(xᵢ − x̄)² · Σ(yᵢ − ȳ)² )A covariance divided by the two standard deviations. That denominator is why r is not comparable across samples with different spread.
t = r·√(n − 2) / √(1 − r²), df = n − 2Tests the null that the population correlation is exactly zero, and only that. Testing r against any other value, or comparing two correlations, goes through Fisher's z.
z = ½·ln((1 + r)/(1 − r)), SE(z) = 1/√(n − 3)The interval is z ± z₁₋α/₂·SE, mapped back with r = tanh(z). The standard error depends on n alone — all the asymmetry comes from the back-transformation.
n = ( (z₁₋α/₂ + z₁₋β) / atanh(ρ) )² + 3At 80% power and α = 0.05 two-sided: about 782 observations for ρ = 0.10, 194 for 0.20, 85 for 0.30, 46 for 0.40, 29 for 0.50.
ρ_s = Pearson r computed on the ranks of x and yThe familiar 1 − 6Σd²/(n(n² − 1)) shortcut is correct only with no ties, so the calculator does not use it. Distrust any tool that shows you that formula.
r_observed ≈ r_true · √(reliability_x · reliability_y)Spearman's own 1904 correction. Two measures with reliability 0.8 each cap the observable correlation at 0.8, however many rows you collect.
Before committing to a full media model you want to know whether weekly paid-search impressions and weekly branded organic sessions move together at all. Anything below r = 0.30 would not be worth carrying into the model, so that is what the study has to detect, at 80% power and 5% two-sided.
85 weekly observations, a little over eighteen months of history. With the 40 weeks most teams have, an observed r of 0.30 comes with a 95% interval of roughly −0.01 to 0.56.
Two things fall out, and the second matters more. First, the interval at n = 40 spans everything from no relationship to a strong one, so "we saw a correlation of 0.3" from forty weeks is not a finding — it is a prompt to collect more data. Second, 85 weeks of weekly data does not contain 85 independent observations: both series trend and both are seasonal, so the effective sample is smaller than the row count and the real interval is wider than the one above. That gap between rows and information is the commonest way marketing analyses overstate their own precision.
Read the interval before anything else. An r of 0.42 from 30 observations carries a 95% interval of roughly 0.07 to 0.68 — technically significant, and consistent both with a relationship too weak to matter and with one strong enough to build a plan around. Small-sample correlations are among the least stable statistics in routine use, and the interval is the only thing on the output that says so — the argument for intervals over asterisks we make about reporting results.
Square r if you like, but be careful what you claim. r = 0.42 gives r² = 0.18, and "18% of the variance" is a statement about variance in this sample, biased upward — not 18% of revenue, or of anything a stakeholder will hear. Note too how modest the benchmarks are: an r of 0.30, widely called moderate, is under 10% of shared variance.
Before concluding a relationship is weak, work through the three biases. Is either variable measured with noise — survey responses, modelled attribution, a proxy for the thing you care about? Then r is attenuated and its ceiling may be well below 1. Has the sample been filtered on either variable, to active accounts or campaigns above a spend floor? Then the range is restricted and r is biased toward zero. And a difference in r across markets can reflect spread rather than relationship; compare regression slopes instead.
Finally, resist the pull from association to action. A strong correlation between spend and revenue is what you would see if both simply rose with demand, and what you would see if spend worked; the data cannot separate them and no sample size will. The only reliable route is a design where something was assigned rather than observed: a geo test turning spend up in some markets and not others, or a causal model stating its assumptions out loud — the longer version being why test lift differs from the real world.

How to plan your marketing spend while measuring the true effect of any marketing activity on your bottom line? The answer lies in Marketing Mix Modeling (MMM).


In today’s privacy-focused era, the different attribution models create many blind spots for marketing analysts and decision makers. However MMM & Geo Tests can help.


When your advertising efforts are up and sales are increasing, that’s great news, but it doesn't necessarily mean the ads are the reason. Here are three popular tools to measure the lift of a campaign.

Correlations between spend and revenue are where every media analysis starts and where most of them stop. We build the model that separates the two. Marketing Mix Modeling