Categories
- Channel Analytics
- Inside Discover
- Marketing Integration
- Migration
- Omniture Business
- Online Marketing
- Online Merchandising
- Search Engine Marketing
- SEO
- Site Search
- Social Media
- Testing and Targeting
- Web 2.0
- Web Analytics
Authors
- Aseem Chandra (3)
- Adam Egbert (7)
- Adam Greco (46)
- Alex Hill
- Adam Justis (2)
- Andrew Anderson (12)
- Brent Dykes (36)
- Nate Smith
- Ben Gaines (52)
- Brig Graff (5)
- Bret Gundersen (4)
- Brandon Hartness (2)
- Brian Hawkins (4)
- Brent Hieggelke (6)
- Bill Mungovan (16)
- Brandon Pulsipher (1)
- Ben Robison (8)
- Brent Watson (7)
- Cameron Cowan (4)
- Chad Greenleaf (3)
- Chad Warren (3)
- Chris Haleua
- Chris Knoch (4)
- Christopher Parkin (18)
- Christian Ridge (2)
- Customer Success (26)
- Chris Zaharias (6)
- Dave Dickson (1)
- David Humpherys (2)
- David Kirschner (5)
- Ed Hewett (19)
- Eric Hansen
- Harrison Jenkins
- Jacob Favre
- Jeremy Anderson (1)
- John Bates
- John Broady (10)
- Josh James
- Josh Kelson
- Jordan LeBaron (5)
- Jared Lees
- Jim McTiernan (2)
- Jeff Minich (9)
- Jose Santa Ana (2)
- Justin Grover (6)
- Kiran Kairab Ferrandino (8)
- Kevin Lindsay (5)
- Karl Moats
- Kevin Willeitner (4)
- Laura MacTaggart (5)
- Matt Freestone (1)
- Matt Belkin (35)
- Mikel Chertudi (12)
- Melinda Kersey
- Michael Halbrook (10)
- Michael Klein (4)
- Matt Langie (6)
- Marianne Llewellyn (2)
- Meme Rasmussen (1)
- Neil Morgan (6)
- Natalie Lacuesta Byrum (1)
- Pearce Aurigemma (31)
- Raj Sen
- Ray Pun (9)
- Richard Carey
- Roger Woods (2)
- Rhett Norton (5)
- Rich Page (1)
- Siddharth Chaudhary (2)
- Sean Gubler
- Steve Gustavson (3)
- Sid Shah (1)
- Sid Shaw
- Steve Smith
- Steve Hammond
- Tamara Gaffney (3)
- Tim Lott
- Tim Waddell (6)
- Wes Funk (4)
Pages
Recent posts
- Facebook’s IPO: The $100 Billion Question for Marketers
- Testing 303 - Advanced Optimization Paradigms - Part 2
- Tech Marketing Insights - EP5
- Standard Testing Methodology — Step 1:Question Creation
- Standard Testing Methodology — Intro
- Recovering Reservations from Visitors Who Abandon the Hotel Reservation Process
- Testing 303 - Advanced Optimization Paradigms - Part 1
- Testing 202 – 5 disciplines to get greater value from your testing program
- Testing 101 - 5 disciplines to grow your testing program
- Understanding the business value of social media
Recent comments
- Rudy Chou: Awesome article A…
- Tefal Alışveriş: My broth…
- germany travel: Lots of webs…
- rock filter test: I would li…
- James Leitess: when i run a …
- Joseph Brown: I definitely d…
- James: Is the 30 minutes vis…
- Jeferson: I love site, very …
- SEO Expert: Most Seo expert …
- SEO Expert: For myself, I wo…
Links
- DigitalAlex
- eMetrics (Jim Sterne)
- Forrester Research (John Lovett)
- Future Now’s grokdotcom
- immeria
- June Dershewitz on Web Analytics
- Lies, Damned Lies
- LunaMetrics
- Mine That Data
- Occam’s Razor
- Rich Page Ramblings
- SemAngel
- The Analytics Guru
- The Omni Man
- Web Analysis, Behavioral Targeting and Advertising
- Web Analytics World
Archives
Under the hood with “negative revenue”
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 omniturecare@omniture.com. Let me know how I can better take you “under the hood” of the Omniture Online Marketing Suite!

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