Як спрогнозувати LTV юзера в перший день його життя
Усім привіт. Мене звати Олександра Візер, я Product Analyst в IT-компанії Futurra Group. Сьогодні хотіла б розповісти про простий і водночас ефективний алгоритм прогнозування виторгу з одного юзера, який я використовую у своїй роботі.
Важливість прогнозування LTV користувача важко переоцінити. Якщо монетизація проєкту передбачає модель підписки, на початковому етапі без прогнозування неможливо якісно оцінити успішність бізнесу.
Така модель передбачає довготривале користування продукту юзером і, відповідно, поступове надходження коштів. А отже, прогнозування є критичним для розуміння періоду окупності когорти.
Щобільше, чим швидше ми розуміємо LTV юзера, тим швидше бізнес може реагувати на можливі проблеми і коригувати свою роботу. Тож постає питання: як саме можна спрогнозувати LTV юзера на місяць, рік чи навіть 2 роки вперед?
У статті я поділюся своїм досвідом, отриманим в рамках роботи з флагманським продуктом нашої компанії MathMaster — кросплатформного сервісу для розв’язку та вивчення математики.
Для початку
Почнемо з основоположних речей: що ж таке LTV і навіщо його взагалі треба аналізувати.
LTV (Lifetime Value) — це загальний виторг з юзера за весь період його користування продуктом. Стандартна формула розрахунку виглядає так:
де Customer Value — середній чек юзера за певний період (днів, місяців чи років), а Average Customer Lifespan — кількість тих самих періодів, коли юзер користується сервісом.
По факту LTV юзера відображає те, скільки і як довго юзер готовий платити за користування сервісом. Тож не дивно, що це одна з основних продуктових метрик для аналізу юніт-економіки.
Загалом підходів до прогнозування LTV є безліч: починаючи від усереднених значень по галузі, які закладаються в прогноз, закінчуючи моделями ML.
Частина моделей передбачає прогнозування безпосередньо виторгу, який має принести юзер, спираючись на його поведінку. Інші ж працюють над аналізом ретеншену, тобто % юзерів, які продовжують користуватись продуктом протягом певного часу.
В MathMaster ми зосередились на другому варіанті. Маючи підписочну модель, де є чітка ціна, що ребілиться з юзера з певною періодичністю, для розрахунку LTV достатньо спрогнозувати кількість ребілів, яку юзер зробить за весь час.
Ретеншн-крива (Retention curve)
Замість того, щоб прогнозувати ймовірність наступного ребілу для кожного користувача, ми вирішили аналізувати когорти юзерів.
Маючи чітку цільову аудиторію, що не змінювалась з часом, наші користувачі максимально схожі один на одного за своїми поведінковими звичками, тому прогнозування виторгу зводиться до когортного аналізу.
За когорту я брала юзерів, що прийшли в застосунок в один день з одного пулу країн та мають однакову підписку.
Очевидно, що з кожним наступним ребілом кількість юзерів в когорті ставатиме все меншою, допоки вона не вийде на своєрідне плато і буде ребілитись вже з мінімальним відтоком користувачів.
Загалом ретеншн-крива когорти юзерів при моделі з підпискою в більшості випадків має схожу на цю динаміку:
Таку тенденцію гарно описує рівняння експоненційної кривої. Підібравши правильні коефіцієнти, це рівняння може досить чітко спрогнозувати подальші періоди.
Якщо праву і ліву частини рівності логарифмувати, то отримаємо модель, з якої можна розрахувати необхідні нам коефіцієнти.
Побудувавши і оцінивши регресію (середовище, де це можна зробити, обирайте за вашим бажанням, це може бути R, Python чи навіть звичайний Excel), можна обрахувати коефіцієнти для експоненційної кривої.
Коефіцієнт при регресорі і є необхідним для нас коефіцієнтом b. Коефіцієнт a визнається за формулою a= eln (a), де ln(a) — константа в регресії.
Таким чином, побудувавши достатньо просту модель, отримуємо можливість прогнозувати ретеншн-криву на необхідний нам період.
На наступному малюнку відображено мої дослідження щодо того, чи є експоненційна крива вдалим вибором для прогнозу ретеншн-кривої.
Як бачимо, модель досить точно відтворює динаміку ретеншн-кривої. У своєму прикладі за x я брала номери ребілів, тобто кожен наступний період я отримую % юзерів з когорти, які мають заребілитись.
Проте такий алгоритм підходить і для прогнозування не в ребілах, а в днях чи тижнях. За період життя когорти ви можете обрати той, що підходить саме для вашого бізнесу.
Значну увагу слід також приділити адекватності побудованої моделі. Чим менше у вас даних, тим модель буде гіршою, а прогноз, відповідно, менш точним. Тож виникає питання: скільки треба даних, щоб модель була адекватною?
Мінімальна кількість даних обирається, в першу чергу, відповідно до значень p-value вашої моделі, а також в залежності від бажаної точності прогнозу.
Розмір вашої когорти також є критичним. Умовно кажучи, якщо на першій точці у вас 10 юзерів, то навряд вийде побудувати гарну модель. В такому випадку варто віднайти баланс між деталізацією, яку ви хочете враховувати, і точністю моделі.
Якщо за певним параметром когорти поводяться схоже, то краще його прибрати і виокремити лише ті параметри, які дійсно вирізняють когорти одну від одної.
Отже, така схема дозволяє прогнозувати кількість ребілів, яку зробить когорта користувачів за певний проміжок часу (в моєму випадку, це 2 роки). Це простий спосіб прогнозування, який не потребує великих ресурсів для реалізації, при чому точність такого прогнозу може досягати 95%.
Проте є і недоліки. В першу чергу, треба мати чималу кількість даних (для себе ми обрали період в 6 місяців), щоб побудувати якісну модель.
По-друге, якщо у когортах невелика кількість юзерів, ви не зможете отримати точний прогноз.
Ланцюгові коефіцієнти (Chain coefficients)
Що ж робити з когортами, які живуть недостатній для побудови моделі період? Перший (і найпростіший) спосіб — брати усереднену криву за тими когортами, за якими даних вже достатньо. Проте, якщо ваш продукт змінювався, ви вже не можете покладатись на давні періоди.
В моєму кейсі усереднена крива давала досить посередні результати за першими періодами життя когорти. Це мало величезний вплив на прогноз, адже специфіка моделі монетизації з підпискою полягає в тому, що більшість юзерів відвалюється саме на початкових етапах і лише з часом ретеншн-крива досягає певного плато.
Саме перші періоди життя юзера приносять найбільше велью, тому, якщо вони погано спрогнозовані, весь прогноз буде дуже неточним. Тож для нових когорт я застосувала інший спосіб прогнозування утримання юзерів — ланцюгові коефіцієнти.
Вони дозволяють за максимально «свіжими» даними обрахувати ретешн-криву. Суть способу полягає в тому, щоб визначати ретешн на кожен період окремо за останніми відомими когортами. Тобто для кожного ребілу буде свій пул когорт, за яким вираховуватиметься рейт.
Спробую пояснити наочніше:
На зображені бачимо приклад когортних даних за ребілами (припустимо, що ребіли відбуваються кожного дня). Колонки вказують на номер ребілу, рядочки — на когортну дату. Очевидно, що чим новіша когорта, тим менше у неї ребілів.
Щоб порахувати конверсію в другий ребіл, ми можемо використовувати всі надані когорти. А от вже для третього ребілу остання когорта не підходить, бо вона ще не дожила до цього періоду і даних за ним немає.
Отже, для обрахунку цього рейта слід брати інформацію за всіма когортами, за якими є дані за відповідний ребіл (тобто всі, крім останньої). Таким чином обраховується % юзерів, що зробили ребіл відносно всіх юзерів, що зробили попередній.
Отримавши ретеншн-рейти від попередніх ребілів, легко можна звести все до однієї ретеншн-кривої (домноживши кожен рейт на попередній, починаючи з другого).
Так виключно на основі історичних даних вибудовується ретеншн-крива. З очевидних плюсів цього способу — його простота. Проте він навряд підійде для прогнозування на довгий період, адже необхідна велика кількість даних. Тож якщо ви їх не маєте на потрібний вам період, слід обрати інший варіант.
Результат (Forecasted curve)
В MathMaster для прогнозування виторгу з когорти, ми задіюємо два способи: моделювання експоненційної кривої та ланцюгові коефіцієнти.
Для «нових» когорт за допомогою ланцюгових коефіцієнтів будується прогноз на перші 6 місяців, аби враховувати найрелевантніші «свіжі» дані. Вже потім накладається усереднена крива за «старими» когортами, що вибудовується за допомогою експоненційної моделі.
На графіку нижче зображена ретеншн-крива для юзерів, що встигли лише взяти підписку в застосунку.
Такий спосіб дозволяє враховувати поведінку всіх юзерів для прогнозу ребіл-рейту нових користувачів. З одного боку, ми аналізуємо поведінку максимально можливих нових когорт, бо розуміємо, що продукт і трафік однаковий, відповідно і ретеншн-рейт має бути схожим.
З іншого боку, ми не нехтуємо загальною динамікою користувачів, які вже давно користуються застосунком і закладаємо в прогнозовану ретешн-криву плато, на яке вже вийшли давні когорти.
Ну, і залишається останнє питання: а що ж робити з періодом, коли юзер ще не зробив свою першу оплату підписки і знаходиться на пробному періоді? Є простий і супер дієвий спосіб.
Як я вже казала раніше, важливу роль в прогнозуванні має вибір даних, на які ви спираєтесь. Когорти останніх місяців будуть найкраще відображати поведінку нових юзерів, бо продукт, яким вони користуються, максимально схожий на той, який отримають нові юзери.
Тому, обрахувавши конверсію з тріалу в ребіл за останніми когортами (для
Висновок
У статті я розповіла про алгоритм прогнозування LTV, який ми використовуємо в MathMaster. Такий спосіб в першу чергу підходить для прогнозу моделі з підпискою, проте його можна імплементувати і під інші потреби бізнесу.
Наприклад, для прогнозування відтоку юзерів можна використовувати ланцюгові коефіцієнти, а для прогнозування кумулятивного виторгу (в грошах) — моделювання логарифмічної кривої, де принцип побудови і оцінки такий же, як і описано вище в статті.
Обидві схеми потребують історичних даних в досить великій кількості, проте наведені алгоритми є достатньо простими у реалізації і при цьому показують досить точний результат.
Що ж, сподіваюсь, цей матеріал буде корисним багатьом дата та продакт-аналітикам і допоможе вибудувати ефективну систему прогнозування підписок не одній компанії.☺️
7 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів