Prepare and validate customer retention cohorts before presenting them in Google Data Studio, formerly Looker Studio. This guide gives the source rows, Google Sheets formulas, equal-age checks, and report settings that keep unfinished periods out of the comparison.
Google Data Studio cohort analysis starts with a fixed customer group and measures how many return at each completed age after their first purchase. Prepare and validate the counts before putting retention into a report. Google returned the Looker Studio product name to Data Studio in April 2026, so both names may appear in your team's existing reports.
For a US distributor, define a cohort as customers whose first qualifying purchase occurred in the same calendar month. Active means making another qualifying purchase during the month being measured. Exclude voided transactions and credit-only activity consistently.
Age zero is the first-purchase calendar month; age one is the following month. This measures monthly purchasing activity, not continuous subscription retention. A customer who skips a month and returns counts as active in the return month.
Retention at age = Distinct cohort customers active at that age / Original cohort customers
Calendar months give different amounts of exposure within the acquisition month. Use this convention consistently and compare later completed ages; use elapsed-day windows instead if the business question requires equal days since purchase.
The existing Excel cohort retention guide covers the broader invoice-to-cohort workflow. Here the task is validating the prepared table and presenting a comparable result.
Keep a customer register named Customers. Its first-purchase dates must come from complete purchase history, not just the months visible in the report. These are all the customers in this worked example:
| A: Customer | B: First purchase | C: Cohort month |
|---|---|---|
| A | 01/05/2026 | 01/01/2026 |
| B | 01/12/2026 | 01/01/2026 |
| C | 01/20/2026 | 01/01/2026 |
| D | 02/03/2026 | 02/01/2026 |
| E | 02/17/2026 | 02/01/2026 |
Store dates as actual date values. In Customers!C2, fill down through row 6:
=DATE(YEAR(B2),MONTH(B2),1)
Next, create Activity with one row per customer and active calendar month. Deduplicate customer-month pairs from the purchase export first: several purchases by the same customer in a month still count as one active customer.
| A: Customer | B: Activity month | C: Cohort month | D: Age |
|---|---|---|---|
| A | 01/01/2026 | 01/01/2026 | 0 |
| B | 01/01/2026 | 01/01/2026 | 0 |
| C | 01/01/2026 | 01/01/2026 | 0 |
| A | 02/01/2026 | 01/01/2026 | 1 |
| B | 02/01/2026 | 01/01/2026 | 1 |
| D | 02/01/2026 | 02/01/2026 | 0 |
| E | 02/01/2026 | 02/01/2026 | 0 |
| A | 03/01/2026 | 01/01/2026 | 2 |
| D | 03/01/2026 | 02/01/2026 | 1 |
| E | 03/01/2026 | 02/01/2026 | 1 |
In Activity!C2, retrieve the permanent cohort. In D2, calculate calendar-month age. Fill both through row 11:
=VLOOKUP(A2,Customers!$A$2:$C$6,3,FALSE)
=12*(YEAR(B2)-YEAR(C2))+MONTH(B2)-MONTH(C2)
A missing customer match or negative age is an exception to fix before counting. For related spreadsheet cleanup questions, see Google Sheets data analysis.
Create Cohorts with the layout below. Enter cohort dates and ages in columns A and B. Put =DATE(2026,3,31) in H1, the last fully completed month-end for which the export is complete. Use this fixed cutoff for the report rather than today's date.
In C2, count original members. In D2, return a blank for unfinished ages; otherwise count deduplicated activity. In E2, divide only observed counts by membership. Fill down through row 7:
=COUNTIF(Customers!$C$2:$C$6,A2)
=IF(EOMONTH(EDATE(A2,B2),0)>$H$1,"",COUNTIFS(Activity!$C$2:$C$11,A2,Activity!$D$2:$D$11,B2))
=IF(D2="","",D2/C2)
| A: Cohort month | B: Age | C: Members | D: Active | E: Retention |
|---|---|---|---|---|
| 01/01/2026 | 0 | 3 | 3 | 100.0% |
| 01/01/2026 | 1 | 3 | 2 | 66.7% |
| 01/01/2026 | 2 | 3 | 1 | 33.3% |
| 02/01/2026 | 0 | 2 | 2 | 100.0% |
| 02/01/2026 | 1 | 2 | 2 | 100.0% |
| 02/01/2026 | 2 | 2 |
Percentages are rounded to one decimal place; calculations retain full precision. February's age two ends in April, so its blank cannot be compared with January's completed age two.
January's age-one numerator is customers A and B. February's is D and E. At the same completed age, retention is therefore 2 / 3 = 66.7% versus 2 / 2 = 100.0%. That difference is an observation to investigate, not evidence that a particular sales change caused it.
Run these reconciliations:
Use how to read a cohort retention table when interpreting rows and diagonals. Keep this validation tied to customer IDs so a changed result can be traced to a changed source row.
Connect the Cohorts worksheet using Create > Data Source > Google Sheets, select the spreadsheet and worksheet, and connect. Google's Sheets connector instructions require tabular data, a single header row, and consistent types within each column. Select the range A1:E7 so the cutoff cell is outside the connected table.
Add a pivot table with cohort month as its row dimension, age as its column dimension, and retention as its metric. Keep one source row per cohort-age pair, format retention as a percentage, and sort numeric age ascending. Turn off percentage totals; summing rates across ages does not measure retention.
In the chart's missing-data settings, show a blank rather than zero. Google's pivot table reference documents row and column dimensions, missing-data display choices, and the heatmap metric style. Check the numeric values before using color, and label the report with the activity definition and completed-through date.
Covirage is not affiliated with Google.
COUNTIFS.Upload your customer register and purchase export, or bring a Google Sheet with a sample of your own data. Covirage maps the columns; its tools compute and check cohort membership, activity counts, and comparable retention figures, while the external AI model explains the result with every figure traced to its rows. Create a free Covirage account; account creation takes about a minute, then you set up your business and bring your file.
See self-service analytics for the approach to answering business questions from your own files.
Google's reporting product returned to the Data Studio name in April 2026 after being called Looker Studio. The different names in searches can therefore refer to the same reporting product. This guide uses the current name and a spreadsheet-based preparation method.
Use a permanent customer ID, the customer's first qualifying purchase month, the age being measured, the original cohort size, and the number active at that age. Define qualifying activity before counting, and deduplicate repeat activity by customer and month.
Leave a period blank until it is complete and its source export is available. Zero means the period was observed and nobody qualified as active. Treating an unfinished period as zero creates an apparent retention decline that has not happened.
For an overall customer retention rate, add active customers and divide by the original members of eligible cohorts at the same age. A simple average gives small cohorts the same influence as large cohorts and answers a different question.