How should we handle online measurement of rebates, discounts, and coupons? It’s an important question, especially for online retailers implementing SiteCatalyst. Not only do these data factor into your bottom line, but they can provide meaningful insight into your user experience. Let me begin by telling you how not to do it:

Do not do it by passing negative values in the revenue portion of the s.products string. Take a look at the following made-up examples of this all-too-common mistake:

s.products=";Nikon SB-600 Speedlight Flash for Nikon Digital SLR Cameras;1;229.99,;discount;1;-29.99"

s.products="Computers;Apple MacBook MB466LL/A 13.3-Inch Laptop;1;1349.99;event1=-49.99"

Okay, so in the first example we have a Nikon speedlight Flash retailing for $229.99, and then we have a $29.99 discount. This makes sense, right? Total revenue to the company is $200.00, and that’s what they want to report in SiteCatalyst. It’s completely logical. In the second example, they’re using a custom event to receive the rebate, and they’re reporting it as -$49.99. Their idea is to make event4 a negative number, showing the amount to subtract from revenue.

Why is this a problem? First, what happens if you ever want to report on “pre-discount” revenue for any reason? If you’ve subtracted the discount directly from your revenue numbers, you don’t have a quick and easy way to provide this data. Along those same lines, you don’t have a way to report on the total amount of discounted/rebated/returned revenue.

What should I do?

You should set up custom currency events representing the rebate amount, discount amount, etc. and pass the amount as a positive number. Here’s the first example from above handled correctly.

s.products=";Nikon SB-600 Speedlight Flash for Nikon Digital SLR Cameras;1;229.99;event2=29.99"

The second example above was on the right track; you should always use a distinct custom event to track discounts or any dollar value that isn’t exactly revenue. The correction you see here shows event2 as a positive $29.99.

Okay, but how do I report on it?

It’s a good question. After all, the whole point of using negative numbers—by subtracting directly from revenue, for instance—is to report an accurate revenue total taking discounts into consideration. If you follow the example described above, using a custom numeric event to pass the positive discount amount, then you can create this calculated metric:

[Actual Revenue] = [Revenue] – [Discount Custom Event]

Voila. And because “Discount Custom Event” (e.g., event2 in the example above) is subrelated, as is Revenue, you can pull this new calculated metric into any report that accepts conversion events (e.g., Products, Campaigns, Custom Conversion, etc.).

Believe me—the integrity of your data is worth the extra step of using a calculated metric to report on post-discount revenue. You do want data on your discounts and rebates, and you can absolutely have it. Just make sure you do it in such a way that all of your reports will be able to handle what you’re passing into them.

If you have anything to say about this (or anything else Omniture-related, for that matter), please feel free to leave a comment, and I’ll respond as quickly as I can. You can also follow me on Twitter (@OmnitureCare) or e-mail me at Let me know how I can better take you “under the hood” of the Omniture Online Marketing Suite!

James Dutton
James Dutton

Hey Ben, I'm not sure if I missed something very obvious, but it appears that with your original examples none of the integrity of the data has been lost. In both your original code example and the revised example the only potential difference seems to be in the logic you'd use to create the calculated actual revenue metric. In your example you propose using positive values for discounts (in fact this is how Omniture training sell this - according to trainers I've worked with it is described as impossible to send a negative value - which from my experience is not true). So to that point, you could in fact use negative values in your custom events and reverse the logic in your calculated metric using: [Actual Revenue] = [Revenue] + [Negative Discount Custom Event] [Actual Revenue] = 229.99 + (-29.99) [Actual Revenue] = 200.00 I would add that by using negative values in your custom events it is easier to share data with your merchandisers - who rather than seeing a report with a value of (eg) $12,345 and you having to explain this is the negative impact on revenue through the discounting you could show -$12,345. Clearly the implementation decision would be driven by how the business wants to see this data in reporting - a typical strategy used for this is in designing reports prior to the implementation process to clearly identify how data needs to be presented and what secondary analyses might be required (via classifications etc...). Please do let me know if I missed something obvious that breaks my logic? Cheers, J