Customer Lifetime Value (CLV) and Customer Acquisition Costs (CAC) are 2 very important metrics that can help you answer one very simply question for your ecommerce store:
How much money can I spend on marketing to acquire a customer and still be profitable?
In this guide, we will:
If you are familiar with LTV and CAC, feel free to jump right to the good stuff [link]
CLV is an estimated amount of profit (after operational expenses like COGS, shipping, and fulfillment but before marketing expenses) that each of your customers will bring in over the lifetime they engage with your store. Since marketing expenses can be highly variable and your expenses may change after you calculate and analyze your CLV, you will want to leave them out of this calculation.
The calculation methods for CLV vary greatly and get complex, but you can get a pretty good idea of where your store is at with the simplified model explained below. Note: there is no one way to calculate CLV!
First we want to calculate the Customer Value (CV). This tells us, on average, how much a customer is worth over a certain time period. In the analysis that follows, we will calculate all metrics across a 1 year time period.
Customer Value (CV) = Avg. Order Profit * Purchase Frequency over a given time period.
-Note Avg. Order profit should not include marketing expenses but should include COGS, transaction fees, refunds, taxes and shipping costs.
Average. Order Revenue = [Revenue / # of orders] in a given time period
Avg. Net Profit Margin = [(Revenue – all expenses, except marketing) / Revenue] in a given time period
Purchase Frequency = [Total # of Orders / Total # Customers] in a given time period
Customer Lifetime Value (CLV) = CV * Average Customer Lifespan
Average Customer Lifespan = Is the amount of time you expect to retain customers, typically measured in years. The Average customer lifespan can vary greatly on your store type, customer satisfaction, the types of products you sell, and how often your customers view or remember your brand. 3 years is a good rough number for a new but healthy ecommerce store. If you are dropshipping or have a hard time re-engaging customers with your store, you may want to use 1 year. If you have a subscription business, you would want to use a different calculation (see contractual vs. non-contractual CLV methods)
In more detail, this metric means - What does it cost in marketing expenses to acquire a customer?
Expenses you should include:
Ad Spend of all campaigns (Facebook Ads, Google Ads, print, etc)
Payroll of marketing employees
Costs related to the design of the ads
Other marketing/sales expenses
If CLV tells us how much the average lifetime of our customers are worth after non-marketing related expenses and the CAC tells us how much it costs us to acquire a customer, then we can use the combination of these metrics to see what we can spend on marketing to acquire a customer and remain profitable.
A useful metric is your CLV:CAC ratio
Payback period = CAC / ((annual revenue per customer) * (Gross margin in %))
Common misuses of LTV:
A common mistake is for a CLV prediction to calculate the total revenue or even gross margin associated with a customer. However, this can cause CLV to be multiples of their actual value, and instead need to be calculated as the full net profit expected from the customer.
Here at www.ordermetrics.io we are fortunate to work with a wide variety of ecommerce stores in many different industries. To help merchants benchmark their CLV and CAC to others, we have taken a sample of 250 Shopify merchants using our platform. All data in this analysis is anonymous to protect merchant privacy.
[visualizer id="215"] *Each "Store" is an anonymous Shopify store.
SELECT c.name, round(avg(o.sale_price)/100,2) as aov, count(o.email) as ordercount, count(distinct o.email) as cust, round(count(o.email)/count(distinct o.email)::numeric,4) as freq, round((count(o.email)/count(distinct o.email)::numeric)(avg(o.sale_price)/100),4) as cv, round((count(o.email)/count(distinct o.email)::numeric)(avg(o.sale_price)/100)*3,4) as ltv FROM orders o INNER JOIn clients c ON c.id = o.client_id where o.order_date >= '2017-01-01' and c.paid = true AND c.uninstall_info is null AND o.email is not null AND o.cancelled = false AND o.email != '' GROUP BY c.name HAVING count(o.email) > 300