Cohort analysis to measure retention

In the Retention Analysis table down below, I’d like to count in columns “Matches 1”, “Matches 2” and futures matches… how many emails (in %) are re-registering consecutively for the next match/date. You can have new entrants in “Matches 1”, “Matches 2” .

So I’m having trouble to come up with the right formulas for columns: “Matches 1”, “Matches 2” and “Matches 1”, “Matches 2”.

Does anyone have any idea? Does it make sense?


  • Registration table is a directory of people that we match with each other.
  • We organise different rounds (Match 1, Match 2,…).
  • People need to register for every round.

bonjour @Jeremy_Corman ,

it is possible and goes like this:

  • you first count the emails matching each date (6 emails, 4 emails etc)
  • second you create a Rowindex
  • third you take the last number of each range

this works in this context with one email per row and no blanks. Coda is not yet ready for a substantial previousRow logic, we offer work arounds until the Coda team solves this (and they will, believe me).

thisTable.Filter([Match date].Contains(thisRow.[Match date])).Count()

second you create the RowIndex

third you use the rowindex to show the lastest number that corresponds in your case with the running total.
thisTable.Filter([Match date].Contains(thisRow.[Match date])).Last().RowIndex

this article could be useful to you when you deal more often with this kind of issues:

bien à toi, Christiaan

Hey @Christiaan_Huizer,

Thanks for this!

I think we’re halfway. In a sense that I’m trying to figure out how many unique users are registering continuously for the next batch.

Let’s say we have only 2 users in total that register for the first time on Match 1, they both register on 2/14/2021 then again 2/21/2021 but they do not register on 2/24/2021. In the Match 1 column, I should see something like:

  • 100%
  • 100%
  • 0%

In Match 2, let’s say we have 4 old users in total but only 2 newly acquired users who register for the first time. They both register on 2/14/2021 then on 2/21/2021 only 1 of the 2 new users register but none of them register for 2/24/2021. I should see something like:

  • 100%
  • 50%
  • 0%

Does it make sense?

The idea is that I would like to be able to spot if we’re improving retention as we are organising new matches (and shipping features) over time. Answering the question “a user who has registered for MatchX, does he keep registering for MatchX+1, MatchX+2, etc.?”. If there’s a better way to analyze this kind of trends I’m totally up for it. Maybe I’m not looking at the right place.

To give you some background and since I’ve noticed you speak French you can have a look to the project right here: It’s a nonprofit making introductions (similar to We’re running on Webflow + Zapier + Coda. The plan is also to make it open source and well documented.

Hi @Jeremy_Corman ,

what you want to know is if the the participants do come back and if so, how often (and maybe for what kind of meeting). Let us assume we use the email address as a unique identifier, we then should tell per email address how often it appears. i apply a variation on the previous formula, this time with email address and this reads as follows.


numbers are good for stats, so let’s have a look at dates, these are also numbers:

thisTable.Filter([E-mail].Contains(thisRow.[E-mail])).[Match date]

The other thing is maybe you want to know the time between each RDV, I used this formula:

thisRow.dates.Nth(CurrentValue+1) - thisRow.dates.Nth(CurrentValue)

With this data in our table and with a different view, maybe you have something of use:

In the suggested approach you can count how many times somebody returned and also within how many days. If you have somebody returning every session, than maybe that is not so good :wink:

I am not sure if this is the way to go for you, but this would be how I would look at my participants.

Let me know how this feels for you, best Christiaan

1 Like

It’s awesome @Christiaan_Huizer !

It’s a different idea than I had in mind but still really relevant and providing new insights. Thank you a lot for that !