Filtering by a "JOIN" on multiple events

  • 2 April 2021
  • 3 replies

I like that we are able to use cohorts to break down new vs churned vs existing users, etc. However, I want to do something similar with one of my events.

In a simplified form, what we have is 2 types of events: 

  1. “Company Paid”
  2. “Company Created”

What I want to do is get an idea of:

  1. How many new companies were paid this month (new)
  2. How many existing companies were paid this month (existing)
  3. How many existing companies were paid last month but not this month (churn)

Getting the total number of companies paid is very easy, but I don’t see how I can break that number down by when the company’s “Company Created” event was created. Any thoughts on whether this is possible, and if so, how to do it?


Best answer by Muffaddal Qutbuddin 2 April 2021, 15:00

View original

3 replies

Userlevel 4
Badge +2

Hello @arnmishra , two ways to get the numbers.

first is using people property. Say you store the data of company created and paid. You can filter to say date within 30 days and count paid for new. And date before 30 days and count paid for existing. 

same for churn using last_paid_date filter.

Other way to get the numbers are using funnels and retention. 

so create a funnel >  company created > company paid. This can give you new paid 

for existing > you can create retention report to calculate how many were paid last month and of those how many were paid next month.

for churn you simply subtract the above two number from total, assuming there isn’t a forth case.




Hi @Muffaddal Qutbuddin ,

Thanks for the reply.

Regarding the “people property” option, is this the same as Profile Properties ( It looks like that is associated with specific users. For a bit more context, we might have 10 users as part of a single company so using the creation date of a user isn’t the same as the creation date of a company (users can be added anytime after the company was added).

Looking at a funnel, it looks like I can probably create a funnel of company created → company paid. However, a company can be paid multiple times in one month. From what I understand, a funnel only counts how many unique companies went from created → paid, do you know if theres a way to count how many total (not unique) time the company was paid in 30 days after the company was created? The “total” option might work but I believe that would only count if you went from start to end of funnel multiple times (meaning it would only count if the same company was created multiple times).

Lastly, a retention report also seems tied to specific users. So if User A for company A gets paid, and then User B for company A gets paid a month later, it doesn’t seem to know about it. Also I don’t see a good way of looking at the data over time - it shows how many people came back and got paid again 1 month or 2 month or etc later, but not how many got paid in Aug after being paid in July and then how many got paid in Sept after being paid in Aug, etc.

It’s possible that the functionality I’m looking for doesn’t exist :/ Let me know if you have any thoughts.

Userlevel 4
Badge +2

Yes, by people property I mean Profile Properties.
thanks for more context.

you can explore Mixpanel’s group addon. It allows to perform analysis on group level, in your case at company level, instead of  user level. 

So basically what I discussed above on user level apply same concept on company level. That way all users in company A will have company creation date and pay dates and you can work using that.

so something like filter users whos company was created on given date and then count number of pays.