Skip to content
Log in
← Statistics glossary

cohort ROI

Also called: ROI, marketing ROI, ROI by cohort, LTV/CAC ratio, LTV to CAC ratio

Return on a cohort's acquisition spend: (cumulative gross profit from the cohort − spend) ÷ spend, at a stated age such as day 90. Revenue in a calendar month mixes old and new cohorts and can't replace it.

Cohort ROI answers "did the money we spent on this group of users come back, and with how much on top?" It ties spend to the users that spend acquired, and measures them at a fixed age:

ROIt=cumulative gross profit of the cohort by age t−spendspend\text{ROI}_t = \frac{\text{cumulative gross profit of the cohort by age } t - \text{spend}}{\text{spend}}

ROI below 0 means the cohort hasn't paid back yet; 0 is break-even (the payback point); above 0 is profit. Always state the age: "ROI at day 90" and "ROI at month 12" are different metrics. Comparing channels or campaigns at the same age is fair; comparing a three-month-old cohort with a year-old one is not.

A close relative is the LTV/CAC ratio: projected LTV divided by CAC, which equals 1 + ROI at the LTV horizon. A common rule of thumb asks for 3 or more, but it came from businesses with long contracts and fully loaded costs; for a consumer app, set the target together with the payback period and the horizon you trust. Another relative, ROAS (return on ad spend), divides revenue by spend. It's easy to get from ad dashboards but ignores the store commission and other costs.

Why not simply compare this month's marketing spend with this month's revenue? Because a calendar month's revenue comes mostly from users acquired months ago. A growing app with a loss-making channel can show "revenue > spend" every month while each new cohort loses money.

Example

Theo compares two Halves channels on their June cohorts:

Paid social
Store search ads
Spend
$6,000
$3,000
Installs (CPI)
2,400 ($2.50)
800 ($3.75)
Gross profit by day 90
$3,480
$2,700
ROI at day 90
(3,480 − 6,000) ÷ 6,000 = −42%
(2,700 − 3,000) ÷ 3,000 = −10%
Projected gross profit by month 12
$8,400
$6,600
ROI at month 12
(8,400 − 6,000) ÷ 6,000 = +40%
(6,600 − 3,000) ÷ 3,000 = +120%
LTV/CAC at month 12
8,400 ÷ 6,000 = 1.4
6,600 ÷ 3,000 = 2.2

Search ads look more expensive per install ($3.75 vs $2.50), yet their users bring $6,600 ÷ 800 = $8.25 of gross profit per install in 12 months, against $8,400 ÷ 2,400 = $3.50 for paid social. On ROI, search ads win at both ages. Cheap installs are not the same as cheap customers.

Common mistakes

  • No age attached. "ROI of 40%" means nothing until you say at which day or month of the cohort's life.
  • Calendar-month ROI. This month's revenue ÷ this month's spend mixes old cohorts' income with new cohorts' costs.
  • ROAS as profit. Revenue ÷ spend ignores the store commission and other costs; a ROAS of 1.2 can be a loss.
  • Treating a projection as a result. Month-12 ROI for a three-month-old cohort is a forecast; show the observed part and the extrapolated part separately.
  • Rule-of-thumb targets. An LTV/CAC of 3 is not a law; decide the target together with payback and cash constraints.