Understanding the Google Analytics Cohort Report

Google Analytics Cohort Report

A very common data analysis technique is called Cohort Analysis.

A Cohort is simply a segment of users which is based on a date. For example, a cohort could be all users based on their Acquisition Date (in Google Analytics this is really the Date of First Session).

Another cohort might be all users that completed their first transaction during a specific time period. This is a very common cohort used in ecommerce businesses. You’ll commonly hear ecommerce companies talk about the performance of new customers acquired during the holiday shopping season. This is simply a cohort. It’s all customers whose first transaction occurred between thanksgiving and Christmas (or some day before Christmas).

I’ve written about cohorts before. But to be honest, a lot of other analytics tools have been hard on Google Analytics for it’s lack Cohort functionality – and that was well deserved! For a long time the only way to do cohort analysis in Google Analytics was via segmentation – but that was really a hack.

Now Google Analytics has a real Cohort report that makes it much easier to perform cohort analysis.

Explaining the Cohort report

Let’s look at the various parts of the Cohort report. There are three main sections of the report: the report settings, the data over time graph and the tabular data.

There are three parts to the Cohort report.

[Click to enlarge] There are three parts to the Cohort report.

Now let’s talk about how to configure a Cohort report.

There are four main choices that you need to make when creating a Cohort report.

Cohort Type: Again, a cohort is segment based on a date. The Cohort Type is where you specify which date you want Google Analytics to use to create the cohort. Right now you probably noticed there is just one option here – Acquisition Date. This dimension is the date that the user first visited your site or used your app. It’s basically the Date of First Session.

I know – you’re probably all groaning that there is only one option. Me too! But stay tuned :)

Cohort Size: The cohort size is the time window that you want to use when looking at the Cohort type. So, choosing a day would mean “I want to see all users that have the same acquisition day.”

If you choose a Cohort Size of a week then it means “I want to see users whose acquisition date was within the same seven day period.”

Metric: This is the actual data that you will see in the report. There are aggregated metrics, like pageviews, and there are a number of per-user metrics, like sessions and revenue.

Remember, the analysis technique is to look at a specific metric for a cohort (a segment!) and see how that metric performs over time. The idea is to see if there are any dramatic changes to the metric between the different cohorts.

Date Range: This is the date range used to construct the cohort. When Google Analytics builds a cohort it uses the Date Range to evaluate the date specified in the cohort type – in this case Acquisition Date.

If I choose a Cohort Date Range of Last 7 days, and today is February 6, Google Analytics will look from Jan 30 to Feb 6 and align the data based on each user’s Acquisition Date. Here’s how Google Analytics would create the various ‘Days’ of data based on a user Acquisition date of January 30.

Day 0 = Jan 30
Day 1 = Jan 31
Day 2 = Feb 01
Day 3 = Feb 02
Day 4 = Feb 03
Day 5 = Feb 04
Day 6 = Feb 05
Day 7 = Feb 06

How Google Analytics creates Cohorts based on date.

How Google Analytics creates Cohorts based on date.

And here’s how the ‘day’ data would break down for each cohort in the data table. Notice how each cell of data is for a different group of users on a different day?:

Daily data by cohort

[Click to enlarge] Daily data by cohort

Remember, we’re talking about days here because we chose the Cohort Size to be Day. If we had chosen Week we would have seen Weeks in the graph; in that case, a week would be a 7 day period starting from yesterday backwards.

You’ll also notice that this time range is also represented in the tabular data.

NOTE: You will ALWAYS see 12 columns of data in this data table. It does not matter if you choose a cohort size of day, week or month. There will always be 12 columns. Why?

Most people will assume that if you choose a daily cohort for a 30 day time period you would see 30 columns and 30 rows, one for each cohort. But we found that most people don’t look at every single combination. For example, there are very little insights to be gained for the 17th day cohort 22 days from their initial visit.

However, if you do need to do that type of analysis it is possible to switch to a larger cohort size, like week, to observe what happened.

The amount of data in the cohort report depends on the cohort size and the date range that you choose.

When you choose a daily cohort (cohort size = by day) then you are limited to a 30 day lookback window.

When you choose a weekly cohort (cohort size = by week) then you are limited to a 12-week lookback window.

When you choose a monthly cohort (cohort size = by month) then you are limited to a 3-month lookback window.

Cohort Analysis Workflow

Ok, now that we’ve talked about the parts of a Cohort report, let’s look at a common workflow. Let’s say I’m a blogger (or publisher) and I want to understand the behavior of my weekly active users.

