Cohort retention

코호트 리텐션

See how many customers acquired together remain active over time.

···
html
<div class="cohorts"><div class="row head"><span>START</span><b>W0</b><b>W1</b><b>W2</b><b>W3</b></div><div class="row"><span>WEEK 1</span><i style="--v:100%">100%</i><i style="--v:74%">74%</i><i style="--v:58%">58%</i><i style="--v:47%">47%</i></div><div class="row"><span>WEEK 2</span><i style="--v:100%">100%</i><i style="--v:79%">79%</i><i style="--v:62%">62%</i><em>—</em></div><div class="row"><span>WEEK 3</span><i style="--v:100%">100%</i><i style="--v:83%">83%</i><em>—</em><em>—</em></div></div>
css
.cohorts{width:min(92%,590px);display:grid;gap:clamp(4px,1vmin,9px);font:900 clamp(10px,max(1.5vmin,1vw),13px)/1 sans-serif}.row{display:grid;grid-template-columns:clamp(48px,11vw,85px) repeat(4,1fr);gap:clamp(4px,1vmin,9px);align-items:center}.row span{color:var(--muted)}.row b{text-align:center;color:var(--muted)}.row i,.row em{font-style:normal;height:clamp(25px,7vmin,58px);display:grid;place-items:center}.row i{color:var(--fg);background:color-mix(in srgb,var(--accent) var(--v),var(--surface));border:1px solid var(--accent);animation:show 3.5s ease-in-out infinite}.row i:nth-of-type(2){animation-delay:.25s}.row i:nth-of-type(3){animation-delay:.5s}.row i:nth-of-type(4){animation-delay:.75s}.row em{border:1px dashed var(--line);color:var(--muted)}@keyframes show{0%,12%{opacity:.15;transform:scale(.9)}33%,83%{opacity:1;transform:none}100%{opacity:.15;transform:scale(.9)}}

Cohort retention follows customers who started in the same period and measures later visits or purchases. Total active users can hide churn when new acquisition is growing.

Each row in the demo is a signup week and each column is a later week. The cells fill in sequence as retention changes for each cohort.

Define an active event first. Do not treat a blank cell for a young cohort as zero retention.

When to use

Use it to see whether onboarding or CRM changes improve lasting customer activity.

Open as page ↗