Lifetime value analysis

고객생애가치 분석

Compare how revenue per acquired customer accumulates across cohorts.

···
html
<div class="lva"><div class="lva-head">REVENUE PER CUSTOMER <b id="lva-age">MONTH 1</b></div><div class="lva-chart"><div class="lva-axis"><span>$60</span><span>$30</span><span>$0</span></div><svg viewBox="0 0 300 110" preserveAspectRatio="none" aria-label="Cumulative revenue by acquisition cohort"><path id="lva-jan" d="M 0 100 L 100 73 L 200 43 L 300 11"/><path id="lva-feb" d="M 0 100 L 100 82 L 200 61 L 300 29"/><line id="lva-cursor" x1="0" x2="0" y1="4" y2="103"/></svg></div><div class="lva-bottom"><span>MONTHS SINCE ACQUISITION</span><b>JAN <i></i> FEB</b></div></div>
css
.lva{width:min(87%,590px);font:850 clamp(10px,max(2vmin,1vw),14px)/1.2 sans-serif}.lva-head,.lva-bottom{display:flex;justify-content:space-between;gap:6px;align-items:center}.lva-head{border-bottom:2px solid var(--fg);padding-bottom:8px}.lva-head b{color:var(--accent)}.lva-chart{display:grid;grid-template-columns:clamp(23px,6vmin,40px) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:4px;height:clamp(100px,35vmin,150px);margin:clamp(10px,3vmin,22px) 0}.lva-axis{display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:clamp(10px,max(1.5vmin,1vw),12px)}.lva svg{display:block;min-width:0;min-height:0;width:100%;height:100%;overflow:hidden;background:linear-gradient(to bottom,transparent 49%,var(--line) 50%,transparent 51%)}.lva path{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;transition:stroke-dasharray .5s}.lva path:nth-child(2){stroke:var(--accent-2)}.lva line{stroke:var(--fg);stroke-width:1;stroke-dasharray:4 4;transition:x1 .5s,x2 .5s}.lva-bottom{border-top:1px solid var(--line);padding-top:6px;color:var(--muted);font-size:clamp(10px,max(1.6vmin,1vw),12px)}.lva-bottom b{color:var(--accent)}.lva-bottom i{display:inline-block;width:clamp(9px,2vmin,15px);height:3px;background:var(--accent-2);vertical-align:middle}
js
let age=1;const paths=[document.querySelector('#lva-jan'),document.querySelector('#lva-feb')];const lengths=paths.map(p=>p.getTotalLength());function draw(){paths.forEach((p,i)=>{const shown=lengths[i]*age/3;p.style.strokeDasharray=shown+' '+lengths[i]});document.querySelector('#lva-cursor').setAttribute('x1',String(age*100));document.querySelector('#lva-cursor').setAttribute('x2',String(age*100));document.querySelector('#lva-age').textContent='MONTH '+age}draw();setInterval(()=>{age=age===3?1:age+1;draw()},650);

Lifetime value analysis follows cumulative revenue or profit after acquisition, often by acquisition cohort. Acquisition cost alone cannot show whether cheaper customers stay and buy again.

The demo plots cumulative revenue per customer for January and February cohorts against the same months since acquisition. Compare values at equal ages and the slope of each curve to distinguish early purchase from repeat spending.

Do not treat unobserved future months for a young cohort as zero. Include refunds, margin, and acquisition cost separately when evaluating profitability.

When to use

Use it to compare longer-term customer value by acquisition channel or cohort.

Open as page ↗