Marketing attribution

How to tell if a WooCommerce coupon paid off

To tell if a WooCommerce coupon paid off, open Analytics › Coupons to get its orders and amount discounted, then filter Analytics › Orders by that coupon to get the net sales of those orders. WooCommerce stops there. Whether it paid off depends on your margin and on how many of those orders would have happened without the discount.

This guide shows where each number lives, a simple way to judge the result, the traps that make coupons look better than they are, and a free coupon ROI calculator for the arithmetic.

The free way: Analytics › Coupons

  1. In WordPress admin, go to Analytics › Coupons.
  2. Set the date range to the period the coupon ran. Under Compare to, choose Previous period if you want to see how it compares with a run before.
  3. The summary at the top shows Discounted orders and Amount discounted across all coupons.
  4. The table lists each coupon code with its Orders, Amount discounted, created and expiry dates, and type.
  5. Click Download for a CSV.

That gives you the cost side: how often the coupon was used and how much it gave away.

Getting the sales from those orders

Analytics › Coupons doesn't show revenue. For that:

  1. Go to Analytics › Orders.
  2. Set the same date range.
  3. Under Show, choose Advanced filters and add a coupon code filter for your coupon.
  4. The summary shows the orders and net sales of orders that used it.

Net sales here is after the coupon and any refunds, before tax and shipping. That's the right number to use: it's what customers actually paid for the products.

Did the coupon pay off? A simple test

A coupon pays off if the extra profit it brought in is bigger than what it cost. Two words matter there: extra and profit.

  • Extra, because some of those buyers would have bought anyway, at full price. For them, the discount is pure cost.
  • Profit, because $1,000 of extra sales at a 40% margin is $400 to set against the discount, not $1,000.

Worked example

Say you ran AUTUMN15 (15% off) for a week.

Number Value Where it comes from
Orders using the coupon 80 Analytics › Coupons
Amount discounted $1,260 Analytics › Coupons
Net sales of those orders $7,140 Analytics › Orders, filtered by coupon
Total orders that week 110 Analytics › Orders
Orders in a normal week 55 Analytics › Orders for a comparable week
Gross margin at full price 45% Your own costs

Total orders went from about 55 to 110, so the coupon brought roughly 55 extra orders. The other 25 coupon orders would probably have happened anyway, at full price.

  1. Full-price value of the coupon orders: $7,140 + $1,260 = $8,400, or $105 per order.
  2. Product cost of those orders: $8,400 × 55% = $4,620.
  3. Gross profit on the coupon orders: $7,140 − $4,620 = $2,520.
  4. Profit you'd have made anyway: 25 orders × $105 × 45% ≈ $1,181.
  5. What the coupon added: $2,520 − $1,181 ≈ $1,339 in gross profit.

If you paid for ads to promote it, subtract that too. The coupon ROI calculator does this arithmetic for you once you have the inputs.

The weak point is the baseline. "Orders in a normal week" is an estimate. Use the same week last year, or the average of the four weeks before, and say which you used. Comparing two date ranges explains how to pick a fair comparison.

Why coupons look better than they are

  • Codes leak. Once a code lands on a coupon site, it gets used by people who were already at your checkout. A coupon meant for your newsletter that's used far more often than your newsletter's click count suggests has probably leaked.
  • Pull-forward. A sale can move purchases that would have happened next month into this week. Check the two weeks after the coupon as well as the week of it.
  • Margin shrinks fast. A 20% discount on a product with a 40% margin halves the profit on each sale. How discounts eat into margins shows how many extra orders you need to break even.
  • Free shipping coupons hide their cost. The discount on shipping isn't part of net sales, but the courier still bills you.
  • Refunds arrive later. WooCommerce dates refunds on the refund date, so a coupon's net sales can drop after the period ends. Check again a few weeks later.

Coupons and order attribution together

A coupon tells you which offer was used. Order attribution tells you where the buyer came from. Together they answer the question that matters for a campaign: did the people from my email actually use the code, or did it spread elsewhere?

Tag the links in your announcement with UTM parameters (for example utm_campaign=autumn15). Then compare the coupon's order count with the orders credited to that campaign. If the coupon has far more uses than the campaign has orders, the code has travelled. The UTM tracking guide covers the tagging, and the hub on WooCommerce order attribution explains how campaigns are credited.

The quick way: ask Askshelf

Askshelf adds Analytics › Askshelf to WordPress admin. Its "coupon performance" lookup returns, for any date range, each coupon's orders, the amount discounted, and the net sales of those orders, or the same figures for one code. It reads the same Analytics data as the reports above.

Askshelfexample answer

How did the AUTUMN15 coupon do last week?

AUTUMN15 was used on 80 orders between 20 and 26 October. It gave away $1,260 in discounts, and those orders brought in $7,140 in net sales, an average of $89.25 per order.Coupon performance for AUTUMN15, 20–26 October
An example on a demo store. In your store, the numbers come from your own orders.

Askshelf doesn't calculate coupon ROI, and it can't isolate the gross profit of just the orders that used a code. It gives you the coupon's orders, discount and net sales, and the "sales summary" lookup can give you a normal week's orders for the baseline. For the margin, the "profit" lookup returns your gross margin for the same dates if Cost of Goods Sold is on and your products have costs (it leaves out shipping and payment fees). Put those into the coupon ROI calculator. More on the order attribution use case page.

What to do next time

  • Decide the baseline before the coupon runs, so you can't move the goalposts afterwards.
  • Use one code per audience (newsletter, influencer, paid ads) so each one's results stay separate.
  • Set usage limits and an expiry in the coupon settings to limit leaks.
  • Check two weeks later for refunds and pull-forward before calling it a success. For a full sale, see how to measure a sale or campaign.

Common questions

Where are coupon reports in WooCommerce?

Under Analytics › Coupons. It lists each coupon with the number of orders that used it and the amount discounted, for any date range, with a compare option and a CSV download.

Does WooCommerce calculate coupon ROI?

No. It shows orders and amount discounted per coupon, and you can filter the Orders report by coupon to see the net sales of those orders. Working out whether that made money needs your product margins and an estimate of what you'd have sold anyway.

Is net sales in WooCommerce before or after the coupon?

After. Net sales is gross sales minus refunds and coupon discounts, and it excludes tax and shipping. So the net sales of coupon orders is what customers actually paid for the products.

See how Askshelf handles this: Order attribution reports for WooCommerce