Ось як порахувати retention, тобто утримання: візьміть когорту користувачів, що прийшли в той самий період, порахуйте, скільки з них були активні в пізнішому періоді, і поділіть на розмір когорти. Утримання = користувачі когорти, активні в період N ÷ усі користувачі когорти × 100 %. Формула — найпростіша частина. Складне тут слово «активні в період N», бо воно може означати три різні речі, і ті самі десять людей дадуть вам 20 %, 50 % чи 70 % залежно від того, яку з них ви оберете. Нижче всі три способи на даних, які можна перевірити вручну, і пояснення, яке число показувати.
Перш ніж рахувати, зафіксуйте чотири частини визначення:
Когорта (cohort). Хто в знаменнику: усі, хто зареєструвався в певний день, тиждень чи місяць. Акаунти команди й тестові акаунти виключіть.
Цільова дія. Що вважаємо активністю: відкриття застосунку, додану витрату, замовлення. Обирайте дію, яку робить людина, а не ту, яку система записує за неї.
Період. День, тиждень чи місяць N від реєстрації; відлік від дня 0, дня реєстрації.
Спосіб. Точний день, вікно чи «будь-коли пізніше». Звідси й беруться три види утримання.
Якщо двоє людей у команді пропустять пункт 4, вони отримають різні числа з тих самих даних, і обидва матимуть рацію.
Приклад: десять користувачів Halves
Halves — вигаданий застосунок, у якому сусіди по квартирі, пари й друзі в поїздках ділять спільні витрати. Ось десять користувачів, що зареєструвалися того самого дня; спостерігаємо за ними 30 днів. У кожному рядку — дні після реєстрації, коли людина відкривала застосунок:
Користувач
Дні, коли відкривав застосунок
u1
0, 1, 2, 7, 14, 21, 28
u2
0, 4, 11, 18, 25
u3
0, 1
u4
0, 7, 8
u5
0, 9, 20
u6
0
u7
0, 2, 15, 29
u8
0, 6, 13
u9
0, 24
u10
0, 3
Відповімо на запитання «яке в нас утримання 7-го дня?» трьома способами.
Спосіб 1: утримання дня N (класичне)
Утримання дня N враховує тих, хто був активний саме в день N. На 7-й день застосунок відкрили лише u1 і u4:
D7=102=20%
Це найсуворіший спосіб, і саме його використовує більшість публічних орієнтирів (D1, D7, D30). Для продукту, який потрібен щодня, як-от гра чи месенджер, він доречний. Для застосунку, де ділять рахунки, він шумний: u2 повернувся на 4-й і 11-й день, u8 — на 6-й і 13-й, і обидва на 7-й день рахуються «втраченими».
Спосіб 2: утримання за періодами (вікно)
Утримання за періодами (bracket retention) враховує тих, хто був активний хоча б раз у межах вікна, наприклад у дні 7–13, тобто на другому тижні. У цьому вікні заходили u1 (7-й день), u2 (11-й), u4 (7-й і 8-й), u5 (9-й) і u8 (13-й):
Тиждень 2=105=50%
Цей спосіб прощає точний день, але все одно питає, чи людина з'явилася в цей період. Для продуктів із тижневим чи місячним ритмом він зазвичай найкращий.
Спосіб 3: ковзне утримання («ще не пішов»)
Ковзне утримання (rolling retention) вважає користувача утриманим на день N, якщо він був активний у день N або будь-коли пізніше. На 7-й день це всі, чий останній візит припав на 7-й день чи пізніше: u1, u2, u4, u5, u7, u8 і u9.
Ковзне D7=107=70%
Ковзне утримання завжди не нижче за утримання дня N, бо зараховує будь-яке пізніше повернення. u9 відкрив застосунок у день 0, потім лише раз на 24-й день, і все одно рахується утриманим на 7-й.
Ті самі десять користувачів Halves дають 20 % утримання, якщо рахувати лише 7-й день, 50 % для днів 7–13 і 70 %, якщо рахувати 7-й день або будь-який пізніший
Ті самі люди, три відповіді
Спосіб
Що рахується на 7-й день
Користувачі
Утримання
День N
Активний на 7-й день
u1, u4
20 %
Вікно
Активний у дні 7–13
u1, u2, u4, u5, u8
50 %
Ковзне
Активний на 7-й день чи пізніше
u1, u2, u4, u5, u7, u8, u9
70 %
Жодне з цих чисел не хибне. Це три різні вимірювання під одним словом. Помилка — порівнювати 20 % за одним способом із 70 % за іншим, а це стається щоразу, коли публічний орієнтир для 7-го дня ставлять поруч із внутрішнім слайдом «утримання першого тижня».
Чому ковзне утримання лестить
У ковзного утримання є друга проблема: воно змінюється вже після того, як ви його показали. Порахуйте ковзне утримання 14-го дня на 20-й день: активність від 14-го дня мали u1, u2, u5 і u7, тобто 40 %. Порахуйте ту саму метрику на 30-й день, і візит u9 на 24-й день підніме її до 50 %.
Утримання дня N і за періодами остаточні, щойно минув їхній день чи вікно. Ковзне утримання старої когорти може зрости й через кілька місяців, тож дашборд на ньому непомітно переписує історію. Користуйтеся ним для одного запитання, «чи пішла людина назовсім?», але не як головним числом.
Яке утримання показувати?
Обирайте за природним ритмом використання продукту, тобто за тим, як часто повертається задоволений користувач:
Щоденні продукти (ігри, месенджери, новини): утримання дня N, D1, D7, D30.
Щотижневі продукти (спільні витрати у квартирі, продукти, командні інструменти): тижневі вікна.
Щомісячні продукти (оренда, рахунки, звіти): місячні вікна.
Сезонні продукти (поїздки, податки, свята): «чи повернувся на наступний сезон», у межах року.
Те саме питання ритму вирішує, що брати для «липкості»: DAU/MAU чи WAU/MAU. Тож розв'яжіть його один раз і користуйтеся всюди.
Хоч що ви оберете, пишіть спосіб поруч із числом: «утримання за місячними періодами, місяць 1, відкриття застосунку, без акаунтів команди: 38,7 %». Число без способу провокує хибне порівняння.
Від однієї когорти до багатьох
Одна когорта — це одна точка даних. Щоб побачити тенденцію, поставте багато когорт поруч у когортній таблиці: рядок на кожен період реєстрації, стовпчик на кожен період після неї. Рядки показують життя когорти, стовпчики порівнюють когорти одного віку.
Коли таблицю зводять до одного числа, найчастіше помиляються двічі:
Просте середнє стовпчика. Середнє з відсотків утримання ставить когорту з 2 400 людей і когорту з 800 на один рівень. Щоб описати всіх користувачів, додайте активних, додайте розміри когорт і поділіть одне на інше.
Незавершені когорти. Когорта, що зареєструвалася минулого тижня, ще не дожила до першого місяця. Не включайте її в середнє першого місяця, інакше вона потягне його вниз.
Універсального «доброго утримання» немає. Орієнтири різняться за категорією, платформою і насамперед за способом підрахунку, а більшість опублікованих не каже, яким способом рахували. Надійніше дивитися на форму кривої. Кожна когорта спершу падає, бо цікаві йдуть. Важливо, чи крива сповзає до нуля, чи вирівнюється. Пласка ділянка на суттєвому рівні — це плато утримання: люди, які знайшли тривалу цінність. Це один із найчіткіших сигналів product-market fit.
Якщо крива ніде не вирівнюється, лагодити зазвичай треба раніше, у першому тижні. Як знайти дію, що відрізняє тих, хто лишається, від тих, хто йде, — у статті про activation rate.
Утримання клієнтів у підписці
Коли шукають «retention rate», часто мають на увазі іншу формулу: утримання клієнтів (customer retention rate) підписного бізнесу за період.
CRR=SE−N×100%
Тут S — платні клієнти на початку періоду, E — на кінці, N — нові клієнти, що прийшли протягом періоду. Віднімання N лишає тільки тих, з ким ви починали і хто досі з вами.
Нехай платний план Halves почав квартал із 2 000 підписників, завершив із 2 150, а по дорозі отримав 400 нових:
CRR=20002150−400=20001750=87,5%
Ця формула відповідає на запитання «скількох платних клієнтів ми зберегли?», і вона зручна для планування доходу. Когортного утримання вона не замінює: змішує в одне число клієнтів різного віку, тож не скаже, чи нові клієнти лишаються краще за старих. Її дзеркальне відображення — частка втрачених клієнтів, тобто churn rate: див. як порахувати churn rate і MRR.
Типові помилки
Автоматичні події як активність. Якщо сервер щомісяця записує регулярний рахунок, людина, що жодного разу не відкриває застосунок, виглядає «утриманою». Рахуйте дії людей.
Не названо спосіб. «У нас D7 — 70 %» зазвичай означає ковзне утримання, видане за утримання дня N.
Часові пояси. Події часто зберігають в UTC. Якщо дні рахують за UTC, то для людини, що зареєструвалася о 23:30 UTC, «день 1» почнеться за пів години, хоч би що показував її годинник. Зафіксуйте часовий пояс звітності у визначенні.
Акаунти команди й тестові акаунти. У перші тижні продукту вони можуть зсунути утримання на кілька пунктів.
Змішування сегментів з різним ритмом. Пари, що ділять рахунки щотижня, і друзі в разовій поїздці мають бути на різних кривих.
Головне
Утримання = користувачі когорти, активні в період N ÷ розмір когорти.
Перш ніж рахувати, визначте когорту, цільову дію, період і спосіб.
День N — суворий, вікно рахує період, ковзне — будь-яке пізніше повернення; на тих самих десяти людях вийшло 20 %, 50 % і 70 %.
Ковзне утримання найбільше лестить і змінюється після того, як ви його показали.
Обирайте спосіб за ритмом використання і пишіть його поруч із кожним числом.
FAQ
Яка формула утримання?
Утримання = користувачі когорти, активні в період N ÷ усі користувачі когорти × 100 %. Для підписки за період утримання клієнтів = (клієнти на кінці − нові клієнти) ÷ клієнти на початку × 100 %.
Чим утримання 7-го дня відрізняється від утримання першого тижня?
Утримання 7-го дня рахує тих, хто був активний саме на 7-й день. Утримання тижня зазвичай рахує тих, хто був активний хоча б раз за тижневе вікно. На тих самих людях друге завжди не нижче за перше, а часто значно вище.
Чи варто користуватися ковзним утриманням?
Так, щоб зрозуміти, чи людина пішла назовсім. Але не робіть його головною метрикою у звітах: воно завжди найвище з трьох і росте, коли надходять пізні візити.
Як порахувати утримання одразу для багатьох когорт?
Побудуйте когортну таблицю. Коли потрібне одне підсумкове число для періоду, зважте когорти за розміром (сума активних ÷ сума розмірів когорт) і беріть лише когорти, які вже дожили до цього періоду.