Shopify customer lifetime value

How to use Shopify customer lifetime value

Average order value, orders per year, and how many years they stay. How to read the result without treating it as a forecast.

Key takeaways

  • Use the URL or the figures the decision actually depends on.
  • Change one thing, then run the same input again.
  • A result goes stale when the price, the theme, the apps, or the costs change.

The pass

Average order value, orders per year, and how many years they stay. Open Shopify lifetime value and do it in this order.

  1. Take average order value and the repeat purchase rate from your own Shopify analytics. Do not borrow another brand’s frequency.
  2. Set the years to a span you have actually seen, or shorter. A hopeful five-year life on a product you launched in March is not an input.
  3. Read the result as revenue: average order value × orders per year × years.
  4. Subtract product, shipping, and fees, and decide whether later orders are paid ads or not, before you raise the allowable cost of the first order.

The mistake that wastes the pass

Raising what you will pay for a first order because the revenue number is large. Revenue is not contribution, and a guessed repeat rate is not a cohort.

How you know it worked

The order value and the frequency came from your reports. The result is labelled as revenue. A guessed repeat rate is labelled as a guess.

Build the average from orders you can list

Export the orders that belong in the average. Decide whether refunds are already netted out. Decide whether shipping charged to the customer is inside the average. Write both decisions. Divide the revenue you kept by the order count you kept. That quotient is the average order value you may type. Read /learn/average-order-value.html if the definition itself is the fight, then come back and type only what you counted.

Replace a remembered average. 'About 60 dollars' is not an input once the export is available. If you round, write the exact quotient and the rounded one. A rounded average multiplied by years becomes a rounded lifetime that looks clean. Keep the exact figure in the note so the rounding is visible.

Count orders per year from a cohort

Pick a cohort of customers who could have ordered across the window you care about. Count how many orders they placed in that window. Divide by the number of customers and by the length of the window in years. That is an orders-per-year figure you can label as counted. Say the cohort has 40 customers and they placed 50 orders in one year. Example orders per year is 50 divided by 40, which is 1.25. That example is your kind of count, not a normal repeat rate, and it uses only the numbers in the sentence.

Do not use the ad platform's purchase count as customers. Do not use all orders in the shop divided by all customers if that mixes brand-new buyers who have not had time to repeat. New buyers dilute the repeat. If you want new and returning together, say so, and do not describe the result as a repeat rate.

Type a lifespan you will defend

Years is the hardest input to fake honestly. Use the length of time you actually observed, or a shorter assumption you label. If you have one year of history, typing three years is a forecast. You may forecast, and you must mark it. Prefer the observed length when the figure will be shown to someone who spends money.

Do not type the warranty length, the subscription contract's maximum, or a competitor's claim as if it were your lifespan. A contract maximum is an upper bound only for customers who take it. Your counted lifespan will be shorter. If you type the maximum, write maximum, not expected, and do not let the revenue result travel without that word.

Multiply in an order you can check

Multiply average order value by orders per year first. That product is revenue per customer per year under your inputs. Then multiply by years. Check it with the other order: average order value times years, then times orders per year. The results match or you mistyped. The calculator should match the hand product.

Write the intermediate yearly revenue down. People jump to the multi-year total because it is larger. The yearly figure is easier to compare with a year of real sales. If the yearly figure is already implausible next to last year's revenue per customer, the multi-year figure is implausible too. Fix the input before you admire the total.

Stamp every input counted or assumed

Each of the three inputs gets one of those two words. A sheet with three assumed inputs is a sketch. A sheet with a counted average and an assumed lifespan is a hybrid. Hybrids are allowed. They are not allowed to be described as measured lifetime value. Say which factor is the assumption.

When you replace an assumption with a count, keep the old output in the note. The change is the value of the measurement. If the revenue falls, the old story was expensive. Do not quietly update the slide and leave the acquisition budget where the hopeful figure put it.

Leave costs out, visibly

Do not subtract product cost inside this calculator to be helpful. You would no longer be looking at its output. If you want a costed view, take one order to /profit-calculator/ and, separately, decide how repeats are costed. A repeat can have a different ad cost, a different discount, and a different ship cost. One unit profit times orders times years is your model, and it is not the lifetime calculator.

Write a line on the note: costs not subtracted. That line blocks the most common misuse. If a reader removes the line and forwards the revenue as profit, the misuse is theirs, and the note shows what you actually handed them.

Discounts and refunds belong in the average, or in a note

If the average is built on full price and the repeats are usually discounted, the lifetime revenue is high. Rebuild the average on the orders that actually repeat, or write that the average is full price. Do not leave the mismatch for a buyer to discover after they spent against the figure.

Refunds you have not netted out should be written as omitted. Do not apply a generic refund rate. If you have a count, net the revenue before you divide. Say you remove 100 dollars of refunds from 1,000 dollars of example revenue and still have 20 orders. The average becomes 900 divided by 20, which is 45 dollars, in that example only. Your export will have different dollars and a different count.

Keep the first order in its own sheet

Build the first order's profit and break-even ROAS without using years. Use the price, the product, the shipping, the fees, and the ad cost you can point to. Put that sheet next to the lifetime revenue sheet. If the first order loses and the lifetime revenue looks large, the pair of sheets is the truth. Do not average them into a single 'blended' comfort number.

The how of an honest lifetime figure includes this neighbor sheet. A lifetime number presented alone will be asked to approve spend. The neighbor sheet is what makes that approval fail when it should fail. Link the pair. Do not merge the pair.

Refresh on a schedule the cohort can support

Recompute when a new cohort has had time to repeat, not every day the ad account moves. Daily recomputation pretends lifetime value is a media metric. It is not. Pick a cadence, such as a quarterly cohort review you name, and refuse mid-week edits to orders per year based on a hunch.

When average order value moves because you changed the catalog, refresh the average and leave the repeat inputs alone unless the cohort also changed. Changing all three inputs at once hides the cause. One input per revision. The note should read like a log, not like a new slogan each Monday.

Finish with one sentence you can say

The sentence is: revenue per customer is average order value times orders per year times years, which equals this amount, costs not subtracted, and these inputs are counted or assumed. If you cannot fill it, you are not done. Do not publish a lone number into a brief.

Then point the average's definition at /learn/average-order-value.html if the reader will challenge it, and point the multiplication at /lifetime-value/. Point profit questions elsewhere. The sentence is the handoff. The tools are where someone rebuilds it without you in the room.

Do not count a bill that never became an order

Failed subscription charges, abandoned checkouts, and cancelled orders are not orders per year. If your export includes them, remove them before you divide. A lifetime revenue figure built on attempted charges describes a billing system, not revenue. The calculator will multiply whatever count you type, so the filter has to happen in the export, not afterward in a footnote.

Partial refunds stay in the average only to the extent you kept the money. A replaced shipment that you paid for twice does not belong in this revenue formula at all. It belongs on a cost sheet. Leaving it out of orders per year, and saying so, is the honest fill. Quietly dropping ugly orders to raise the average is the dishonest one.

Shopify questions

How long is a result good for?

Until the page, the price, the theme, or the costs change. Rerun after a theme publish, a new app embed, or a new supplier quote.

Does this install anything on the store?

No. The page runs in your browser. Nothing is installed on the store you are looking at, and the calculators do not connect to the admin.