Skip to main content

I was using cohorts to define a type of user based on a user property being one of several values (call this Cohort A).  I tried to then look at the negative of that cohort using the same set of values but changing property “is” to property “is not” (call this Cohort 😎.  When I did this, it seemed that both cohorts (Cohort A + Cohort 😎 do not add up to the total number of users. In fact, there is a huge discrepancy and even when I tried to create a third cohort that represents Cohort A or Cohort B (call it Cohort C), that too does not add up to the total users for that time period.

 

However, if I use the same list of user property values within a segment and create 3 segments in a chart following the way I had defined the cohorts, I do find that Segment A + Segment B = total users. and that Segment C (which can only be Segment A and Segment 😎 is zero as expected.

 

All this said, the segments work as I would expect, but cohorts seem to be inexplicably inaccurate.

Hi Chelsea,

Thank you for reaching out and providing detailed context about the discrepancy you're observing between Cohort A, Cohort B, and the total number of users. I understand how this can be confusing, so let me clarify why this might be happening.

The key difference lies in how cohorts and segments are defined and calculated in Amplitude:

**1) Cohorts**: These are user-based and evaluate user properties over a specified date range. For example, if a user had a property value that matched the criteria for Cohort A at any point during the date range, they would be included in that cohort—even if their property value later changed to match Cohort B. This overlap can result in users being counted in both Cohort A and Cohort B, which is why the sum of the two cohorts may not equal the total number of users.

**2) Segments**: These are event-based and evaluate user properties at the time of the event. When you create segments using the same property values, the calculations are more precise and do not allow for overlap in the same way cohorts do. This is why Segment A and Segment B add up correctly to the total users, and Segment C (representing A or 😎 is zero as expected.

To further illustrate:

- A user who had a property value matching Cohort A on one day and then changed to match Cohort B on another day would be included in both cohorts. However, in segments, the user would only be counted based on their property value at the time of the event.

For more details on how cohorts are defined and behave, you can refer to our documentation on behavioral cohorts (https://amplitude.com/docs/analytics/behavioral-cohorts).

If you’d like to explore this further, I recommend:

- Reviewing the cohort definitions to ensure there’s no unintentional overlap in the criteria.
- Using segments for analyses where precise, event-based calculations are required.
- I see your organization has the Enterprise plan. In that case, if you'd like us to review the specific cohorts and segments you’ve built, you can submit a support ticket here: https://gethelp.amplitude.com/hc/en-us/requests/new. Please include links to the cohorts and segments, along with screenshots of the discrepancies you’re referencing, for a quicker resolution.

Let me know if you have additional questions or need further clarification. I’m happy to assist!

Best,

Jacenda
Amplitude Technical Support


P.S. Checkout upcoming events and user meetups on our events page.

Reply