Segment Customers by Average Browse Value

  • 8 November 2022
  • 2 replies

Badge +1

We’re attempting to categorize our shoppers into buckets, such a discount shopper, high value customer, etc.


Our Klaviyio implementation receives events via Segment, which is embedded in our custom ecommerce platform. We want to use our product_viewed event, which has a supporting price attribute, to accomplish this task. We’d like to keep a running average of price across each of these product viewed events per profile and then associate these averages with various buckets, as mentioned above.


Are there any recommend ways of achieving this? We have about 2 million profiles we’re trying to keep up to date.

  • We’ve considered running these calculations in our events database and running a script to update these averages as a custom attribute through the identify API, but the throughput is too low at 700 calls/min. By the time we update all our customers, that data is essentially out of date. We want more of a real-time view.
  • Web feeds are too small to hold the data, it seems. So we have ruled that out as well.
  • The logic for creating segments in Klaviyo does not appear to support calculations across events, so this does not seem to be an option either


Any help is appreciated. 



Best answer by Brian Turcotte 9 November 2022, 21:38

View original

2 replies

Userlevel 7
Badge +36

Hi @JustinN and welcome to the Community!


There are a few different ways you could address this use case. If you’re not entirely set on how you want to target high value/discount shoppers, you could segment your customers by AOV (Average Order Value) or CLV (Customer Lifetime Value). The AOV option would probably be closer to what you’re trying to achieve, as you could segment customers who’s AOV is above or below a certain number (or your store’s AOV), however this metric would require the customers to actually place the order, not just view the product. This method is detailed in this Help Center Article:

How to segment using average order value (AOV)


Segmenting by CLV would work similarly except instead of Average Order Value, the customers would be divided by the amount of money that they are predicted to spend at your store over time:

How to segment by customer lifetime value (CLV)


While AOV and CLV are the only metrics that will automatically update within segmentation, you could also use the workaround discussed in this Community thread to segment profiles based on the price range of products that they view (but they just won’t be averaged):


I hope this helps, and thanks for using the Community!


- Brian

Badge +1

Thank you @Brian Turcotte for the helpful reply