Lifetime value is the gross profit a customer generates across every order they place, measured over a window you pick in advance. For most Shopify stores the working version is total cohort revenue minus refunds, discounts, cost of goods, and fees, divided by the number of customers in the cohort. Everything past that is refinement, and most of the refinements do not change what you do on Monday.
The formula I actually use
Start with a cohort. A cohort is every customer whose first order landed in a given month. Sum everything those customers have spent since. Subtract refunds and discounts, then subtract cost of goods, shipping, and payment processing. Divide by the number of customers who entered that month.
That gives you gross profit per customer for that cohort, at whatever age the cohort has reached. A cohort from four months ago has a four-month number. A cohort from last year has a twelve-month number. They are not comparable, and pretending they are is the most common mistake I see.
Pick the window before you look at the number
Twelve months is the default I use for most stores. It is long enough to capture a second and third purchase in most categories, and short enough that the cash timing still means something. If your repeat cycle is genuinely long, say a mattress or a piece of furniture, twelve months will look terrible and you may want twenty-four. Consumables can often be read at six.
The rule is that you choose the window first and then read the number. Choosing the window after you have seen a few options is just picking the flattering one. I have watched operators quietly slide from twelve months to lifetime-to-date because the bigger figure made a paid channel look viable, and that is not analysis.
Revenue LTV flatters you and margin LTV does not
A lot of the LTV figures floating around DTC are revenue figures. Revenue LTV of $180 sounds like room to spend. At a 40 percent gross margin, after shipping and processing, the actual contribution is closer to $60, and suddenly a $70 CAC is underwater.
Shopify’s built-in cohort reporting works in revenue, not gross profit, which is fine for what it is but means you cannot lift the number straight into a payback calculation. If you are pulling from Shopify directly, you have to layer margin on top yourself. That usually means a per-SKU cost table, or a blended margin rate if your catalog is tight enough to justify one.
Averages hide the part that matters
A single blended LTV across the whole customer base is close to useless for making decisions. It gets dragged upward by a small group of heavy repeat buyers and tells you nothing about the customers a specific channel is actually delivering.
The split worth building is LTV by acquisition channel. Customers who arrive through paid social behave differently from customers who arrive through organic search or a referral, and the gap is often wide enough to change budget allocation. ThoughtMetric, which sponsors this blog, reports new versus returning customer revenue by channel, which is the cut that tells you whether a channel is buying you first orders or getting credit for repeat ones you would have had anyway.
Product entry point is the other useful split. The first item a customer buys predicts their repeat behavior more reliably than almost anything else, and knowing which entry products produce durable customers changes what you put in front of cold traffic.
Predicted LTV is a different thing
Historical LTV is arithmetic on orders that already happened. Predicted LTV is a model guessing what a customer will spend in future. Both are legitimate. They are not interchangeable, and vendor dashboards are not always clear about which one is on screen.
I use historical for anything that touches budget, because I can reconstruct it from raw orders and defend every line. Predicted is useful for segmentation, for deciding who gets the win-back flow, but I do not set spend ceilings against a forecast I cannot audit.
What the number is for
LTV on its own is trivia. It becomes useful the moment you set it against acquisition cost, because that ratio is what tells you whether growth is compounding or just expensive. It is also the input to payback period, which is the number that actually constrains how fast you can scale when you are self-funded.
Recalculate quarterly, not monthly. Cohort curves move slowly, and monthly recalculation mostly produces noise that people then react to. If you want the longer version of how to read those curves without fooling yourself, I wrote that up here: Reading LTV and cohort curves without fooling yourself.
Leave a comment