Skip to content

Interactive demonstration

Two identical players. One is already gone.

Two players. Same sessions per week, same hours, same spend, same last-seen date — identical by construction, because that is the situation worth demonstrating. One of them has finished the game the way you finish a book. The other is being pushed out. Your dashboard will report them as the same player until one of them is gone. Move the dials and watch where the two come apart.

[ Illustrative synthetic data — demonstration only ]
player A — satiating player B — taking friction dashed vertical: the week a player stops playing
WHAT THE DASHBOARD SAYS
PLAYER A · SEPARATOR READ
PLAYER B · SEPARATOR READ
difference between the two players on every field your dashboard reports
weeks before the first of them leaves
of the window you are looking at, the share in which the two rows are indistinguishable

What you are looking at

The upper chart is the view you have today: weekly sessions, two lines that sit on each other within noise. Nothing in it separates a player who is done from a player who is fed up. Both rows stay healthy, then one stops.

The lower chart is two channels the aggregate hides. Player A’s per-session yield — how much the session gives back, in progress, novelty, anything the game hands over for the time it takes — decays. The sessions keep their length and their count while their content thins out. Player B’s friction events accumulate instead: reports, rage-quits, losing streaks against a wider skill spread. Yield holds. The cost of collecting it rises.

Turn either dial to zero and that player stops leaving. Turn both up and they leave in the same month for opposite reasons, and a retention report counts two units of churn and names no cause. The fixes are opposite too: one wants new content depth, the other wants the friction removed. A single retention number averages them into a lever that moves neither.

One honest note. Both players here were generated to match on the dashboard fields, because a demonstration of a separator needs two cases a dashboard cannot separate. On your telemetry the two groups are not identical, they overlap — and the overlap is where the whole problem lives. The sample report shows what the split looks like on a whole population, and the readiness audit tells you whether your fields can support it at all.

Illustrative synthetic data — demonstration only. Both players are generated to match on the four aggregate fields a retention dashboard reports, within noise: sessions/week drawn from the same Poisson mean, hours from the same mean session length, spend from the same rate. They differ in two channels the aggregate hides: per-session yield y(t) = y₀·e^{−s·t} for the satiating player, and friction events drawn at λ_f rising linearly in the friction dial for the other. Exit hazard h(t) = h₀ + a·(1 − y(t)/y₀) for satiation and h(t) = h₀ + b·f(t) for friction, exits drawn from the resulting survival curve. The weighting that separates these channels on real telemetry is not shown. Companion to “The Churn You Can’t See”.