{"id":5371,"date":"2026-06-28T09:55:00","date_gmt":"2026-06-28T07:55:00","guid":{"rendered":"https:\/\/strat.es\/como-calcular-ltv-ecommerce\/"},"modified":"2026-07-27T02:27:43","modified_gmt":"2026-07-27T00:27:43","slug":"how-to-calculate-ecommerce-ltv","status":"publish","type":"post","link":"https:\/\/strat.es\/en\/how-to-calculate-ecommerce-ltv\/","title":{"rendered":"How to Calculate Your Ecommerce LTV (and Why to Do It in Margin, Not Revenue)"},"content":{"rendered":"\n<!-- ===== STRAT article header (reading time + table of contents) ===== -->\n<!-- Paste this block into a \"Custom HTML\" block right AFTER the first paragraph of the post. -->\n<!-- The reading time and the table of contents generate themselves by reading the article. Just edit the date. -->\n<div class=\"strat-ah\" id=\"stratArticleHeader\">\n  <style>\n    .strat-ah{\n      --ah-bg:#ffffff; --ah-pink:#ec186c; --ah-line:#eaeaea;\n      --ah-ink:#1a1a1a; --ah-muted:#777777; --ah-body:#3f3f3f;\n      background:var(--ah-bg); border:1px solid var(--ah-line); border-radius:16px;\n      padding:22px 26px; margin:32px 0;\n      font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;\n      color:var(--ah-body); box-shadow:0 6px 22px rgba(0,0,0,.05);\n    }\n    .strat-ah *{box-sizing:border-box}\n    .strat-ah__meta{\n      display:flex; flex-wrap:wrap; gap:18px; align-items:center;\n      font-size:13px; color:var(--ah-muted); padding-bottom:16px; border-bottom:1px solid var(--ah-line);\n    }\n    .strat-ah__meta span{display:inline-flex; align-items:center; gap:7px}\n    .strat-ah__meta svg{display:block; color:var(--ah-pink)}\n    .strat-ah__eyebrow{\n      display:block; font-size:11px; font-weight:600; letter-spacing:.14em;\n      text-transform:uppercase; color:var(--ah-pink); margin:18px 0 12px;\n    }\n    .strat-ah__toc{margin-top:4px}\n    .strat-ah__toc ol{margin:0; padding:0; list-style:none; counter-reset:toc}\n    .strat-ah__toc li{counter-increment:toc; margin:0 0 9px}\n    .strat-ah__toc li:last-child{margin-bottom:0}\n    .strat-ah__toc a{\n      display:flex; gap:10px; align-items:baseline; text-decoration:none !important;\n      color:var(--ah-ink) !important; font-size:14px; line-height:1.45; transition:color .15s ease;\n    }\n    .strat-ah__toc a::before{\n      content:counter(toc,decimal-leading-zero); color:var(--ah-pink); font-weight:600;\n      font-size:12px; flex:0 0 auto; min-width:22px;\n    }\n    .strat-ah__toc a:hover{color:var(--ah-pink) !important}\n    @media (max-width:560px){ .strat-ah{padding:20px 18px} }\n  <\/style>\n\n  <div class=\"strat-ah__meta\">\n    <span id=\"stratReadTime\">\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"9\"><\/circle><path d=\"M12 7v5l3 2\"><\/path><\/svg>\n      Calculating\u2026\n    <\/span>\n    <!-- EDIT the updated date here (or delete this <span> if you don't want to show it): -->\n    <span>\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"17\" rx=\"2\"><\/rect><path d=\"M3 9h18M8 2v4M16 2v4\"><\/path><\/svg>\n      Updated 28 June 2026\n    <\/span>\n  <\/div>\n\n  <!-- The table of contents fills itself from the article's H2s: -->\n  <div class=\"strat-ah__toc\" id=\"stratTocSection\">\n    <span class=\"strat-ah__eyebrow\">In this article<\/span>\n    <ol id=\"stratTocList\"><\/ol>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  function countWords(s){ s=(s||'').trim(); return s ? s.split(\/\\s+\/).length : 0; }\n  function slugify(s){\n    return (s||'').toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'')\n      .replace(\/[^a-z0-9\\s-]\/g,'').trim().replace(\/\\s+\/g,'-').slice(0,60);\n  }\n  function findRoot(box){\n    var node=box.parentElement;\n    while(node && node!==document.body){\n      var hs=node.querySelectorAll('h2');\n      for(var i=0;i<hs.length;i++){\n        if(box.compareDocumentPosition(hs[i]) &#038; Node.DOCUMENT_POSITION_FOLLOWING) return node;\n      }\n      node=node.parentElement;\n    }\n    return box.parentElement;\n  }\n  function init(){\n    var box=document.getElementById('stratArticleHeader');\n    if(!box) return;\n    var root=findRoot(box);\n\n    var heads=Array.prototype.slice.call(root.querySelectorAll('h2')).filter(function(h){\n      return box.compareDocumentPosition(h) &#038; Node.DOCUMENT_POSITION_FOLLOWING;\n    });\n    var list=document.getElementById('stratTocList');\n    var used={};\n    if(heads.length){\n      heads.forEach(function(h,i){\n        var id=h.id;\n        if(!id){ id=slugify(h.textContent)||('sec-'+i); if(used[id]) id=id+'-'+i; h.id=id; }\n        used[id]=true;\n        var li=document.createElement('li');\n        var a=document.createElement('a');\n        a.href='#'+id; a.textContent=h.textContent.trim();\n        a.addEventListener('click',function(e){\n          e.preventDefault();\n          var t=document.getElementById(id);\n          if(t){ t.scrollIntoView({behavior:'smooth',block:'start'}); history.replaceState(null,'','#'+id); }\n        });\n        li.appendChild(a); list.appendChild(li);\n      });\n    } else {\n      document.getElementById('stratTocSection').style.display='none';\n    }\n\n    var total=countWords(root.innerText||root.textContent);\n    var own=countWords(box.innerText||box.textContent);\n    var words=Math.max(total-own,total>0?total:0);\n    var mins=Math.max(1,Math.round(words\/200));\n    var rt=document.getElementById('stratReadTime');\n    if(rt) rt.innerHTML=rt.innerHTML.replace('Calculating\u2026', mins+' min read');\n  }\n  if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded',init); }\n  else { init(); }\n})();\n<\/script>\n<!-- ===== End STRAT article header ===== -->\n\n\n\n<p class=\"wp-block-paragraph\">LTV (Lifetime Value), which many people also know as CLV or customer lifetime value, is probably the metric that shapes the most growth decisions and the one most brands find hardest to calculate. It tells you what a customer is really worth over the course of their relationship with you, and therefore how much you can afford to pay to acquire them. Without a well-calculated LTV, setting your acquisition budget is flying blind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The problem is that almost everyone calculates it on revenue, and that way the number comes out inflated and misleads you. In this guide you will see the full calculation flow step by step, with the formula, a worked example with real numbers, and the nuance that changes everything: calculating it in margin, not in revenue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What LTV is (and what it is not)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">LTV is the total value a customer generates for your brand across their whole life as a customer, not in a single purchase. It is a long-term view, as opposed to the ticket of one order, which is a snapshot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two common confusions worth clearing up from the start.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first: LTV is not a customer&#8217;s annual value, it is their value across their whole life, which usually spans several years.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The second: real LTV is measured in profit, not revenue. A customer who buys \u20ac400 from you at a 20% margin is not worth the same as one who buys \u20ac400 at a 60% margin, even if in revenue they are identical. Calculating LTV on gross sales is the same mistake as looking at ROAS instead of <a href=\"https:\/\/strat.es\/en\/what-is-poas\/\" target=\"_blank\" rel=\"noopener\" style=\"color:#ec186c; text-decoration:underline; text-decoration-color:#ec186c\">POAS<\/a>: it gives you a big, pretty number that does not translate into cash.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why LTV matters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Because it is the metric that decides how much you can invest in acquiring a new customer without losing money. Without a clear LTV, you set your acquisition budget blind, and you end up putting an arbitrary ceiling on your CAC. But there is something deeper. LTV shifts the focus: you stop looking at the single sale and start looking at the whole relationship with the customer, which is where the real profit of an ecommerce lies. A brand that knows its LTV can acquire more aggressively than a competitor who only looks at the first purchase, and grow exactly where the other one stalls.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is the LTV formula?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The historical calculation, which is the starting point for any ecommerce, is built from four pieces: average order value, purchase frequency, customer lifespan and margin. This is the order.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Define the period and gather the data.<\/strong> Choose a representative window (usually 12 months) and gather the total revenue, number of orders, number of unique customers, returns and your contribution margin, all from the same period. That window is not the customer&#8217;s lifespan, it is only the period from which you measure their annual purchase rate and their churn. The full lifespan is added in step 4, when you estimate how many years the customer stays.<\/li>\n\n\n\n<li><strong>Calculate the average order value (AOV).<\/strong> It is what a customer spends per order. The formula: AOV = total revenue \/ number of orders.<\/li>\n\n\n\n<li><strong>Calculate the purchase frequency.<\/strong> How many times a customer buys in the period. The formula: frequency = number of orders \/ number of unique customers.<\/li>\n\n\n\n<li><strong>Estimate the customer lifespan.<\/strong> How long, on average, a customer keeps buying from you. The simplest way is from the annual churn rate: customer lifespan = 1 \/ churn. If your annual churn is 40%, the average lifespan is 2.5 years. If you have enough history, you can measure directly the observed time between the first and last purchase. This is the step that turns the annual rate you have just measured into the customer&#8217;s whole-life value.<\/li>\n\n\n\n<li><strong>Apply the contribution margin.<\/strong> This is the key. Multiply by your margin to move from revenue to profit. The full formula: LTV = AOV \u00d7 frequency \u00d7 customer lifespan \u00d7 contribution margin.<\/li>\n\n\n\n<li><strong>Subtract the CAC and compare.<\/strong> LTV only makes sense against what it costs you to acquire a customer (CAC). The LTV:CAC ratio is what tells you whether your acquisition model is sustainable.<\/li>\n\n\n\n<li><strong>Segment.<\/strong> A single global LTV hides almost everything. Calculate it by cohort, by acquisition channel and by product family, because that is where the real decisions appear.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">*<strong>How to get the churn.<\/strong> In a one-off-purchase ecommerce, churn is not given to you, you have to define it. The key is to decide a window: how long without buying you consider a customer lost (for example, 12 months, depending on your repurchase cycle). From there, churn = 1 \u2212 retention rate. You get the data from Shopify&#8217;s customer cohort analysis report (in Analytics), which groups your customers by month of first purchase and gives you retention over time. Subtracting from 100 gives you the churn. If you sell by subscription it is more direct, because the cancellation is explicit and your subscription app gives it to you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A worked example<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let us see it with an example store, over a 12-month window.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Revenue: \u20ac500,000<\/li>\n\n\n\n<li>Orders: 5,000<\/li>\n\n\n\n<li>Unique customers: 3,000<\/li>\n\n\n\n<li>Annual churn: 40%<\/li>\n\n\n\n<li>Contribution margin: 60%<\/li>\n\n\n\n<li>CAC: \u20ac80<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Step by step. The average order value is 500,000 \/ 5,000 = \u20ac100. The purchase frequency is 5,000 \/ 3,000 = 1.67 orders per customer per year. The customer lifespan is 1 \/ 0.40 = 2.5 years.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With that, the LTV in revenue would be 100 \u00d7 1.67 \u00d7 2.5 = \u20ac417.5. And here comes the nuance: applying the 60% margin, the real LTV in profit is 417.5 \u00d7 0.60 = \u20ac250.5.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The difference is not small. If you compare the LTV in revenue (\u20ac417.5) with the CAC (\u20ac80), you get a ratio of 5.2 to 1 and think you are well clear. But the honest number is the margin one, \u20ac250.5 against \u20ac80, a ratio of 3.1 to 1. Still healthy, but half of what it appeared. Making investment decisions with the first number is the fastest way to scale losses.<\/p>\n\n\n\n<!-- STRAT \u00b7 LTV calculation example table \u00b7 custom HTML block -->\n<style>\n.strat-ltv-wrap{font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#1a1a1a;margin:32px 0}\n.strat-ltv-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;box-shadow:0 6px 22px rgba(0,0,0,.05)}\n.strat-ltv-table{width:100%;border-collapse:collapse;min-width:560px;background:#ffffff;border:1px solid #ececec;border-radius:14px;overflow:hidden}\n.strat-ltv-table thead th{background:#ec186c;color:#ffffff;font-weight:600;text-align:left;padding:15px 18px;font-size:14px;letter-spacing:.2px}\n.strat-ltv-table td{padding:13px 18px;font-size:14px;line-height:1.5;border-top:1px solid #ececec;vertical-align:top}\n.strat-ltv-table td:first-child{font-weight:600}\n.strat-ltv-table td:nth-child(2){color:#6b6b6b}\n.strat-ltv-table td:last-child{font-weight:600;white-space:nowrap}\n.strat-ltv-table tbody tr:nth-child(even):not(.strat-ltv-group):not(.strat-ltv-key) td{background:#fafafa}\n.strat-ltv-group td{background:#141414;color:#ffffff;font-weight:600;font-size:13px;letter-spacing:.4px;text-transform:uppercase;padding:11px 18px}\n.strat-ltv-key td{background:rgba(236,24,108,.06)}\n.strat-ltv-key td:last-child{color:#ec186c}\n@media(max-width:640px){.strat-ltv-table td,.strat-ltv-table thead th{padding:11px 14px;font-size:13px}}\n<\/style>\n<div class=\"strat-ltv-wrap\">\n  <div class=\"strat-ltv-scroll\">\n    <table class=\"strat-ltv-table\">\n      <thead>\n        <tr>\n          <th>Item<\/th>\n          <th>How it is obtained<\/th>\n          <th>Result<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr class=\"strat-ltv-group\"><td colspan=\"3\">Starting data (12 months)<\/td><\/tr>\n        <tr><td>Revenue<\/td><td>From your store<\/td><td>\u20ac500,000<\/td><\/tr>\n        <tr><td>Orders<\/td><td>From your store<\/td><td>5,000<\/td><\/tr>\n        <tr><td>Unique customers<\/td><td>From your store<\/td><td>3,000<\/td><\/tr>\n        <tr><td>Annual churn<\/td><td>From your store<\/td><td>40%<\/td><\/tr>\n        <tr><td>Contribution margin<\/td><td>From your store<\/td><td>60%<\/td><\/tr>\n        <tr><td>CAC<\/td><td>From your store<\/td><td>\u20ac80<\/td><\/tr>\n        <tr class=\"strat-ltv-group\"><td colspan=\"3\">LTV calculation<\/td><\/tr>\n        <tr><td>Average order value (AOV)<\/td><td>Revenue \/ orders<\/td><td>\u20ac100<\/td><\/tr>\n        <tr><td>Purchase frequency<\/td><td>Orders \/ unique customers<\/td><td>1.67 per year<\/td><\/tr>\n        <tr><td>Customer lifespan<\/td><td>1 \/ churn<\/td><td>2.5 years<\/td><\/tr>\n        <tr><td>LTV in revenue<\/td><td>AOV \u00d7 frequency \u00d7 lifespan<\/td><td>\u20ac417.5<\/td><\/tr>\n        <tr class=\"strat-ltv-key\"><td>LTV in margin<\/td><td>LTV in revenue \u00d7 margin<\/td><td>\u20ac250.5<\/td><\/tr>\n        <tr><td>LTV:CAC in revenue<\/td><td>417.5 \/ 80<\/td><td>5.2 : 1<\/td><\/tr>\n        <tr class=\"strat-ltv-key\"><td>LTV:CAC in margin<\/td><td>250.5 \/ 80<\/td><td>3.1 : 1<\/td><\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">LTV in margin, not in revenue<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It is the same philosophy with which we measure everything at our agency: what matters is profit, not the sales figure. An LTV calculated on revenue leads you to overestimate how much you can pay for a customer, to accept a CAC that is too high, and to believe an acquisition is profitable when it is actually eating into your cash.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Calculating it on contribution margin, subtracting product cost, shipping and returns, gives you the figure you can really decide with. It is not an accounting detail, it is the difference between growth that funds your business and growth that consumes it.<\/p>\n\n\n\n<!-- STRAT \u00b7 Chart: LTV in revenue vs LTV in margin, against CAC \u00b7 custom HTML block -->\n<style>\n.strat-gltv-wrap{font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#1a1a1a;margin:32px 0;background:#ffffff;border:1px solid #ececec;border-radius:14px;box-shadow:0 6px 22px rgba(0,0,0,.05);padding:22px 20px}\n.strat-gltv-title{font-size:16px;font-weight:600;margin:0 0 4px;color:#1a1a1a}\n.strat-gltv-sub{font-size:13px;color:#6b6b6b;margin:0 0 14px}\n.strat-gltv svg{width:100%;height:auto;display:block}\n.strat-gltv-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px;font-size:12.5px;color:#1a1a1a}\n.strat-gltv-legend span{display:inline-flex;align-items:center;gap:7px}\n.strat-gltv-dot{width:12px;height:12px;border-radius:3px;display:inline-block}\n.strat-gltv-note{font-size:12.5px;color:#6b6b6b;margin:12px 0 0;line-height:1.5}\n<\/style>\n\n<div class=\"strat-gltv-wrap\">\n  <p class=\"strat-gltv-title\">LTV in revenue vs LTV in margin, against CAC<\/p>\n  <p class=\"strat-gltv-sub\">Same customers, two ways to measure. The margin one is the real figure.<\/p>\n  <div class=\"strat-gltv\">\n    <svg viewBox=\"0 0 720 460\" preserveAspectRatio=\"xMidYMid meet\" role=\"img\" aria-label=\"Comparison of LTV in revenue, LTV in margin and CAC\">\n      <!-- Gridlines and Y-axis labels -->\n      <g stroke=\"#ececec\" stroke-width=\"1\">\n        <line x1=\"95\" y1=\"370\" x2=\"665\" y2=\"370\"><\/line>\n        <line x1=\"95\" y1=\"306\" x2=\"665\" y2=\"306\"><\/line>\n        <line x1=\"95\" y1=\"241\" x2=\"665\" y2=\"241\"><\/line>\n        <line x1=\"95\" y1=\"177\" x2=\"665\" y2=\"177\"><\/line>\n        <line x1=\"95\" y1=\"112\" x2=\"665\" y2=\"112\"><\/line>\n      <\/g>\n      <g fill=\"#6b6b6b\" font-size=\"12\" text-anchor=\"end\" font-family=\"Poppins,sans-serif\">\n        <text x=\"85\" y=\"374\">\u20ac0<\/text>\n        <text x=\"85\" y=\"310\">\u20ac100<\/text>\n        <text x=\"85\" y=\"245\">\u20ac200<\/text>\n        <text x=\"85\" y=\"181\">\u20ac300<\/text>\n        <text x=\"85\" y=\"116\">\u20ac400<\/text>\n      <\/g>\n\n      <!-- LTV in revenue bar (inflates) -->\n      <rect x=\"185\" y=\"101\" width=\"150\" height=\"269\" rx=\"6\" fill=\"#141414\">\n        <title>LTV in revenue: \u20ac417.5<\/title>\n      <\/rect>\n      <text x=\"260\" y=\"92\" text-anchor=\"middle\" font-size=\"16\" font-weight=\"700\" fill=\"#141414\" font-family=\"Poppins,sans-serif\">\u20ac417.5<\/text>\n\n      <!-- LTV in margin bar (the real one) -->\n      <rect x=\"415\" y=\"209\" width=\"150\" height=\"161\" rx=\"6\" fill=\"#ec186c\">\n        <title>LTV in margin: \u20ac250.5<\/title>\n      <\/rect>\n      <text x=\"490\" y=\"200\" text-anchor=\"middle\" font-size=\"16\" font-weight=\"700\" fill=\"#ec186c\" font-family=\"Poppins,sans-serif\">\u20ac250.5<\/text>\n\n      <!-- CAC reference line -->\n      <line x1=\"95\" y1=\"318\" x2=\"665\" y2=\"318\" stroke=\"#e0a000\" stroke-width=\"2\" stroke-dasharray=\"6 5\"><\/line>\n      <text x=\"660\" y=\"312\" text-anchor=\"end\" font-size=\"12.5\" font-weight=\"600\" fill=\"#e0a000\" font-family=\"Poppins,sans-serif\">CAC \u20ac80<\/text>\n\n      <!-- Category and ratio labels -->\n      <g font-family=\"Poppins,sans-serif\" text-anchor=\"middle\">\n        <text x=\"260\" y=\"392\" font-size=\"13\" font-weight=\"600\" fill=\"#1a1a1a\">LTV in revenue<\/text>\n        <text x=\"260\" y=\"411\" font-size=\"12.5\" fill=\"#6b6b6b\">5.2 : 1 against CAC<\/text>\n        <text x=\"490\" y=\"392\" font-size=\"13\" font-weight=\"600\" fill=\"#1a1a1a\">LTV in margin<\/text>\n        <text x=\"490\" y=\"411\" font-size=\"12.5\" font-weight=\"600\" fill=\"#ec186c\">3.1 : 1 against CAC<\/text>\n      <\/g>\n    <\/svg>\n  <\/div>\n  <div class=\"strat-gltv-legend\">\n    <span><i class=\"strat-gltv-dot\" style=\"background:#ec186c\"><\/i>LTV in margin (the real one)<\/span>\n    <span><i class=\"strat-gltv-dot\" style=\"background:#141414\"><\/i>LTV in revenue (inflates)<\/span>\n    <span><i class=\"strat-gltv-dot\" style=\"background:#e0a000\"><\/i>CAC<\/span>\n  <\/div>\n  <p class=\"strat-gltv-note\">The same customer is worth \u20ac417.5 if you look at it in revenue, but only \u20ac250.5 in margin, which is what actually reaches the bank. That is why the ratio against CAC is not 5.2 to 1, it is 3.1 to 1. Deciding your investment with the revenue number is the fastest way to scale losses.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What LTV is for<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Calculating LTV is not a theoretical exercise, it serves one very concrete purpose: knowing how much you can invest to acquire. The most-used reference is an LTV:CAC ratio of 3 to 1. Below that, you are paying too much to acquire. Far above it, you are probably underinvesting and leaving growth on the table.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This connects directly with <a href=\"https:\/\/strat.es\/en\/ecommerce-paid-media-agency\/\" target=\"_blank\" rel=\"noopener\" style=\"color:#ec186c; text-decoration:underline; text-decoration-color:#ec186c\">how much you spend on advertising<\/a>. A brand with a high LTV can afford a higher CAC on the first purchase, because it recovers the margin on the following ones, and can acquire more aggressively than a single-purchase one. It is exactly the logic we apply when deciding <a href=\"https:\/\/strat.es\/en\/how-much-to-spend-on-meta-ads\/\" target=\"_blank\" rel=\"noopener\" style=\"color:#ec186c; text-decoration:underline; text-decoration-color:#ec186c\">how much to spend on Meta Ads<\/a>. And since LTV is built through repeat purchase and retention, all the work of <a href=\"https:\/\/strat.es\/en\/ecommerce-email-marketing-agency\/\" target=\"_blank\" rel=\"noopener\" style=\"color:#ec186c; text-decoration:underline; text-decoration-color:#ec186c\">email and loyalty<\/a> is, at bottom, LTV work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tips to increase LTV<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">LTV rises through three levers, and it pays to work them at the same time: raise the average order value, increase the purchase frequency, and extend the customer lifespan. To that add a fourth, protect the margin, because the LTV that counts is the profit one.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Raise the average order value (AOV).<\/strong> With cross-selling, up-selling, bundles and a well-calculated free-shipping threshold, each order comes to be worth more.<\/li>\n\n\n\n<li><strong>Increase the purchase frequency.<\/strong> Here the <a href=\"https:\/\/strat.es\/en\/ecommerce-email-marketing-flows\/\" target=\"_blank\" rel=\"noopener\" style=\"color:#ec186c; text-decoration:underline; text-decoration-color:#ec186c\">email flows<\/a> lead, such as the welcome, post-purchase or replenishment, alongside a loyalty programme or subscription for recurring-consumption products.<\/li>\n\n\n\n<li><strong>Extend the customer lifespan.<\/strong> A good post-purchase experience, responsive support and the reactivation flows reduce churn and delay the moment the customer stops buying from you.<\/li>\n\n\n\n<li><strong>Protect the margin.<\/strong> Depending less on permanent discounting, and improving margin per product, raises real LTV without selling a single extra unit.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The powerful part is that none of these levers needs more acquisition investment. They work on customers you already have, so they raise LTV and, along the way, your overall profitability.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Methods: historical, cohort and predictive<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The calculation in the steps above is the historical method, and it is the best starting point. But there are three levels depending on the maturity of your data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>historical<\/strong> uses the averages of a period, as in the example. It is simple, quick and enough to start making decisions, though it looks to the past and assumes the future will resemble it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>cohort<\/strong> groups customers by the month they made their first purchase and follows their real behaviour over time. It is considerably more reliable, because it captures how each cohort genuinely evolves and reveals whether retention improves or worsens over time. It is the one we recommend as soon as you have enough history.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>predictive<\/strong> uses probabilistic models to estimate each customer&#8217;s future value from their behaviour. It is the most powerful and the most demanding in data and tools, and makes sense when the volume and analytical maturity justify it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common mistakes when calculating LTV<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Calculating it on revenue instead of margin, which inflates the number and leads to overpaying to acquire.<\/li>\n\n\n\n<li>Confusing the annual value with the LTV, which spans the customer&#8217;s whole life.<\/li>\n\n\n\n<li>Not subtracting returns or the real costs of serving the order.<\/li>\n\n\n\n<li>Using an arbitrary or too-long customer lifespan, which inflates the result with no basis.<\/li>\n\n\n\n<li>Stopping at a single global LTV, when the average hides enormous differences by channel, cohort and product.<\/li>\n\n\n\n<li>Calculating it once and forgetting it, instead of reviewing it regularly as retention evolves.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Are LTV and CLV the same?<\/strong> Yes, they are the same metric. LTV (Lifetime Value), CLV (Customer Lifetime Value) and sometimes CLTV are different names for the same thing: the value a customer generates across their whole relationship with the brand. Neither the concept nor the calculation changes, only the name each person uses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What is the formula to calculate an ecommerce&#8217;s LTV?<\/strong> The historical formula is LTV = average order value (AOV) \u00d7 purchase frequency \u00d7 customer lifespan \u00d7 contribution margin. The AOV is revenue divided by orders, the frequency is orders divided by unique customers, and the customer lifespan is estimated as 1 divided by the churn rate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is LTV calculated on revenue or on profit?<\/strong> On profit. Calculating it on revenue inflates the number and leads you to overestimate how much you can pay to acquire a customer. You have to apply the contribution margin to get the figure to decide with.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What LTV:CAC ratio is healthy?<\/strong> The usual reference is 3 to 1. Below that, you are paying too much to acquire. Far above it, you may be underinvesting and leaving growth uncaptured. It is a reference, not a law, and it depends on your model and your margins.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How do I estimate a customer&#8217;s average lifespan?<\/strong> The simplest way is 1 divided by your annual churn rate. With a churn of 25%, the average lifespan is 4 years. If you have enough history, you can measure directly the observed time between your customers&#8217; first and last purchase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How often should I recalculate LTV?<\/strong> Regularly, because it changes as your retention, your margin and your product mix evolve. Reviewing it just once and taking the number as good forever is one of the most common mistakes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does email marketing affect LTV?<\/strong> A great deal. LTV is built through repeat purchase and loyalty, which is exactly the work of the email flows and retention. Raising the purchase frequency and extending the customer lifespan lifts LTV with no additional acquisition cost.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to know what a customer is really worth in your ecommerce and how much you can invest to acquire them without losing money, we will calculate it with you. At STRAT we analyse your LTV in margin, by cohort and by channel, and cross it with your CAC to set the real investment ceiling for <a href=\"https:\/\/strat.es\/en\/ecommerce-paid-media-agency\/\" target=\"_blank\" rel=\"noopener\" style=\"color:#ec186c; text-decoration:underline; text-decoration-color:#ec186c\">a paid media strategy measured in profit<\/a>, not in the platform&#8217;s gross ROAS.<\/p>\n\n\n\n<!-- ===== STRAT author signature \u00b7 Jaime Mu\u00f1oz-Seca ===== -->\n<!-- Paste this whole block into a \"Custom HTML\" block at the end of the post. -->\n<div class=\"strat-author\">\n  <style>\n    .strat-author{\n      --sa-bg:#141414; --sa-pink:#ec186c; --sa-line:#2a2a2a;\n      --sa-ink:#f5f5f5; --sa-muted:#a3a3a3; --sa-bio:#cccccc;\n      display:flex; gap:22px; align-items:center;\n      background:var(--sa-bg); border:1px solid var(--sa-line); border-radius:16px;\n      padding:24px 26px; margin:40px 0;\n      font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;\n      box-shadow:0 18px 40px rgba(0,0,0,.18);\n    }\n    .strat-author *{box-sizing:border-box}\n    .strat-author__photo{\n      width:104px; height:104px; flex:0 0 104px; border-radius:50%;\n      object-fit:cover; display:block;\n      border:2px solid var(--sa-pink); box-shadow:0 0 0 4px rgba(236,24,108,.18);\n    }\n    .strat-author__body{min-width:0}\n    .strat-author__eyebrow{\n      display:block; font-size:11px; font-weight:600; letter-spacing:.14em;\n      text-transform:uppercase; color:var(--sa-pink); margin:0 0 4px;\n    }\n    .strat-author__name{\n      font-size:20px; font-weight:700; color:var(--sa-ink);\n      margin:0 0 2px; line-height:1.2;\n    }\n    .strat-author__role{\n      display:block; font-size:13.5px; font-weight:500; color:var(--sa-muted); margin:0 0 10px;\n    }\n    .strat-author__bio{\n      font-size:14px; line-height:1.55; color:var(--sa-bio); margin:0 0 14px;\n    }\n    .strat-author__link{\n      display:inline-flex; align-items:center; gap:8px;\n      background:var(--sa-pink); color:#ffffff !important; text-decoration:none !important;\n      font-size:13.5px; font-weight:600; padding:9px 16px; border-radius:9px;\n      transition:background .15s ease, transform .15s ease;\n    }\n    .strat-author__link:hover{background:#d1145f; transform:translateY(-1px); color:#fff !important;}\n    .strat-author__link svg{display:block}\n    @media (max-width:560px){\n      .strat-author{flex-direction:column; text-align:center; gap:16px; padding:24px 20px}\n      .strat-author__link{align-self:center}\n    }\n  <\/style>\n  <img decoding=\"async\" class=\"strat-author__photo\" src=\"https:\/\/strat.es\/wp-content\/uploads\/2026\/06\/jaime-munoz-seca-strat.png\" alt=\"Jaime Mu\u00f1oz-Seca, Paid Media Manager at STRAT\">\n  <div class=\"strat-author__body\">\n    <span class=\"strat-author__eyebrow\">Written by<\/span>\n    <p class=\"strat-author__name\">Jaime Mu\u00f1oz-Seca<\/p>\n    <span class=\"strat-author__role\">Paid Media Manager at STRAT<\/span>\n    <p class=\"strat-author__bio\">Over six years scaling online stores through daily hand-to-hand combat with ad managers. He survived Apple&#8217;s iOS privacy changes and the weekly chaos out of Meta, and learned that magic formulas do not work here: only data, continuous testing and common sense.<\/p>\n    <a class=\"strat-author__link\" href=\"https:\/\/www.linkedin.com\/in\/jaime-munoz-seca-sese\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.06 2.06 0 1 1 0-4.13 2.06 2.06 0 0 1 0 4.13zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.73v20.54C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.73V1.73C24 .77 23.2 0 22.22 0z\"><\/path><\/svg>\n      Connect on LinkedIn\n    <\/a>\n  <\/div>\n<\/div>\n<!-- ===== End author signature ===== -->\n","protected":false},"excerpt":{"rendered":"<p>Calculating\u2026 Updated 28 June 2026 In this article LTV (Lifetime Value), which many people also know as CLV or customer lifetime value, is probably the metric that shapes the most growth decisions and the one most brands find hardest to calculate. It tells you what a customer is really worth over the course of their [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[31,29],"tags":[],"class_list":["post-5371","post","type-post","status-publish","format-standard","category-ecommerce-strategy","category-paid-media-ecommerce","entry"],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"gur_featured_image":false,"gur_blog_thumbnail":false},"uagb_author_info":{"display_name":"Jaime","author_link":"https:\/\/strat.es\/en\/author\/jaimote\/"},"uagb_comment_info":0,"uagb_excerpt":"Calculating\u2026 Updated 28 June 2026 In this article LTV (Lifetime Value), which many people also know as CLV or customer lifetime value, is probably the metric that shapes the most growth decisions and the one most brands find hardest to calculate. It tells you what a customer is really worth over the course of their&hellip;","_links":{"self":[{"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/posts\/5371","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/comments?post=5371"}],"version-history":[{"count":2,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/posts\/5371\/revisions"}],"predecessor-version":[{"id":5379,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/posts\/5371\/revisions\/5379"}],"wp:attachment":[{"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/media?parent=5371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/categories?post=5371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/tags?post=5371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}