A channel that acquires customers at $40 each is better than one that acquires them at $90 only if those customers are worth the same. They almost never are, and the difference is routinely larger than the difference in acquisition cost. Comparing channels on CPA is comparing them on price while ignoring what you bought.
Everyone agrees with this in principle and very few teams do it, because it requires holding the acquisition source and eleven months of subsequent payments on the same record. This is how to build that join, what to do while you are waiting for enough history, and where the analysis misleads.
The newsletter
Join our KISS newsletter
One short read a week on what actually moves revenue, in a free email. Read by 10,000+ operators and founders.
No spam. Unsubscribe in one click.
I.Cost per acquisition is the wrong denominator
It measures what you paid, not what you got, and it systematically flatters the cheapest channel.
A.The comparison that reverses
Take two channels. Paid social acquires signups at $40. Comparison-shopping search acquires them at $95. On CPA the decision is obvious and it is usually wrong.
The paid social signups arrived from a feed, with low intent, having compared nothing. The search signups arrived while actively evaluating alternatives. Twelve months later the second group is retaining better, on higher plans, expanding more. The channel that looked 2.4 times more expensive was materially cheaper per dollar of revenue.
The same two channels, ranked twice
Revenue viewB.Why blended CAC makes it worse
Most companies report one blended acquisition cost: total sales and marketing spend divided by total new customers. It is the number the board sees and it is nearly useless for allocation, because it averages away the only thing you would act on.
A blended CAC of $210 is consistent with one channel at $60 and another at $800. It is also consistent with every channel sitting near $210. Those are completely different businesses and the number does not distinguish them.
Worse, blended CAC includes organic and word-of-mouth customers in the denominator while attributing paid spend across all of them, which flatters paid performance in direct proportion to how well your organic is doing.
II.Building the channel-to-LTV join
One property, stored at the right moment, on the right object.
A.Store the source on the person, at first touch
The whole analysis reduces to one requirement. When somebody first arrives, capture where they came from and store it as a property of the person, not the session, not the visit.
Store first touch and last touch separately and keep both. They answer different questions and the argument about which one is correct is a waste of a meeting when the storage cost of keeping both is nil. See first-touch versus last-touch attribution.
The moment matters. If you capture the source at signup rather than at first arrival, you will record the channel that brought them back rather than the one that found them, which for any considered purchase means crediting brand search for work that content or paid social did weeks earlier.
B.Attach revenue to the same record
Then every payment lands on that person. Not on a session, not on an order with a separate customer table you join quarterly. On the person who already carries the acquisition source.
When that is true, channel LTV stops being an analysis and becomes a group-by. You are summing a column by a property that is already there.
Cumulative revenue per acquired customer, by acquisition month
Cohorts view| Cohort | M0 | M1 | M2 | M3 | M4 | M5 |
|---|---|---|---|---|---|---|
| Jan | 49% | 88% | 121% | 149% | 172% | 191% |
| Feb | 51% | 93% | 128% | 158% | 183% | |
| Mar | 47% | 86% | 119% | 147% | ||
| Apr | 55% | 101% | 140% | |||
| May | 52% | 96% |
C.Use a proxy so you can act this quarter
The objection to LTV analysis is always the wait. If your average customer lives two years, a true LTV figure for a channel takes two years, by which time the channel has changed.
Use cumulative revenue at a fixed horizon instead. Month three works for most subscription businesses: long enough to be past the early churn cliff, short enough to guide a decision this quarter. Validate it once against your oldest cohorts to establish the ratio between month-three revenue and eventual LTV, then use the proxy and re-validate annually.
The proxy is not a compromise so much as the correct tool. A two-year-old LTV figure describes a channel that no longer exists in that form.
III.Making budget decisions on it without over-reading
The analysis is easy to abuse in three specific ways, and all three produce confident wrong answers.
A.Small cohorts are not evidence
The first and most common abuse. A channel produced 30 customers, four of them large, and its LTV looks spectacular. Remove the four and it is the worst channel you have. Enterprise revenue distributions are heavily skewed, so a small cohort's average is dominated by whether it happened to contain a whale.
Look at the median alongside the mean, and treat any cohort under roughly a hundred customers as directional. If the mean is far above the median, you are looking at a small number of accounts and the channel has not been evaluated.
B.Correlation is not capacity
The second abuse is assuming a good channel scales. A channel producing excellent customers at low volume is frequently doing so because of the low volume: it is reaching a narrow, well-qualified audience, and tripling the spend reaches progressively less qualified people.
Watch marginal LTV rather than average LTV as you scale. If the customers acquired in the month after a budget increase are worth materially less than the ones before it, you have found the ceiling and the average is hiding it.
Three ways this analysis lies, and the check for each
Diagnosis view| Failure | What it looks like | Check |
|---|---|---|
| Whale in a small cohort | Mean far above median | Report both, require n > 100 |
| Channel does not scale | Average holds, marginal falls | Segment by acquisition month after a spend change |
| Selection, not causation | Channel reaches people who would have bought | Holdout test |
C.What the join gives you that a spreadsheet cannot
The reason this analysis is rare is not that the maths is hard. It is that the join is hard: acquisition source lives in an ad platform or a UTM, revenue lives in billing, and connecting them for an individual customer across months usually means a warehouse and somebody to maintain it.
Kissmetrics keeps both on the person by default. The source is a property recorded at first touch, the payments are events on the same record, and cohorting by acquisition channel is a report rather than a pipeline. That also means you can go the other way and open a channel's cohort to see the individual customers inside it, which is how you catch the whale before it sets your budget.
Verdict
Cost per acquisition answers what a customer cost. It does not answer whether the customer was worth it, and channels differ far more on the second question than on the first.
Store acquisition source on the person at first touch, attach revenue to the same record, and rank channels on cumulative revenue at a fixed horizon. Report the median next to the mean, refuse to conclude anything from a cohort under a hundred, and watch the marginal customer rather than the average one when you scale.
Continue Reading
Cost Per Acquisition for SaaS: Why You Need Customer Analytics to Get It Right
Most SaaS teams calculate CPA by dividing total spend by total sign-ups. This oversimplified approach hides your most profitable channels and inflates your worst ones.
Read articleChannel Mix Optimization: How to Allocate Budget Using Analytics
Most marketing teams allocate budget based on last year plus a percentage. Data-driven channel mix optimization identifies where the next dollar produces the highest return.
Read articleHow to Calculate Customer Lifetime Value (LTV): Formulas and Examples
The arithmetic is not the hard part. Two of the three inputs are measured and the third is a forecast, which is where the entire error budget lives. What to calculate instead, and why the word doing the damage is "lifetime".
Read article