From a business perspective, I want people to come back to my site (or app!) very often. Knowing how many people are active within a week is really useful.

First I choose my Cohort Type – Acquisition Date because I can’t do anything else right now :)

Next, because I publish a lot of content, I want to set Cohort Size to daily. Now, for the metric, I am going to choose User Retention. This is the percentage of users that returned to my site (or app!) on a given day.

Finally, I’m going to set the date range to Last 7 days.

Now I have a report to look at!

To analyze this data I’m going to skip to the tabular data under the time trend.

Each row of data represents a different Cohort. I chose a daily Cohort, so each row represents a day. There will be 8 rows of data because my date range was 7 days and the EIGHTH row is the All Sessions data.

The tabular data shows the retention rate for each cohort for the past 7 days. To analyze the data I’m looking for any cells in the table that are a dark color. Or you can just look at the actual numbers to identify numbers that are abnormally high. But I’m lazy, so I’m just going to look at the color.

Here, in this report, I can see that users who first visited the site on Jan 27 returned at a much higher rate one day after their initial visit – much higher than all the other cohorts.

Analyzing the data in a Google Analytics Cohort report.

[Click to enlarge] Analyzing the data in a Google Analytics Cohort report.

What happened to these users? Why is their behavior different? Great question!

You need to add some of your own business context to this data as you scan the table. Think about your marketing activities. Were you running any specific campaigns that might have impacted the date?

It may be that you have no idea why this happened. Have no fear – Segmentation to the rescue!

Segmenting the Cohort Report

One thing that I really like about the new Cohort report is the ability to segment the data. You can apply up to four segments to this report. Each segment will create a new table of data below the “All Sessions” table.

Remember, a cohort is just a segment based on a date. So when you apply a standard GA segment you’re introducing another layer of segmentation. Here’s what the data would look like if I segment by Mobile and Tablet Traffic.

Applying a segment to the Google Analytics Cohort report.

[Click to enlarge] Applying a segment to the Google Analytics Cohort report.

To analyze the data I like to compare the data from each segment to the All Sessions data. I’m looking for any segmented cohorts that perform differently than all of the sessions.

I also recommend segmenting by traffic source or specific campaign. This is especially important given that the only Cohort Type is currently Acquisition Date.

Which Cohorts should you choose?

Hopefully by now you have a good idea of how this report works and how you can use it. You’ve probably noticed that this is not something that you will need to use every day. Let’s look at a few common cohorts based on different business models, that you can create.

Remember, we’re a bit limited right now due to a singular cohort type – acquisition based cohorts.


There are some really cool ecommerce-specific metrics that we can analyze with the Cohorts report. Things like Revenue per User, Transactions per User and total Revenue.

The key here is to remember that the cohort will be based on the date the customer first visited the site or app.

Also remember the granularity of the cohort and your customer buying cycle.

Analyzing customers who purchase expensive items, that are purchased less frequently, over a 7 day date range, will not yield many insights. Try switching to a weekly cohort over 10+ weeks.

Weekly Cohort, User revenue, last 12 weeks
Weekly Cohort, Transactions per User, last 12 weeks

If your customers purchase less expensive items, then they might purchase more frequently. Try switching to a daily cohort over 30 days.

Daily Cohort, User revenue, last 30 days
Daily Cohort, Transactions per User, last 30 days

Try adding some product segmentation. Here I added a segment based on a specific product and found that the revenue per users spiked 5 days after the first visit.

Looking at a single segment in the Google Analytics Cohort report.

[Click to enlarge] Looking at a single segment in the Google Analytics Cohort report.

Also, try applying a segment for user-based revenue. Look at high-value customers and lower-value customer. How does their behavior, over time, change based on the acquisition date?

In App Purchases

This is one area where the cohorts report will really shine. This is a FANTASTIC way to understand user behavior after they initially launch your app for the first time.

The in app purchase model is very different than traditional ecommerce – In app purchases are MUCH smaller and usually very frequent. I would look at cohorts like:

Daily Cohort, User revenue, last 7/14/30 days
Daily Cohort, Transactions per User, last 7/14/30 days

I would also look at user-engagement cohorts for those that do NOT purchase. It will help me understand if users are actually using the app. Create the following cohorts:

Daily Cohort, Sessions per Users, last 7/14/30 days
Daily Cohort, Session Duration per User, last 7/14/30 days

Then apply a segment of Revenue per User = 0:

Publishers (Desktop & Mobile)

For publishing I want to better understand user engagement over time. Luckily there are a number of metrics that we can use when building cohorts. Try the following:

