고객생애가치 분석

Lifetime value analysis

획득 코호트의 고객당 누적 매출이 시간이 지나며 어떻게 쌓이는지 비교합니다.

···
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);

고객생애가치 분석은 고객을 얻은 뒤 일정 기간 동안 쌓인 매출이나 이익을 획득 집단별로 살펴보는 일입니다. 획득비용만 보면 저렴하게 들어온 고객이 오래 남아 구매했는지는 알 수 없습니다.

데모는 1월과 2월 획득 코호트의 고객당 누적 매출 곡선을 같은 경과 월로 맞춰 그립니다. 같은 시점의 값과 곡선 기울기를 비교하면 초기 구매와 재구매의 차이를 볼 수 있습니다.

관측이 짧은 집단의 빈 미래 구간을 0으로 취급하지 마세요. 수익성을 판단하려면 환불·마진·획득비용도 별도로 반영해야 합니다.

언제 쓰나

획득 채널이나 가입 시기별 고객 가치가 장기적으로 다른지 볼 때 씁니다.

페이지로 열기 ↗