What is cohort analysis?

A way of tracking a group of people who started together, so changes in their behavior over time can be compared fairly.

Cohort analysis diagram example

Public diagram from the Machinations Community. Open it on its own page

Cohort analysis groups people by when they started, or by a shared trait such as the channel that brought them, and follows each group over time. It separates real changes in behavior from the distortion caused by mixing old and new users in one average. Teams use it to judge whether retention, spending or churn is actually getting better.

How it works

A cohort table has one row per starting group and one column per period since the start. Reading across a row shows how that group ages, for example how many are still active after one, two and three months. Reading down a column compares groups at the same age, which is the fair comparison. A blended average over all users can rise simply because the user base got younger, even if no group behaves any better.

The main trade-off is size. Small cohorts give noisy percentages, and splitting by many traits makes each group smaller. Another trap is changing the definition of active between cohorts, which makes the rows look different when the behavior is not.

Example

Say a meal-kit service signs up 1,000 customers in January and 1,000 in February. After three months 400 of the January group are still ordering (40%), while 550 of the February group are (55%). The blended view of all active customers hides this, because January also contains many older customers. The column for month three shows that the February cohort retains 15 points better, which points at something that changed between the two groups, such as onboarding. The figures are an illustration.

How to model it in Machinations

Create one Source and one Pool per cohort, or let a Source add a labeled batch each month. Use a Gate or a state connection to set the share that stays each period and a Drain for those who leave. Put the retention rate in a Register so it can change per cohort. Play the diagram and chart each cohort Pool over time to compare their curves.

See cohort analysis in a system you can Play

Build the rules in a Machinations diagram, change a value and Play it to watch how the system responds.