Measure and troubleshoot

Knowing what a promotion cost you

Redemptions, discount given, incremental revenue — and the difference between the three.

Most promotions are judged on the number that flatters them. This article is about computing the number that does not.

Before you begin: the orders have to carry the promotion and campaign reference, which they do only if the promotion was live when they were placed. Retro-attributing a campaign from order dates is guesswork.

The three numbers

NumberIsComes from
RedemptionsHow many orders the promotion touchedThe promotion's counter
Discount givenWhat you handed over, in moneyThe sum of the recorded discounts
Incremental revenueThe revenue that would not have happened otherwiseAn estimate, always

Only the first two are facts. The third is the one that decides whether to run it again, and it is an estimate however you compute it — so compute it the same way every time, and be honest that it is one.

Marketing › Promotions shows the first two per promotion, and Marketing › Campaigns aggregates them. Neither can produce the third for you, because the platform does not know what the buyer would have done.

Attributing revenue honestly

Three methods, in ascending order of honesty and effort.

Total revenue of orders that redeemed. The flattering one, and near-useless. A customer who orders €4,000 of hose every month and used a 5 % code this month did not generate €4,000 of incremental revenue. They generated a €200 cost.

Uplift against the same customers' baseline. For each account that redeemed, compare the campaign period against their own preceding twelve-week average, seasonally adjusted where your business is seasonal. Sum the differences. This is workable with the data you already have and is honest enough to make decisions with.

Uplift against a holdout. Exclude a random 10 % of the target segment from the campaign. Compare the two groups over the same period. This is the only method that actually measures causation, it costs you the revenue the holdout might have produced, and it is worth doing once a year on your largest recurring campaign to calibrate how wrong method two is.

Then the arithmetic that matters:

Contribution = (incremental revenue × gross margin %) − discount given

A campaign that produced €80,000 of incremental revenue at 22 % margin and cost €24,000 in discount contributed −€6,400. It looked like a success in every report that stopped at the first number.

The redemptions that cost you most

Split redemptions by who made them, because they are not equal:

Redeeming accountVerdict
New customer, first orderThe best outcome. The discount bought a relationship
Existing customer, order clearly larger than usualWorking as intended
Existing customer, order the same size as usualPure cost. They were going to order anyway
Contract customerThe leak. See below
One account consuming a large share of the budgetCheck the per-organization redemption limit

The third row is usually the largest by count, and it is the one to attack — tighter targeting, higher thresholds, or a segment condition that excludes customers whose ordering pattern is already stable.

Promotions that cannibalise contract margin

The specific version of that leak, and it deserves its own report.

Filter the campaign's redemptions by whether the buyer resolved on a contract price list. If contract customers appear at all, each of those redemptions discounted an already-negotiated price. Multiply the discount given on those orders by nothing at all — there is no upside to net it against, because those customers were not the campaign's audience.

Two fixes, and you need both:

  • Retrospective: exclude those price lists from the promotion's scope now.
  • Structural: make open and default lists only the default scope for every new promotion, so the decision to include contract customers is one somebody makes on purpose. See Promotions vs. contract prices.

Discount depth against win rate

The most useful long-run report in this area, and it takes a quarter to build: group orders by the total discount percentage they carried, and look at order frequency and average value per band.

Most B2B companies find the curve is flat between about 5 % and 15 % — the deeper discounts bought nothing that the shallower ones did not. That flat stretch is money, it has a size, and it is the same leak that shows up in quote discount bands. See Reading the quote pipeline and, for the strategic framing, Raise order value.

Reporting hygiene

  • Count an order once. An order redeeming three promotions is one order, not three, however tempting the sum of redemptions looks.
  • Exclude cancelled orders, and decide what a return does to a redemption.
  • Watch the order-count effect. A volume incentive that turns four small monthly orders into two large ones raises order value and reduces order count. That is consolidation and it is a good outcome — label it in the dashboard before somebody reports it as a decline. See What counts as an order.
  • Use one currency. A multi-market campaign summed across currencies at today's rate is a number that changes every time you open it — Currency and time in reports.

Next