Purchases to Date – Part I [SiteCatalyst]
Website visits don’t occur in a vacuum. People who are on your site today may or may not have been there in the past and if they have been there, some have purchased items and some have not. But how do you know if the current reports you are looking at in SiteCatalyst reflect those who have purchased in the past or not? How do you look at SiteCatalyst reports by how much they have purchased in the past? Having this context can greatly improve the analysis you are doing so in this post, I will share some techniques which allow you to easily segment your visitors by how much they have spent in the past…
Why Do This?
Before diving into how to do this, let’s explore the rationale. Imagine that you are a retailer selling Electronics, Clothing and Furniture. One question you might ask is “I wonder how much money all of the people who are on my site today have spent in the past?” Wouldn’t it be cool to see that 25% of the people who bought something today had purchased $500 or more in prior visits? Do people who have purchased more than $700 in the past convert at higher rates than those who have only purchased $300? Do people who have bought $400 or more in Electronics tend to only buy and look at Electronics products? As you can see, there are an endless number of analytics questions that can be studied once you know how much money current visitors have previously spent.
Surprisingly, however, there is no easy way to see this in SiteCatalyst. One way to do this is to create Segments. However, since there are so many segments that could be built, this is not always an easy option. To answer the questions above, you’d have to create different segments for each dollar amount and product category (i.e. people who have spent $100, $200, $500, etc…). Plus, you’d have to pull the data using DataWarehouse or ASI. Of course, this becomes much easier in SiteCatalyst v15 (if you are lucky enough to have access to it!), but it still requires a lot of segments to be built. Therefore, I will share a different approach that you can consider to accomplish this using a Counter eVar. As a quick refresher, a Counter eVar is a type of eVar that you increment as needed and retains a numeric value for each website visitor. This counter can be incremented by “1” each time it is set, or it can be incremented by any other number as needed. In past posts, I have described using Counter eVars to track # of Pages Viewed and Ben Gaines described how to use Counter eVars to score visitors. If you want to learn more about Counter eVars, please review this old blog post.
The Solution
With the set-up and refresher out of the way, let’s dig in. As mentioned above, in this scenario, we are a retailer selling three main product categories and want to see how much money each visitor has spent prior to the current visit. To do this, in addition to setting the Products string during the purchase event, we would set a Counter eVar equal to the amount that is being purchased like this:
s.events=”purchase”
s.products=”;SKU111;1;300.00,;SKU222;1;400.00,;SKU333;1;200.00”
s.eVar40=”+900″
Notice that we have added up the purchase amount and passed it to a new Counter eVar40. In the above example, if the current visitor hadn’t previously visited the site, the value in his/her Counter eVar after this purchase would be $900. Since Counter eVars don’t have a notion of currency, the value that will be stored in the Counter eVar report in this case would be “900.00” (I would suggest that you round numbers to the nearest dollar since having decimals will make applying SAINT Classifications difficult). Keep in mind that you should set the Counter eVar to be Most Recent (Last) Allocation and set expiration to “Never” (or something like 90 days) in the Admin Console. That is all of that we have to do from an implementation standpoint.
So now let’s see how we use this. If the above visitor comes back to the website next week and adds a few products to the shopping cart and we pause time for a second and were to look at the resulting SiteCatalyst report, we would see something like this:
As shown here, we can now answer the question of how much money visitors had spent in the past at the time they added items to the shopping cart today. In this case, it looks like about half (49%) of people adding items to the cart today had not purchased previously. The visitor mentioned above would fall into row five in this report as part of the 1.38% of people who had purchased $900 in a previous visit. The same principle would apply to Orders and Revenue, so you could see a report like this:
When you extrapolate this principle by thousands of website visitors, you can see some interesting trends about what percent of website visitors transacting today had purchased in the past and how much they had spent. Next we can make this report more readable by applying SAINT Classifications to the Counter eVar to bucket the dollar amounts spent into logical groupings:
Now we have a new report that was previously unavailable! Pretty cool, huh?
In addition, if we wanted to take things to the next level, we could break this report down by Products to see which Products made up the Revenue in past visits:
Final Thoughts
So that is one way to see how much visitors on your site have purchased previously so you can add that to your existing web analyses. Next week, I will continue with “Part II” of this topic and go into some additional ways you can apply this concept so stay tuned…Thanks!
Excellent article Adam.
I do something different though. I usually have an eVar that’s tied to a unique identifier of the customer (for example: an account number or ID).
I can then upload through SAINT something as simple as the total previous spent amount or something more complex such as an RFM score (which to those who don’t know, is a score based on Recency, Frequency and Monetary value of the customer’s previous purchase history).
Adam –
Thanks so much for this write-up! I was just lamenting the other day about not having a report like this in SC, being able to see purchase behavior at a customer level, instead of daily/weekly/monthly aggregate.
Do you think this concept would make sense, except setting another eVar to Visit/Purchase expiration? If I’m thinking about it correctly, that would give a histogram of your revenue for each purchase (as opposed to lifetime customer value…)
Kamal,
Thanks for the note. That is a good idea as well. Obviously it takes a bit more work due to generating the file and importing it which you don’t have to do with the counter eVar.
However, the one potential downside I could see with your method is that SAINT is retroactive so if someone had purchased $500 on June 1st and then $1,000 on July 1st, if you looked at your Customer ID classification after July 1st, but using a date range of June, it would look like the customer had purchased $1,500 in June. In fact, the customer in June had only purchased $500, but since SAINT is retroactive, going back in time would show ALL purchases. You can get around this by using Date-enabled SAINT classifications, but those are tricky.
Using my method avoids this problem as the Counter eVar will show the correct purchased amounts for each date…Just something to consider…
Thanks!
Adam
Randy,
Sure! You can always set multiple eVars with different expiration periods. Doing that would allow you to compare lifetime purchase amounts by Visit or “At time of Purchase” amounts…
Adam
Hi Adam,
A similar issue and solution was raised a few months back by Justin Cutroni but referring to Google Analytics instead of SiteCatalyst. At the time I proposed an alternative solution which works just as well with SiteCatalyst.
My issue with using a cookie solution to capture previous purchases (eVar or Visitor custom variable) is that this breaks as soon as the visitor deletes their cookies or uses a different device. My recommendation is to capture this previous purchase behaviour when the visitor logs in, passing the parameters to a custom variable although not sure if best as a eVar or s.prop for SiteCatalyst.
This is based on the logic that people who have purchased previously have created an account and will log in again before they purchase. Companies already extract the visitor name, they should be able to also access the number of previous purchases and previous purchase value. Details can be found at http://www.l3analytics.com/2011/06/15/tracking-repeat-customers-in-google-analytics/.
Cheers
Peter
Peter,
That is a great suggestion! While many sites don’t have a login, if they do, passing purchases to date tied to that login ID is a great way to do it. I would pass the value to an eVar (with “Never” expiration) so you could see other Success events tied to it and simply overwrite it each time the visitor logs-in. for those without a Login, my Counter eVar solution is probably the closest you can come (not much can be done about cookie deletion!). Thanks!
Adam
[…] por ello que os propongo este artículo para saber como podemos investigar esto en SiteCatalyst: “Purchases to Date – Part I” y “Purchases to Date – Part II” de Adam Greco.Y, para acabar, os presento unas interesentes […]