Customer cohort and retention analysis


It would be really useful to have a function in Metabase that allows to define customer cohorts (for example based on a list of customer IDs, emails or first order date) to calculate retention rates and subsequently determine customer lifetime values.

Is anything like that planned for the near/medium term future?



+1 - this would helpful for us, too. Google Analytics is just not accurate enought…

+1 that would be great!

Is there update re:Customer cohort…?

Latest is that the graphics for showing it has come pretty close:

With respect to the calculations AFAIK there’s nothing built in. But how to do the calculations in SQL are pretty easy to google … - so with a bit of work on your end I’d guess you are 95% there.


We’re working on implementing retention/churn analysis (and related concepts such as LTV) via x-rays in the coming releases. The majority of the work will probably be done in time for 0.33, but I’m not sure if it will be fully exposed by then. If you search or GH there are a couple of issues around it with being currently the closest to a root ticket.

One thing that would be immensely helpful is if everyone who is interested in this feature would share with me the shape of data you’d like to have churn calculated on.


Cohort and churn analysis is typically visualized with the chart like in this thread. Scroll up to the top of the page to see the chart in orange.

hi @sbelak
is there any forecast when the 0.33 will be released?

1 Like

Hey @sbelak do you still need data examples. Is it best to post them here?

1 Like

Hi @vincentI Please post them here. Then they can be linked from issues if needed.

Yes. Please do.

@sbelak attached a very simple example. We pretty much have 3 tables users/subscriptions/events.
Chrun can be derived from either the subscriptions and events tables (it would have a slightly different meaning events = someone did an action on the site/ subscriptions is based on actual transactions so may not be on the same day)
Ideally, you want to be able to slice the analysis using attributes from either 3 table.

Let me know if you want more details

1 Like

as well are you looking at a way to build cohorts (subset of users)? or is it for purely churn analysis