Daily Cohort, Sessions per User, last 7/14/30 days
Daily Cohort, User Retention, last 7/14/30 days
Daily Cohort, Pageviews per User, last 7/14/30 days
Daily Cohort, Sessions Duration per User, last 7/14/30 days

If you have revenue data in Google Analytics, from AdSense or some other calculation, I would suggest looking at cohorts similar to in-app purchase.

Also keep in mind your publishing schedule. If you’re the New York Times or Wall Street Journal you publish a lot of content every day. A 7-day date range is very helpful. But if you’re a blogger that only publishes twice a month, you might want to look at a 21 or 30 day date range.

Lead Gen

Similar to the previous items, your lead gen cohorts will really depend on how long it normally takes to get a lead. If you’re selling something expensive, look at a weekly cohort over a long time period. If you’re selling something less-expensive, look at daily cohort over a shorter time period.

One of the challenges here is that there is no metric for a single goal conversion. You could use the metric Goal Completions, but that looks at ALL your configured goals, and I’m assuming that most of you have more than one goal configured.

So your best bet for lead gen is to look at some engagement metrics. Look for cohorts that are showing lots of engagement based on time and sessions per user. This may indicate
A Final Tip

Hopefully this clears up why you should do Cohort analysis and how to do it with Google Analytics.

Here’s one more tip.

Use Shortcuts to save your specific cohort reports. This is a HUGE timesaver! You probably noticed that you need to configure the Cohorts report. If you look at a cohorts report often take the time to save your version using a shortcut. Then you can access it with one click in Google Analytics.

Create a shortcut to make it easier to access your Cohort reports.

[Click to enlarge] Create a shortcut to make it easier to access your Cohort reports.

Cohort analysis is a useful way to understand how groups of users perform based on a common date attribute. I hope you will try cohort analysis and found this post useful.

Be Sociable, Share!

    Like this post? Sign up to get posts delivered to your inbox.


    1. says

      Great post Justin. Was waiting for this sort of post before I delved in a bit deeper.

      For lead gen sites, it’s possible to segment by goal type first and then view the cohort report?

      In other words, create a segment of conversions who completed a quote request enquiry (goal 4) – then view cohort to see when most returned??

    2. Michael says

      Thank you very much for this in-depth review, Justin!

      One question came to my mind regarding the cohort feature in combination with segmentation, maybe you can help me with that:

      If I choose e.g. only PPC traffic as a segment, will the cohort be based on “Was first acquired by PPC, then came back through any channel.” or will it be based on “Was first acquired by PPC, then came back only through PPC”.

      This would be really interesting in order to calculate Customer Lifetime Value for different channels/campaigns/etc.

      Thank you very much in advance,

    3. says

      Hi Justin,

      Great post and like you, really been looking forward to this feature, Even more looking forward to Cohort Type, numerous issues with grouping based on a new cookie.

      Can you clarify though on segmentation. If you apply an organic search segment, does this apply to the Cohort only, the subsequent sessions only or both? I need to test but assume both, meaning a reduced Cohort size and only some future sessions included – could be easy to misinterpret.



    4. Pavel says

      Hello Justin!
      Thank you for your article. Is the first acquisition date of 26th in “Analyzing the data in a Google Analytics Cohort report” screenshot correct? I’m under impression from your previous explanation that correct first acquisition date for 17.01% is 27th.

    5. David says

      Hi Justin,

      In the picture before the “Segmenting the Cohort Report” section, when you say that we have a 17,01% of retention rate for users acquired on Jan 26 and came back on 27. Is not users acquired on Jan 27 and came back on 28 of January?

      I am a bit confused about this, and perhaps I think there’s a little mistake here.

      Anyway, as always. great post and really useful explanation ;)

      Many thanks,

    6. says

      Hi Justin.
      Thanks for the excellent article.

      I have a doubt:
      – If I create a segment considering only users that purchased: Transactions > 0
      – I chose User Retention as Metric for the last 30 days.
      – On day 0 I saw 100% (1000 users) of users that purchased.
      – On day 3: 20%. (200 users).

      That means that 20% of the users that purchased on the first day, return to the website and make another purchase 3 days after their first acquisition?

      Thanks in advance.

    7. says

      Great post! Great feature!

      I have a comment though…

      I am looking at a friend’s data from their SaaS, and they have great user engagement (Pretty much not churn)… but the reports shows a huge loose of retention by the second week… Doesn’t make scene… they should have a huge churn…

      Do they need to implement the user id feature as well?

      Thanks for you answer :)


    Leave a Reply to Michael Cancel reply

    Your email address will not be published. Required fields are marked *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>