Blog · Board and management reporting
Cohort analysis in marketing compares the customers acquired by different channels after the same amount of time. Work from customer, order and spend exports to compare repeat purchasing and contribution with explicit maturity checks.
Cohort analysis in marketing compares customers acquired through different channels after they have had the same time to buy again. It shows whether a channel brings customers who keep purchasing and leave contribution after their costs. Start with first-purchase customer records, order history and acquisition spend, using one fixed acquisition policy.
A channel with inexpensive first orders can become expensive if those customers rarely return. Conversely, a channel that costs more to acquire customers may produce stronger later contribution. The comparison needs both customer behavior and dollars.
Use acquisition month and channel to define each group. Keep the original customer IDs fixed, even when an account stops buying, changes its name or purchases another product. A later purchase does not acquire that customer again.
This is a channel-quality review. The guide to building a cohort retention table covers constructing a full retention grid. Here the question is narrower: which acquisition group gives the business stronger outcomes over a common observation window?
Use an account identifier that appears in both the customer file and the finance export. Confirm first purchase against available earlier history; the first order inside a short extract may belong to an established customer.
| Sheet | Required fields | Working rule |
|---|---|---|
| Customers | Customer ID, acquisition channel, first-purchase date | One row per newly acquired customer |
| Orders | Transaction ID, customer ID, order date, net revenue, direct cost | Keep sales and credits; remove duplicate transactions |
| Spend | Acquisition period, channel, agreed acquisition cost | Match cost to the customers acquired in that period |
Leave customers with unknown channels in a visible unassigned group. Do not redistribute them across the known channels merely to complete the table. Agree channel ownership using your existing marketing attribution policy before examining the results.
For the example, acquisition cost includes the campaign and referral costs finance assigns to the January acquisition groups. The customer acquisition cost method explains cost scope in more detail. Keep that scope consistent across channels and reviews.
The example is a US office-supply business reviewing customers first acquired in January 2026. Its snapshot is June 1, 2026. Every January customer has completed the first 90 days after acquisition.
Define day zero as the first-purchase date. Revenue and direct cost cover day zero through day 89. For this purchase-based business, the retention indicator is a repeat purchase on days 60 through 89. A credit by itself does not count as activity. This is an operational repeat-purchase definition, not a claim that everyone without a recent order has permanently left.
Customer behavior should fit the buying cycle. An annual purchasing business would need a different window. Behavioral cohort analysis addresses groups defined by actions; this review keeps acquisition membership fixed and uses later actions as outcomes.
In Customers, use A for customer ID, B for channel and C for first-purchase date. Put the snapshot date in M1. Add D for a completed-window flag, E for late-window activity, F for revenue, G for direct cost and H for contribution.
In Orders, use A for transaction ID, B for customer ID, C for order date, D for net revenue and E for direct cost. These formulas assume actual spreadsheet dates and the deduplicated rows described above.
Google's COUNTIFS documentation explains counting records that satisfy several conditions. Here those conditions select the customer, age window and positive purchase amount:
D2 = IF($M$1>=C2+90,1,0)
E2 = IF(D2=0,"",IF(COUNTIFS(Orders!$B:$B,A2,Orders!$C:$C,">="&(C2+60),Orders!$C:$C,"<"&(C2+90),Orders!$D:$D,">0")>0,1,0))
SUMIFS sums amounts meeting the specified conditions. Use the same customer-age limits for revenue and its associated cost, including the agreed credit reversals:
F2 = IF(D2=0,"",SUMIFS(Orders!$D:$D,Orders!$B:$B,A2,Orders!$C:$C,">="&C2,Orders!$C:$C,"<"&(C2+90)))
G2 = IF(D2=0,"",SUMIFS(Orders!$E:$E,Orders!$B:$B,A2,Orders!$C:$C,">="&C2,Orders!$C:$C,"<"&(C2+90)))
H2 = IF(D2=0,"",F2-G2)
Fill down. Keep unfinished outcomes blank and exclude them from the completed-window comparison. For a monthly acquisition group, wait until every member is mature before treating the comparison as the full month's result.
Covirage is not affiliated with Google.
The illustrative customer and order exports sum to these completed-window inputs. Every acquired customer remains in the denominator, including those without a later purchase.
| Channel | Acquired customers | Active on days 60-89 | Revenue, days 0-89 (USD) | Direct cost (USD) | Acquisition spend (USD) |
|---|---|---|---|---|---|
| Paid search | 100 | 35 | 90,000 | 54,000 | 20,000 |
| Partner referral | 80 | 40 | 96,000 | 52,800 | 24,000 |
| Total | 180 | 75 | 186,000 | 106,800 | 44,000 |
On a Summary sheet, put those input columns in A:F, with channel in A. The derived columns are:
G2 = C2/B2
H2 = D2-E2
I2 = H2/B2
J2 = (H2-F2)/B2
| Channel | Repeat-purchase rate | Contribution before acquisition spend (USD) | Contribution / acquired customer (USD) | After spend / acquired customer (USD) |
|---|---|---|---|---|
| Paid search | 35 / 100 = 35.0% | 90,000 - 54,000 = 36,000 | 36,000 / 100 = 360.00 | (36,000 - 20,000) / 100 = 160.00 |
| Partner referral | 40 / 80 = 50.0% | 96,000 - 52,800 = 43,200 | 43,200 / 80 = 540.00 | (43,200 - 24,000) / 80 = 240.00 |
| Total | 75 / 180 = 41.7% | 79,200 | 440.00 | 195.56 |
Rates are rounded to one decimal place and dollar averages to cents. Totals use the underlying amounts, not averages of the channel percentages. The reconciliation is 186,000 - 106,800 = $79,200 before acquisition spend, then 79,200 - 44,000 = $35,200 after spend. Dividing that remainder by 180 original customers gives $195.56.
Partner referral costs $300 per acquired customer, from 24,000 / 80, versus paid search's $200, from 20,000 / 100. Yet it leaves $240 versus $160 per original customer after the measured costs. That supports investigating the partner audience and offer. It does not prove that moving budget would reproduce the result: product mix, customer size and channel capacity still matter.
Bring your customer acquisition file, matched order export and channel spend; Covirage maps the columns, and its tools compute and check the comparisons. The external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, then set up your business and bring a sample of your own data.
See customer profitability in Covirage for the supporting business context.
An acquisition cohort is a group of customers who first became customers during a defined period and share an acquisition characteristic, such as channel or campaign. Keep that original membership fixed when measuring later purchases so the comparison describes the customers acquired at the start.
Older customers have had more opportunity to place orders and generate contribution. Compare completed windows measured from each customer's acquisition date. A recent group with an unfinished window should be marked pending, even if its early results look weaker than a fully observed group.
Attribution assigns credit to marketing interactions. Acquisition cohort analysis follows the customers assigned under that policy and asks what happened afterward. Set the credit rule first, then keep it stable while comparing customer outcomes; changing the rule changes who belongs to each channel.
Use the original acquired-customer count when assessing acquisition quality. Dividing by only the customers still purchasing removes the customers who stopped and can make a weak cohort appear attractive. Contribution per active customer can supplement the review, but it answers a different question.