Segmentation inconsistency

  • 24 August 2023
  • 8 replies

Badge +5

I'm trying to isolate various segment lists from each other with the goal of having different communication based on different segments.

In particular, I leave you the attached image to make you understand that there is an inconsistency between the various segments: adding up the segments engaged in the last 30 days + 31/60 days + 61/90 days, it appears that the contacts are greater than the mother segment present in tall in the picture.

At this point I think there is a contact overlap, but I can't figure out how since the segment definitions look correct.

If I did something wrong, can you explain me how to isolate these 3 segments correctly?

I need to differentiate users chronologically based on any touch point, as long as they have never placed an order.




Best answer by David To 28 August 2023, 18:50

View original

8 replies

Userlevel 6
Badge +25

Ciao Vincenzo! 


That screenshot was helpful, thank you! I’ve highlighted the segment conditions where the errors and contact overlap are most likely coming from.



Can you help me better understand what you’re trying to do? Then I can help you refine your segments more accurately…


This is what it looks like to me now, but please correct me if I’m wrong.

  1. POTENZIALI CLIENTI Ultimi 30 giorni =
    anyone who’s been active within the last 30 days AND has 0 orders (so not yet a customer, but a prospect) AND is unsuppressed
  2. POTENZIALI CLIENTI Ultimi 30/60 giorni =
    anyone who’s been inactive (0 actions taken) within the last 30 days AND has been active within the last 60 days AND is a prospect (0 orders) AND is unsuppressed
  3. POTENZIALI CLIENTI Ultimi 60/90 giorni = 
    anyone who’s been inactive within the last 60 days AND has been active within the last 90 days AND is a prospect (0 orders) AND is unsuppressed




Klaviyo Champion & Marketing Lead at ebusiness pros

Badge +5

Exactly, I would like just that, I don't care what kind of touchpoint it is, as long as the segment shows interest in the brand.

But I would have to segment by date order to understand how contacts perform over time for those who have never bought.

Userlevel 6
Badge +25

Okay, that’s helpful to know. Before I make specific recommendations to revise your segment conditions, how are you intending to use these segments?


Are you planning to send campaigns, or trigger a flow with each segment? Maybe instead you’re just wanting to do analysis of your audience based on these segments?

Badge +5

I need to know this to analyze Breakdown auditions during email campaigns. That's why I need to isolate them. I don't want there to be overlaps between segments. 

Userlevel 7
Badge +60

Hey @Vincenzo Cassese,

In addition to the great call out @ebusiness pros made, I believe the overlap in your segments stems from an and/or condition confusion from the negative conditions. 

Keep in mind that OR conditions are inclusive, meaning that so long as someone meets one of the condition they would meet the qualification. 

For example, users could qualify for both the POTENZIALI CLIENTI Ultimi 30/60 and POTENZIALI CLIENTI Ultimi 60/90 giorni segments if they opened emails in the last 30 and 60 days but never clicked into the emails. Because this user may have opened the emails, but never clicked into them, this means they would qualify for both segments for any of those negative conditions. I.E. not clicking them, not triggering the viewed product event, etc. 

When using negative conditions, you’ll want to use the AND connector as mentioned and called out in our AND vs. OR reference Help Center article:

When it comes to negative statements, remember that AND requires every condition to evaluate as true, whereas with OR, only one must be true.

For instance, if you want to create a flow filter that excludes those who live in the USA and Canada, you may think you would use Properties about someone and say Country doesn’t equal USA OR Country doesn’t equal Canada. However, the OR connector means that someone can live in Canada (and not the United States) and still go through this flow, since only one of these conditions must be true. To exclude people in both countries, use the AND joiner.

I hope this helps!


Userlevel 6
Badge +25

Hi @Vincenzo Cassese,


Thanks for clarifying what you’re attempting to do. @David To pointed out an important flaw in the logic of your segments. 


The best thing you can do is simplify the logic of the segments. The more conditions you have joined with AND conditions, the more strict that logic will be, and you’ll end up with smaller and smaller groups of people qualifying for those segments. In this case, having such a complex segment definition is removing people that you do want to have in the segment.


Since your primary intent is analysis, here’s what I recommend you do: create 2 groups of segments, and then compare the number of people in spreadsheet where you can subtract profiles based on the time period you’re evaluating.


Group 1 will track people’s email engagement

You would create segments for “Ultimi 30 giorni” “Ultimi 60 giorni” and “Ultimi 90 giorni” that focus only on what someone has done.

Limit the “active” conditions to 3 events. I recommend you use this segment definition:

  • “Opened Email at least once in the last X days” OR “Clicked Email at least once in the last __ days” OR “Checkout Started at least once in the last __ days”
  • AND “Placed Order 0 times over all time”
  • AND “is not suppressed”


Group 2 will track people’s shopping actions

Next, you would create segments to evaluate how recently someone has been shopping, so they might be called “acquisti recenti ultimi 30 giorni” “acquisti recenti ultimi 60 giorni” and “acquisti recenti ultimi 90 giorni”


I recommend this segment definition: 

  • “Checkout Started at least once between __ and __ days ago” OR “Added to Cart at least once between __ and __ days ago” OR “Viewed Product at least once between __ and __ days ago”
  • AND “Placed Order 0 times over all time”
  • AND “is not suppressed”


It takes a little manual effort, but then you can make a spreadsheet where you can compare the segments of people who are engaging with emails within the last 30, 60, 90 days with the segments of people who have taken shopping actions within the last 30, 60, 90 days. That could help you reduce the overlap...


I hope this helps!



Badge +5

In fact I had this doubt, but you opened my mind.

But at this point I would like to know how I could segment all users chronologically based on any touchpoint?

Userlevel 6
Badge +25

@Vincenzo Cassese if you want to examine all users in a given period of time, based on any touchpoint, the best route is to create one segment per event you’re analyzing. Then you’d use a spreadsheet to compare the different segments.


So for example, you’d separate the events across different segments like this:

Potenziali Clienti: Checkout Started

  • “Checkout Started at least once [specify time period]”
  • AND “Placed Order 0 times over all time”
  • AND “is not suppressed”

Potenziali Clienti: Viewed Product

  • “Viewed Product at least once [specify time period]”
  • AND “Placed Order 0 times over all time”
  • AND “is not suppressed”


You’d repeat that process as needed to get the specific people who performed each action within the last 30 days, 31-60 days, and 61-90 days…