Running a pre vs new customer revenue report

  • 9 February 2022
  • 6 replies

Userlevel 1
Badge +3


We’re trying to run a report seeing the total revenue for email from the last 30-60 days.

I’ve run it as below, but can’t figure out how to filter by customer new vs returning.

Is it a matter of creating a segment with a customer property to have that filter option?





Best answer by Dov 10 February 2022, 21:50

View original

6 replies

Userlevel 7
Badge +61

Hi @Michael,

Thank you for your question.

My recommendation is to first build a segment of these user groups, if by “new” you mean never placed an order, then I would use the definition: What somebody has done > Placed Order > Zero Times over all time. And if by returning you mean placed at least one order: What somebody has done > Placed Order > At least Once > over all time.

Optionally, if you want to include the date the profile was created, you can bake that into the segment definition as well, to limit the segment to users created before X day or between dates X and Y. Here’s an example of someone who placed an order at least once between 30-60 days ago and was created before today (I picked today’s date arbitrarily).

Once you have those segments set-up, you can simply export them directly from the “Placed Order” metric, (more instructions on how to achieve that here) which will contain all profiles in those segments with their revenue data over all time. I recommend just exporting the email address field for these profiles.

From here, if you’d like, you can add a custom property to these groups in the exported .csv file (new vs. existing) and re-upload them to Klaviyo. The reason I’m recommending segments first (rather than build the report outright) is because we’ll only track events in the reporting tool for events that take place after the property is added. So until you have those custom properties added to those profiles, you won’t be able to filter these users as you wish using the reporting tool. That’s why building the segments is handy (in it’s own right) and then subsequently re-uploading these users will allow you to use the reporting tool for these profiles moving forward.

I hope that is helpful!

Userlevel 2
Badge +7

Hey @Dov,

I was about to suggest the same but I wasn’t sure whether the segment would contain all previous purchase data or just for the chosen period. That being said, when exporting the segment, should “Historic Customer Lifetime Value” be exported along with email for this kind of a report?

Also, for repeat customers, shouldn’t the correct segment be What somebody has done > Placed Order > is greater than 1/is at least 2 > over all time.

Userlevel 1
Badge +3

Thank you so much @Dov !

In case anyone else reads this:

I created the segments, exported, reimported into Klaviyo with the custom property:

First Time

Then updated the flows relating to thank you to update these segments so if they join any segment through the welcome  series and haven’t placed an order the profile is updated to:
Customer: No

Thank you page
Customer: First Time

Repeat customer:
Customer: Repeat

Now to filter the original segments through the event page to see how much they’re bringing in. Thanks again so much!

Userlevel 1
Badge +3

Actually I must be doing something wrong in these settings, filtering by the new profile property but the value of ordered product is showing up as $0 for the whole date range..

Userlevel 7
Badge +61

Hi @NJVasic & @Michael,

Thank you both for your replies!

Hi @NJVasic! Good questions - let me jump back for a second to clarify a couple of things. First, you’re totally correct that the revenue from the profiles directly through the segment export would be over all time rather than just during that 30-60 day period. I updated my original reply to reflect that -- my mistake. The purpose of creating and exporting these segments were twofold: 1) to establish the email addresses for both “new” vs “returning” customers within that timeframe which is helpful in its own right (to know who they are). And also for purposes of later sending campaign(s) to these users or putting them through a flow 2) It’s the first required step (followed by export + re-upload) to allow Michael to begin using the filtering function in the reporting tool for “new” vs “returning” users.

While it’s not necessary for the purpose of this thread, I’m curious to better understand where your thinking is going for exporting Historical Lifetime value? 

In terms of the segment definition itself, since Michael mentioned “returning” (rather than repeat) that typically refers to someone who has purchased at least once, but of course you can adjust the segment definition to accommodate the target audience, if the intention was really “repeat” rather than returning updating Placed Order to at least twice would be the right move, as you suggested.

And @Michael, glad to hear you’ve got these profiles updated in Klaviyo with their new custom properties. Let me clarify something from the original reply (also worth noting it’s called out in our documentation under Add Group By:Note that reports only include events filtered by a profile property starting after that property was created. Even if a property was retroactively applied, if it didn’t exist on profiles at the time the event takes place then it won't appear in the report.”) In other words, we’ll only track events in the reporting tool for events that take place after the property is added. So you’ve got the first part down of getting the filter available in the reporting tool by segmenting, exporting and re-importing these users with the properties. So moving forward, as they log net-new order metrics, you’ll be able to use reporting for profiles with these properties but it won’t apply retroactively for past placed order events.

I hope that information is helpful.

Userlevel 1
Badge +3

Ohhh I see, thanks again so much for the great explanation @Dov !