Step two · before any modelling
Can this data answer the question at all?
A fit takes minutes and hands back confident-looking numbers whether or not the design could ever have identified them. So we ask whether it could first, and it costs a second. Nothing here has been modelled — this is arithmetic on your file.
The verdict
Caution
The model will run and most of your channels will come back with numbers you can use. The ones named below will not, and they carry that mark through every screen after this one.
2 channels cannot be measured from this data at all — Retail Media and Affiliate. The rest are fine, and everything else on this page is about how wide those answers will be.
How this verdict is decided
There is no score to improve and no percentage to argue with. A caution about one channel never demotes the whole dataset, because it has somewhere better to live: that channel’s own row, and its trust grade after the fit.
Takes about two minutes, and it is the step that catches impossible assumptions before they become results.
Five questions we ask of every dataset
156 rows · 4.9× headroom
32 things to estimate
7 channels flagged
Paid Social, Paid Search, Paid Social, Programmatic Display, Paid Search, Programmatic Display and Retail Media
3 channels flagged
Affiliate, TV — Broadcast and Retail Media
Present
a demand control is mapped
No extreme weeks
nothing the outlier check flagged
Where channels moved together
- Paid Social moved with Paid Search (r=0.82)
- Paid Social moved with Programmatic Display (r=0.70)
- Paid Search moved with Programmatic Display (r=0.71)
10 things to know, each with what to do about it
Retail Media has VIF 34.0 after transformation; it is nearly a linear combination of the other regressors.
What to do: Usually the same cause as near-duplicate channels: this one is reconstructable from the others. Combine it with whichever channel it shadows, or drop a control that is standing in for it. A channel that launched partway through the window hits this too, because the baseline absorbs the period it was dark.
Coefficient of variation 0.012. Without variation there is nothing for the model to correlate with the KPI; its ROI will be driven entirely by the prior.
What to do: Nothing can be recovered from a flat budget — the model needs the spend to move to see what moves with it. Either vary the budget deliberately for a quarter, or accept that this channel’s number is your assumption reflected back.
Paid Social and Paid Search correlate at r=0.82; their individual ROIs will trade off.
What to do: Vary their budgets independently for a quarter if you can. Until then, trust the pair's combined return more than either individual number.
Two channels move closely together0.817 measured · 0.70 thresholdOpen
Paid Social and Paid Search correlate at r=0.82; their individual ROIs will trade off.
What to do: Vary their budgets independently for a quarter if you can. Until then, trust the pair's combined return more than either individual number.
Two channels move closely together0.704 measured · 0.70 thresholdOpen
Paid Social and Programmatic Display correlate at r=0.70; their individual ROIs will trade off.
What to do: Vary their budgets independently for a quarter if you can. Until then, trust the pair's combined return more than either individual number.
Two channels move closely together0.704 measured · 0.70 thresholdOpen
Paid Social and Programmatic Display correlate at r=0.70; their individual ROIs will trade off.
What to do: Vary their budgets independently for a quarter if you can. Until then, trust the pair's combined return more than either individual number.
Two channels move closely together0.706 measured · 0.70 thresholdOpen
Paid Search and Programmatic Display correlate at r=0.71; their individual ROIs will trade off.
What to do: Vary their budgets independently for a quarter if you can. Until then, trust the pair's combined return more than either individual number.
Two channels move closely together0.706 measured · 0.70 thresholdOpen
Paid Search and Programmatic Display correlate at r=0.71; their individual ROIs will trade off.
What to do: Vary their budgets independently for a quarter if you can. Until then, trust the pair's combined return more than either individual number.
It runs in 40% of weeks, in bursts rather than at the start or end of the window. The effect is identified from the handful of on/off transitions rather than from the whole period, so its interval comes back wide even when the fit itself is sound.
What to do: Nothing to fix in the data — this is a media plan, not a defect. Expect a wide range on this channel and weight it accordingly; a lift test on a single burst would pin it faster than more history would.
It was live across 37% of the period covered by this upload. Its return is estimated from that stretch alone, so it rests on far less evidence than the share of spend suggests.
What to do: Nothing to fix in the data — this is what the buy looked like. Treat the channel's return as provisional until it has a full year, and be especially wary of scaling its budget on this fit.
What we will do about it
Findings can change the model, never your numbers — we never impute, winsorise or drop a row. A change a finding calls for is only a candidate until a full fit has tested it on your own spend, and every entry says what it would cost you.
A full fit will test these on your own data before choosing
None of these is a change yet. Before fitting, a full fit hides returns we chose in copies of your own spend and tries setups built from these changes on them, side by side with your model exactly as you specified it. It uses a change only if its setup does better, and holds back from the budget plan any channel whose return it cannot find. A quick preview tests nothing and uses none of them.
One combined return for two channels bought together
To be testedraised by two channels bought togetherPaid Social + Paid SearchThese two channels were bought so closely together that the data cannot tell their effects apart, so any split between them would be a guess. We estimate one return for the pair from their combined spend, starting from an assumption that blends the two channels' own, weighted by how much each spent.
What it would cost you, if a full fit uses it
You get one number for the pair and no split within it. If you need each channel's own return, only an experiment that moves one without the other can give it to you.
A firmer starting assumption for a channel the data barely sees
To be testedraised by spend that runs in short burstsTV — BroadcastThis channel's spend barely moves, runs in short bursts or covers only part of the window, so your data holds little evidence about what it returned. We narrow its starting assumption, so a few weeks of noise cannot hand it credit that belongs to the baseline or to another channel.
What it would cost you, if a full fit uses it
This channel's number leans on the starting assumption more than on your data. Read it as an informed default, not a measurement.
A firmer starting assumption for a channel the data barely sees
To be testedraised by spend that barely movesAffiliateThis channel's spend barely moves, runs in short bursts or covers only part of the window, so your data holds little evidence about what it returned. We narrow its starting assumption, so a few weeks of noise cannot hand it credit that belongs to the baseline or to another channel.
What it would cost you, if a full fit uses it
This channel's number leans on the starting assumption more than on your data. Read it as an informed default, not a measurement.
A firmer starting assumption for a channel the data barely sees
To be testedraised by a channel that ran for only part of your dataRetail MediaThis channel's spend barely moves, runs in short bursts or covers only part of the window, so your data holds little evidence about what it returned. We narrow its starting assumption, so a few weeks of noise cannot hand it credit that belongs to the baseline or to another channel.
What it would cost you, if a full fit uses it
This channel's number leans on the starting assumption more than on your data. Read it as an informed default, not a measurement.
A shared starting assumption for two channels bought together
To be testedraised by two channels bought togetherPaid Social + Paid SearchThese two channels were bought so closely together that the data struggles to tell their effects apart. Each keeps its own return, but both start from the assumption that they return about the same, so the split between them leans on that rather than on noise.
What it would cost you, if a full fit uses it
The two returns are pulled toward each other. If one channel genuinely returns far more than the other, this setting narrows the gap between them.
An assumed diminishing-returns curve for a channel the data barely sees
To be testedraised by spend that runs in short burstsTV — BroadcastThis channel's spend barely moves, runs in short bursts or covers only part of the window, so your data cannot trace how its returns fall off as spend rises. We fix that curve at the starting assumption — half its full effect at about its typical weekly spend — and estimate only how much the channel returned.
What it would cost you, if a full fit uses it
How fast this channel runs into diminishing returns is assumed, not measured, so its number, and any budget advice built on its curve, leans on the starting assumption.
An assumed diminishing-returns curve for a channel the data barely sees
To be testedraised by spend that barely movesAffiliateThis channel's spend barely moves, runs in short bursts or covers only part of the window, so your data cannot trace how its returns fall off as spend rises. We fix that curve at the starting assumption — half its full effect at about its typical weekly spend — and estimate only how much the channel returned.
What it would cost you, if a full fit uses it
How fast this channel runs into diminishing returns is assumed, not measured, so its number, and any budget advice built on its curve, leans on the starting assumption.
An assumed diminishing-returns curve for a channel the data barely sees
To be testedraised by a channel that ran for only part of your dataRetail MediaThis channel's spend barely moves, runs in short bursts or covers only part of the window, so your data cannot trace how its returns fall off as spend rises. We fix that curve at the starting assumption — half its full effect at about its typical weekly spend — and estimate only how much the channel returned.
What it would cost you, if a full fit uses it
How fast this channel runs into diminishing returns is assumed, not measured, so its number, and any budget advice built on its curve, leans on the starting assumption.
How much each channel's spend moves about
Ups and downs are what let the model see what a channel does. Spend the same amount every week and there is nothing to learn from — the return comes back as whatever we assumed going in, however large the budget.
| Channel | Spend share | Variation | Overlap cost | Weeks with nothing spent |
|---|---|---|---|---|
| TV — Broadcast | 33.3% | 1.38 | 1.1 | 60% of weeks had no spend |
| Paid Social | 23.0% | 0.34 | 3.8 | spent every week |
| Paid Search | 19.8% | 0.44 | 6.8 | spent every week |
| Programmatic Display | 12.8% | 0.32 | 3.2 | spent every week |
| Affiliate | 6.9% | 0.01 | 2.4 | spent every week |
| Retail Media | 4.3% | 1.44 | 34.0 | 63% of weeks had no spend |
How closely your channels move together
Read a cell as: when this channel went up, did that one go up too? 1.00 means always, 0.00 means never. Anything above 0.80 and your data cannot tell the two apart. Measured after allowing for advertising that keeps working once it stops running and for the tenth million doing less than the first — checking raw spend instead is the usual reason a tool declares your data fine and then fails to separate anything.
| TV — Broadcast | 1.00 | 0.18 | 0.21 | 0.13 | -0.08 | -0.09 |
|---|---|---|---|---|---|---|
| Paid Social | 0.18 | 1.00 | 0.82 | 0.70 | 0.15 | -0.02 |
| Paid Search | 0.21 | 0.82 | 1.00 | 0.71 | 0.16 | 0.03 |
| Programmatic Display | 0.13 | 0.70 | 0.71 | 1.00 | 0.36 | -0.11 |
| Affiliate | -0.08 | 0.15 | 0.16 | 0.36 | 1.00 | 0.11 |
| Retail Media | -0.09 | -0.02 | 0.03 | -0.11 | 0.11 | 1.00 |
| TV — Broadcast | Paid Social | Paid Search | Programmatic Display | Affiliate | Retail Media |