How should we han­dle online mea­sure­ment of rebates, dis­counts, and coupons? It’s an impor­tant ques­tion, espe­cially for online retail­ers imple­ment­ing Site­Cat­a­lyst. Not only do these data fac­tor into your bot­tom line, but they can pro­vide mean­ing­ful insight into your user expe­ri­ence. Let me begin by telling you how not to do it:

Do not do it by pass­ing neg­a­tive val­ues in the rev­enue por­tion of the s.products string. Take a look at the fol­low­ing made-up exam­ples 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 exam­ple we have a Nikon speed­light Flash retail­ing for $229.99, and then we have a $29.99 dis­count. This makes sense, right? Total rev­enue to the com­pany is $200.00, and that’s what they want to report in Site­Cat­a­lyst. It’s com­pletely log­i­cal. In the sec­ond exam­ple, they’re using a cus­tom event to receive the rebate, and they’re report­ing it as -$49.99. Their idea is to make event4 a neg­a­tive num­ber, show­ing the amount to sub­tract from revenue.

Why is this a prob­lem? First, what hap­pens if you ever want to report on “pre-discount” rev­enue for any rea­son? If you’ve sub­tracted the dis­count directly from your rev­enue num­bers, you don’t have a quick and easy way to pro­vide 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 cus­tom cur­rency events rep­re­sent­ing the rebate amount, dis­count amount, etc. and pass the amount as a pos­i­tive num­ber. Here’s the first exam­ple from above han­dled correctly.

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

The sec­ond exam­ple above was on the right track; you should always use a dis­tinct cus­tom event to track dis­counts or any dol­lar value that isn’t exactly rev­enue. The cor­rec­tion you see here shows event2 as a pos­i­tive $29.99.

Okay, but how do I report on it?

It’s a good ques­tion. After all, the whole point of using neg­a­tive numbers—by sub­tract­ing directly from rev­enue, for instance—is to report an accu­rate rev­enue total tak­ing dis­counts into con­sid­er­a­tion. If you fol­low the exam­ple described above, using a cus­tom numeric event to pass the pos­i­tive dis­count amount, then you can cre­ate this cal­cu­lated met­ric:

[Actual Rev­enue] = [Rev­enue] — [Dis­count Cus­tom Event]

Voila. And because “Dis­count Cus­tom Event” (e.g., event2 in the exam­ple above) is sub­re­lated, as is Rev­enue, you can pull this new cal­cu­lated met­ric into any report that accepts con­ver­sion events (e.g., Prod­ucts, Cam­paigns, Cus­tom Con­ver­sion, etc.).

Believe me—the integrity of your data is worth the extra step of using a cal­cu­lated met­ric to report on post-discount rev­enue. You do want data on your dis­counts 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 han­dle what you’re pass­ing into them.

If you have any­thing to say about this (or any­thing else Omniture-related, for that mat­ter), please feel free to leave a com­ment, and I’ll respond as quickly as I can. You can also fol­low me on Twit­ter (@OmnitureCare) or e-mail me at omniturecare@​omniture.​com. Let me know how I can bet­ter take you “under the hood” of the Omni­ture Online Mar­ket­ing 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