Long-term success in app development goes beyond simply having users download your product. It also entails persuading them to come back. How precisely do you measure that? Growth and retention are only briefly measured when using vanity metrics like download counts, daily active users (DAU), or monthly active users (MAU). Use cohort analysis to learn more about how people spend their time in your application.
What is Cohort Analysis?
Cohort analysis is a subset of behavioral analytics that takes the data from a given eCommerce platform, web application, or online game, and rather than looking at all users as one unit, it breaks them into related groups for analysis. These related groups, or cohorts, usually share common characteristics or experiences within a defined time span.
Cohort analysis is a tool to measure user engagement over time. It helps to know whether user engagement is actually getting better over time or is only appearing to improve because of growth.
Cohort analysis proves to be valuable because it helps to separate growth metrics from engagement metrics as growth can easily mask engagement problems. In reality, the lack of activity of the old users is being hidden by the impressive growth numbers of new users, which results in concealing the lack of engagement from a small number of people.
Cohort Analysis Example
Let’s understand using cohort analysis with an example – a daily cohort of users who have launched an app first time and revisited the app in the next 10 days.
![cohort analysis retention table example spanning product and customer lifetime](https://i0.wp.com/clevertap.com/wp-content/uploads/2016/03/table1a2.png?w=640&ssl=1)
From the above retention table – Triangular chart, we can infer the following
- 1358 users launched an app on Jan 26. Day 1 retention was 31.1%, day 7 retention was 12.9%, and day 9 retention was 11.3%. So on the 7th day after using the app, 1 in 8 users who launched an app on Jan 26 were still active users on the app.
- Out of all of the new users during this time range (13,487 users), 27% of users are retained on day 1, 12.5% on day 7, and 12.1% on day 10.
Furthermore, there are two main benefits of reading the above cohort table:
- product lifetime (as depicted vertically down in the table) – comparing different cohorts at the same stage in their life cycle – we can see what % of people in a cohort are coming back to the app after 3 days and so on. The early lifetime months can be linked to the quality of your onboarding experience and the performance of the customer success team, and
- user lifetime (as depicted horizontally to the right of the table) – seeing the long-term relationship with people in any cohort – to ascertain how long people are coming back and how strong or how valuable that cohort is. This can be presumably linked to something like the quality of the product, operations, and customer support.
Whatever the evaluation key metrics you define for the business, cohort analysis lets you view how the metrics develop over the customer lifetime as well as over the product lifetime.
Cohort analysis involves looking at the groups of people, over time, and observing how their behavior changes. For instance, if we send out an email notification to 100 people, some may buy the product on day 1, less on day 2, even fewer on day 3, and so on. But, if we send another email to 100 people, after a few weeks, they’ll be buying the product on their “day 0” while the first sent email might show its prevalent lag effect on the buying decision.
Since cohorts are most commonly segmented by a time-dependent grouping, such as user acquisition or user start date, it can be used to glean a number of insights on key metrics for your business:
- Monthly revenue growth based on time of year – allows you to see if new cohorts are more or less valuable than previous cohorts
- Determines if your business gets impacted by seasonality
- How updates to your website impact user acquisition
- Marketing campaign effectiveness over time
- Customer Lifetime Value
- Customer Churn
- Customer Retention Rate
How to Perform a Cohort Analysis to Track Customer Retention Rate
Customer retention rate can be measured by using a cohort analysis in Chartio. The idea is that you’ll track the customer retention rate by grouping users by their sign up date (such as daily, weekly, or monthly, depending on your business objectives and pricing model).
To perform a cohort analysis in Chartio to track customer retention rate, there are three pieces of data needed:
- Who you are tracking
- Sign up date
- Metric value on all subsequent dates after sign up
All of this data can usually be found in an event table with a user ID and event timestamp. We’ll bring this together in an SQL query and add it to Chartio as a custom table in the data source. The assumption for this is your data source has the ability to do common table expressions (CTEs). If not, you’ll need to do this as subqueries.
To begin forming your query you’ll want to answer two questions: “Who are we tracking?” and “When did they first sign up?”.
Read Also: Social Media Analytics Strategies For Brand Growth
You might have a user table that shows you both of those items. Often it will be a user ID and signup date. If not, you can generally look at an events table and get the user ID with the minimum or MIN
event date as their signup. We’re using the Chartio Demo Data Source which runs on PostgreSQL as our example:
SELECT "Activity"."user_id" AS "User_Id",
DATE_TRUNC('day', MIN("Activity"."created_date"))::DATE AS "First_Event_Date"
FROM "public"."activity" AS "Activity"
GROUP BY "Activity"."user_id";
Next, we just select the user and their event dates to compare to their signup event.
SELECT "Activity"."user_id" AS "User_Id",
DATE_TRUNC('day', "Activity"."created_date")::DATE AS "User_Event_Date"
FROM "public"."activity" AS "Activity"
Finally, we pull the two queries together and then calculate the time between the user’s sign up date and their event date. We’ll do this in the form of a common table expression:
WITH "USER_FIRST_EVENT" as (
SELECT "Activity"."user_id" AS "User_Id",
DATE_TRUNC('day', MIN("Activity"."created_date"))::DATE AS "First_Event_Date"
FROM "public"."activity" AS "Activity"
GROUP BY "Activity"."user_id"),
"EVENT" as (SELECT "Activity"."user_id" AS "User_Id",
DATE_TRUNC('day', "Activity"."created_date")::DATE AS "User_Event_Date"
FROM "public"."activity" AS "Activity")
select "USER_FIRST_EVENT"."User_Id",
"USER_FIRST_EVENT"."First_Event_Date",
"EVENT"."User_Event_Date",
"EVENT"."User_Event_Date"- "USER_FIRST_EVENT"."First_Event_Date" as "Days_Since_Signup",
("EVENT"."User_Event_Date"- "USER_FIRST_EVENT"."First_Event_Date")/7 as "Weeks_Since_Signup"
FROM "USER_FIRST_EVENT"
JOIN "EVENT" on "USER_FIRST_EVENT"."User_Id" = "EVENT"."User_Id"
We included a calculation to determine how long it has been for each event from the signup date in both a day and week calculation. We’ll use these in the tables and charts.
Now that we’ve written our SQL query, we can move on to performing the cohort analysis in Chartio by following these steps:
![Exploration of cohort data by week](https://i0.wp.com/chartio.com/images/tutorials/cohort-analysis-retention/cohort-analysis-data-explorer.jpg?w=640&ssl=1)
- Add the above to Chartio as a custom table for that data source
- Once this custom table has been created in the schema, go to the Chartio Data Explorer.
- From the new ‘Cohort’ table add
User_ID
to ‘Measures’ and set the aggregation to Count Distinct - Add the First Event Date to ‘Dimensions’. At this point, you can cohort at the Date level or you can change the data bucketing to Week or Month to set the cohorts at higher levels of aggregation
- Add in the Weeks Since Sign Up to the ‘Dimensions’
- Run the Query and then add a Pivot Step
- The Pivot Step will pivot the Weeks Since Signup which will line up your individual weeks in a table
- Each cohort is now a row in the table, with columns indicating activity in each period after their signup; the customer retention rate can be observed from how quickly activity changes over time.
Cohort Data
In order to track how users behave over time or how the same behavior differs for different cohorts, cohort analysis helps to compare these people by the way/time they were acquired or by the retention of those users over time.
But, how to break the group of users into cohorts for cohort analysis – can be done in two ways:
- Acquisition Cohorts: divide users by when they signed up first for your product. For your app users, you might break down your cohorts by the day, the week or the month they launched an app, and thereby track daily, weekly or monthly cohorts.
In this case, by measuring the retention of these cohorts, you can determine how long people continue to use your app from their start point. - Behavioral Cohorts: divide users by the behaviors they have (or haven’t) taken in your app within a given time period. These could be any number of discrete actions that a user can perform – App Install, App Launch, App Uninstall, Transaction or Charge, or any combination of these actions/events.
In this case, a cohort can be a group of users who did certain actions within a specified timeframe – say, within the first 3 days of app use. You can then monitor how long different cohorts stay active in your app after they perform certain actions.
Let’s see how you can use both acquisition and behavioral cohorts to determine exactly what your users are doing and when they’re doing it.
Acquisition Cohorts: Finding Problem Moments in Your App
Revisiting the above daily cohort – which is an acquisition cohort.
One way to visualize this information is to chart out a retention curve, showing the retention of these cohorts over time. The chart makes incredibly easy to infer when users are leaving your product.This retention curve immediately reflects an important insight – about 75% of the users stop using the app after the 1st day. After that initial large drop, a second brisk drop occurs after 5th day – to under 12%, before the curve starts to level off after 7th day, leaving about 11% of original users still active in the app at day 10.
The above retention curve indicates that users are not getting quickly to the core value of the app, resulting in drop-offs. Hence, it’s evident to improve the onboarding experience to get the user to the core value as quickly as possible, thereby boosting the retention.
Thus, acquisition cohorts are great for identifying trends and the point when people are churning, but it’s hard to make actionable insights like – to understand why they are leaving – which requires the use of another type of cohorts, behavioral cohorts
Behavioral Cohorts: Customer Retention Analysis
A simple example of behavioral cohort can be – all users who read reviews prior to purchasing a product. This can answer interesting questions, like,
- Are the users who read reviews have a higher conversion rate than those users who don’t read reviews, or
- Are the users more engaged – longer sessions, more time in app, fewer drop-offs
An app user, after an app install and/or launch, makes hundreds of decisions and exhibit countless little behaviors that lead towards their decision to stay or go. These behaviors could be anything, like, using core feature Y but not using core feature Z, engaging only with notifications of type X, and so on.
Let’s test user’s behavior by comparing retention between below cohorts:
Both user segments had the intention to transact on your app. But one user segment chose to proceed with the checkout, the other choose to abandon your app. What you can do to reduce the shopping cart abandonment?
Cohort analysis can get answers to the questions like:
- When is the best time to re-engage with your users? When is the best time for remarketing?
- What is the rate of acquisition of new users to maintain (if not increase) your app conversion rate?
From the above retention tables, you can conclude that majority of the users who had abandoned the shopping cart did not engage with the app again, not even 1 day after the acquisition date. So, you have less than 24 hours to re-target them with the new offer and increase the chances of getting revenue.
From this data, you can develop a systematic, quantitative approach to know how users can fall in love with your app – and then make it happen again and again. Also, you can make strategies to increase your retention after ascertaining what works and what doesn’t.
The power of cohort analysis lies in the fact that, it enables not only to view which customers leave and when they leave, but also to understand why the customers leave your app – so that you can fix it. That’s how one can identify how well the users are being retained and also determine the primary factors driving the growth, engagement and revenue for the app.