Contribution LTV typically runs 30-40% below what Shopify shows, after COGS, fulfillment, and discounts. Most brands find out when cash stops keeping up with revenue.
A supplements brand ran a 20% first-order discount on subscriptions. Revenue LTV:CAC: 3:1. Looked healthy on the dashboard.
After separating cohorts, contribution LTV:CAC on the discount group dropped to 1.4:1, after COGS, fulfillment, and the discount itself. 31% of discount subscribers churned before order 3. Full-price subscribers at 11%.
Both cohorts were being reported as one blended number.
Before this, I built and ran ecommerce brands. Supplements, affiliate, DTC in the US market. At one point we were doing $3.5M in four months and the Shopify dashboard looked healthy the whole way through.
A bank froze $600,000 in one day. The project shut down. After that I spent a long time building the cohort models that should have been there from the start. Turned out the real numbers looked nothing like what the dashboard was showing.
That's what I do now for other brands. Not as someone who read about it - as someone who ran the numbers too late once and knows what that costs.
Most brands have seen #1. Almost none have looked at #3.
A pet supplements brand had healthy subscription signup rates. Blended cancel rate looked acceptable in the dashboard.
Broken out by shipment: 62% of first-time subscribers cancelled between shipment 2 and 3. The spike was concentrated in a single acquisition window. Invisible in aggregate.
CAC payback extended to 14 months on a contribution basis.
A skincare brand had strong first-order AOV. Blended retention numbers looked fine on the dashboard.
74% of customers never placed a second order. After COGS and acquisition cost, the brand was losing money on every customer who did not reorder.
The cohort that did reorder was profitable. It was 22% of buyers.
Three steps. No API access. 5-7 days from data to report.
Replenishment categories only. Shopify only. Diagnosis, not execution.
If you already track LTV at contribution level by cohort, you don't need this audit. You need execution.
No discovery call required. Fill the form or write directly. One message is enough to start.