Method · 5 min read

Promotion ROI: the number depends on what you compare against

Sales went up during the promotion. That is not the question. The question is what they would have done otherwise - and since that period never happened, every answer is a comparison against something you chose.

The question it answers

Incremental means "more than what would have happened anyway". The second half of that sentence is unobservable. No sales file contains the world in which the campaign did not run.

So this analysis does the only honest thing available: it makes you pick the reference, shows you the formula before it computes, and puts the reference next to the answer everywhere the answer travels.

It then reports what was actually sold, what the reference says was expected, the difference in revenue and in margin, and - when you have mapped a campaign cost - the return on it.

Choosing the reference

Two methods, and neither is preselected:

Both formulas are printed on the screen before anything is computed, so a reader can refuse a method before seeing a number. Afterwards it is too late - the figure is already in the room.

The tool never picks a control group for you. Which products belong in it is a commercial judgement about comparability, and it is the judgement the whole result rests on.

The columns you need

What it looks like on a small file

The sample that ships with the tool has one campaign over two periods, with a control group. The two methods give two different answers on exactly the same rows:

On this file both methods end with a negative return once the campaign cost is subtracted - the promotion sold more and kept less. Which is the point: a tool that only reported the first number would have shown a campaign that worked.

Each reading is recomputed at 90%, 100% and 110% of the counterfactual, so the central figure arrives with a range instead of a false precision.

Build yours

Your own campaign, in your browser

Drop an export with a campaign column and a column telling promoted products from the rest. It all runs inside your browser: nothing is uploaded, which you can check in the Network panel while you work.

Start a monthly review

What it will not do

This is a comparison against the reference you selected. It does not prove causality. That sentence is on the screen, in the export and in the review pack, and it is the most important line of the whole analysis.

It will not choose a control group. A tool that picked the products that make the campaign look best would be choosing the conclusion.

It will not model demand. There is no elasticity, no seasonality correction and no hidden statistical model. What you see is arithmetic on the reference you named.

It will not subtract the movement of neighbouring products. Products outside the campaign are shown, with their observed movement, under their own heading - so you can see whether the rest of the range moved too. They are never deducted, and never labelled as an effect the promotion produced.

Questions

Which method should I use?

Whichever you can defend in the room. If you have genuinely comparable products that were not promoted, the control group is stronger. If you do not, the direct comparison is honest about correcting for nothing.

Can I keep both readings?

Yes. In a monthly review each method keeps its own result and its own pack section, and each section names its reference. Presenting them side by side is usually more useful than defending one.

What if the control group sold nothing in the reference period?

The method is refused, with the reason. It does not silently fall back to the other one.

Does my file leave the browser?

No. The whole calculation runs in the page, on your machine. How to verify that in two minutes.