Your Subscription CAC Math Is Lying: Cohort-Based LTV for Shopify Subscription Brands
Blended CAC and average LTV hide the churn that kills subscription brands. Here is how to build cohort retention and channel payback from Shopify data you have.
Priya runs a specialty coffee subscription on Shopify. About $2.4M a year, roughly 4,100 active subscribers, growing on Meta and a bit of TikTok. Her CAC is $38. Her LTV, according to the number her media buyer put in the deck, is $214.
Five and a half to one. Beautiful ratio. She was two weeks from tripling her Meta budget when her bookkeeper asked why cash kept getting tight in the back half of every month.
We pulled twelve months of orders and rebuilt the number by acquisition cohort instead of in aggregate. The $214 was real, in the sense that it was arithmetically correct. It was also describing a customer who did not exist.
The average customer is a statistical ghost
Here’s what her data actually looked like once we split it up. Of every hundred subscribers Meta brought in, 41 cancelled after their first bag. Another 29 made it to three or four orders and drifted. The remaining 30 were extraordinary, some of them eighteen months deep, and their lifetime value dragged the mean up to $214.
Nobody is $214. There’s a $34 customer and there’s a $500 customer, and the mean sits in an empty gap between them, describing nobody, guiding nothing.
That’s the whole problem with blended metrics in subscription businesses. A one-time DTC store can get away with averages, because the variance in how much any one buyer spends is comparatively modest. Subscriptions are different by construction: the outcome is a duration, durations are wildly skewed, and averaging a skewed distribution produces a number that is technically true and operationally useless.
When Priya tripled Meta spend against that $214, she’d be buying more of the mix at the margin. Which is mostly the 41.
Cohorts, and why they’re the only honest view
A cohort is just a group of people who signed up in the same month, tracked forward together, and never mixed with anyone else.
The reason it matters is that aggregate metrics constantly get polluted by new customers. If you’re growing, every month you dump a fresh batch of month-one subscribers into your active base, and month-one subscribers haven’t had time to churn yet. Your overall retention rate looks stable. Underneath it, each individual cohort could be collapsing faster than the last, and you’d never see it, because growth is papering over decay.
Hold the cohort fixed and the story stops lying. January’s signups either renewed in February or they didn’t. That fact never changes, it doesn’t get diluted by March’s marketing push, and you can lay twelve of those curves on top of each other and see instantly whether the business is getting better or worse at keeping people.
Most subscription brands we meet have never once looked at this. They have a churn percentage in a dashboard and a vague sense that it’s “around 8%,” and they treat it as a property of the business rather than what it is, an average across cohorts that were acquired on different promises, at different prices, from different channels.
Building the thing from data you already have
You don’t need a new tool for the first version. You need an export and an afternoon.
Pull your order history from Shopify with customer ID, order date and order value. Pull subscription contract data from your subscription app: contract created date, status, cancellation date, and the acquisition source if it’s captured. Join on customer ID.
Then assign every subscriber to a cohort by the month their first subscription order billed, not the month they created an account, which is a distinction that trips up more teams than you’d guess. Count how many of each cohort had an active contract in month 1, month 2, month 3, and so on. Divide by the cohort’s starting size. That’s your retention curve, and it’s the foundation for everything else.
Revenue per cohort is the same exercise with dollars instead of headcount. Cumulative revenue per original subscriber, by month, is the honest version of LTV, and unlike the $214 it doesn’t require you to guess how long anyone will stay. It only reports what has already happened.
Priya’s first pass took a junior analyst four hours in a spreadsheet. It has been the single most consequential document in her business since.
Payback is a channel-level question
Once you have cohorts, break them by acquisition channel, and the argument about budget usually ends on its own.
Priya’s Meta cohorts and her organic and referral cohorts had CACs that were not far apart, $38 versus $31. On a blended sheet, near enough. On the cohort view, the Meta cohort recovered its CAC at month 4 in the good months and month 6 in the bad ones. The referral cohort was paid back by the end of month 2 and had a retention curve that flattened rather than kept falling.
Two channels, similar CAC, completely different businesses. One of them, she could scale with borrowed money. The other, she should only scale with cash she could afford to have tied up for half a year, which is exactly the squeeze her bookkeeper had been feeling.
Payback period is the metric that connects marketing to the bank account, and there’s a decent primer on why it matters more than raw LTV over at Lenny’s write-up on CAC payback. The short version, for a subscription brand living on its own cash: an LTV to CAC ratio tells you if the business works eventually. Payback tells you if you’ll survive until eventually arrives.
Reading the curve
Two shapes matter, and they call for opposite responses.
A steep month-one cliff is a promise problem. People signed up expecting one thing and got another, and no email flow, discount ladder or winback sequence repairs a mismatch that happened at the moment of purchase. In Priya’s case the cliff traced to a specific ad set promising “café-quality espresso at home” to an audience that mostly owned drip machines. The coffee was fine. The expectation was wrong. Killing that ad set did more for retention than the six months of lifecycle emails that preceded it.
The other shape is the long slow bleed, a curve that never flattens, and that’s a product and cadence problem. Too much coffee arriving too often, no way to skip, no variety, so people quietly leak away around month five when the backlog in the cupboard gets embarrassing. That one gets fixed with pause and skip controls, cadence choices at signup and a variety plan, not with better ads.
Look for the flattening. A curve that flattens at 30% has a real base of loyalists you can build a business on. A curve that keeps declining toward zero means you don’t have subscribers, you have a slow-motion one-time purchase with extra billing complexity.
The tooling question, honestly
Shopify’s native analytics will not do this for you. It’s built around orders and sessions, not contracts and durations, and the subscription apps mostly report churn as a single rolling percentage.
There are real tools that do cohort work properly. Most brands under $5M don’t need one yet, and the ones that buy early tend to end up with a dashboard nobody trusts, because the definitions were configured by someone who didn’t understand what question they were answering. Build the spreadsheet first. Argue about the definitions. Once your team can defend every number in it, then go buy something that automates it.
If you want a reference for how the curves should look before you build your own, Reforge’s material on retention curves is a decent grounding in what a healthy shape actually is.
What we keep telling clients
Nobody gets excited about a retention spreadsheet. It has no creative in it, there’s nothing to screenshot for the group chat, and building the first one is genuinely tedious work that a founder will find nine reasons to postpone.
But it is the difference between scaling a business and scaling a leak. The brands that die in this category almost never die from a bad CAC number. They die from a good CAC number attached to customers who left in six weeks, funded by ad spend that had to be paid up front, in a cash cycle that eventually caught up with them.
Look at your acquisition channels the way you’d look at loans. Some of them pay you back in eight weeks. Some take half a year and you need to know that before you sign, not after.
And once you have the curves, keep looking at them monthly. Cohort quality drifts, usually downward, as you push into colder audiences, and the first cohort that decays faster than the last one is a warning worth acting on while it’s still cheap.
Priya cut the offending Meta ad set, shifted about 20% of that budget into her referral program, and added a skip control at signup. Her month-three retention went from 59% to 71% across the next two cohorts. She still hasn’t tripled her ad budget. She’s also not tight on cash in the back half of the month anymore.
Questions we get every week
How many months of data do I need before cohorts are useful?
Six months of subscriber history gives you a workable shape. Twelve is where you start to trust it, because you can finally see whether later cohorts are decaying faster than earlier ones. If you’re younger than that, build the sheet anyway so the habit and the definitions exist by the time the data catches up.
What if my subscription app doesn’t record acquisition channel?
Join on customer ID against your first-touch attribution in Shopify or your ad platform’s exported customer lists. It’s imperfect, and imperfect channel splits still beat a single blended number that hides everything.
Is a 40% first-order churn rate normal for subscriptions?
It’s common, which is not the same as normal. High first-order churn almost always traces to an acquisition promise that didn’t match the product. Look at the ad creative and the signup offer before you go anywhere near the fulfilment experience.
Should I use predicted LTV instead of cohort revenue?
Predicted LTV is fine for modelling once your curves are stable, but it’s built on assumptions that early cohorts haven’t earned yet. Start with what actually happened, then predict.
If your LTV to CAC looks great and your bank balance disagrees, talk to us and we’ll rebuild your subscription numbers by cohort.