3 ยท Retention Lab

Overall return rate

{pctOrDash(payload.kpis.overallReturnRate)}

Share of all players who ever played more than once. Target: {settings.return7_target}%+ within 7 days.

Time to second play

({ label: b.label, value: b.value }))} />

Cohort retention triangle

Each row is a starting week; each column is weeks later. Darker = more came back. Only resolved weeks are filled.

Retention curves

D1 / D7 / D30 return over time. Latest resolvable cohorts only.

Segment mix over time

Active players split into new, core, returning, at-risk and churned. Total tracked: {numOrDash(payload.activity.mau)} recently active.

({ date: m.date, value: m.new })) }, { name: 'Core', color: colors[1], points: mix.map((m) => ({ date: m.date, value: m.core })) }, { name: 'Returning', color: colors[2], points: mix.map((m) => ({ date: m.date, value: m.returning })) }, { name: 'At risk', color: colors[3], points: mix.map((m) => ({ date: m.date, value: m.atRisk })) }, { name: 'Churned', color: colors[4], points: mix.map((m) => ({ date: m.date, value: m.churned })) } ]} />