Retention в e-commerce продуктах
Александр Чернов
В этой статье я расскажу о том, какие есть способы измерения retention в сервисах без подписки и как мы измеряем retention в Много Лосося. Всё описанное применимо практически к любому e-commerce сервису.
Много Лосося — сеть из более чем 300 тёмных кухонь и кафе-поинтов в нескольких городах России. Мы готовим и доставляем блюда паназиатской кухни, а заказ можно сделать через наше мобильное приложение, агрегаторы и в магазинах Перекрёсток. Весной 2021 года мы стали частью X5 Group.
Что такое retention?
Retention — мера удержания, churn — обратная ей мера оттока. В простейшем виде retention — это доля оставшихся клиентов в текущем периоде от клиентов предыдущего периода.
Retention или churn (что по сути обратные меры) в подписочных продуктах довольно легко поддается расчёту. Определить момент потери платящего клиента относительно просто — это момент, когда он перестал платить, то есть не продлил подписку. Или же, что ближе к реальному сценарию, момент по прошествии некоторого времени после неоплаты очередного периода подписки и некоторого числа попыток реактивировать клиента. После наступления этого момента все юнит метрики данного клиента устаканиваются, мы получаем его LTV, lifetime и т.д., а в случае повторной активации подписки этим же клиентом через какое-то время нам удобнее считать его новичком.
Простейший пример расчёта retention в подписочном сервисе:
- В марте было 100 клиентов с подпиской;
- В апреле из этих 100 мартовских клиентов продлили подписку 80 клиентов;
- Также в апреле активировали подписку 20 новых клиентов (у кого ранее никогда подписки не было, или она была, но этот клиент прерывал её, то есть попал в отток и теперь мы считаем его новичком).
Итого в апреле 100 платящих клиентов, как и в марте. Но из мартовских клиентов в апреле осталось только 80, то есть 80%. Retention апреля к марту — 80%. Churn, соответственно, 20% (20 мартовских клиентов ушло).
Для бизнеса, чья модель строится не на подписке, измерение оттока является не столь тривиальной задачей. Клиент, не делавший 2 месяца заказ в интернет-магазине, потерян? А что насчёт пассажира в сервисе такси, у которого с момента регистрации было по несколько поездок в неделю, а сейчас вот уже месяц не было ни одной?
Проблема в том, что у нас нет универсальной отсечки, которая бы отделяла активного клиента от потерянного.
При этом работа с лояльностью в сервисах без подписки столь же важна, как и в сервисах с подпиской. Привлечение новичков и ремаркетинг на ушедших клиентов зачастую значительно дороже, чем продолжение отношений с существующими. Но чтобы начать работать над удержанием, нужно для начала уметь его измерять.
Давайте рассмотрим на примере выборки клиентов Много Лосося, как можно измерить и интерпретировать удержание клиентов.
Итак, датасет содержит сгруппированные по клиентам заказы из мобильного приложения с 1 января 2020 года. В нашем случае раньше 1 января 2020 у нас практически не было заказов из мобильного приложения, поэтому можно считать, что мы располагаем данными за всю историю (а это важно для RFM анализа). На графике видна динамика количества заказов по кварталам. Статья написана в апреле 2023, поэтому в Q2 2023 пока мало заказов.

Давайте посчитаем удержание согласно определению из начала статьи, то есть как долю оставшихся клиентов в текущем периоде от клиентов предыдущего периода. Но что считать периодом?
Длина периода — важный параметр. Выбор длины периода существенно повлияет на полученный в результате расчёта retention. Давайте сравним расчёт retention, выбирая разные периоды: недели, месяцы и кварталы.
По неделям:
- На неделе с 02.05.2022 по 08.05.2022 хотя бы один заказ сделали 6 657 клиентов;
- На следующей недели, то есть с 09.05.2022 по 15.05.2022, из этих 6 657 сделали хотя бы один заказ 1 418 клиентов, то есть 21.3%

По месяцам:
- В мае 2022 было 22 712 клиентов, то есть 22 712 человек хотя бы раз сделали заказ в мае;
- в июне из этих 22 712 клиентов хотя бы раз заказ сделали 7 870 клиентов, то есть 34.6%

По кварталам:
- Во втором квартале 2022 хотя бы один заказ сделали 46 283 клиентов;
- В третьем квартале 2022 из этих 46 283 клиентов хотя бы один заказ сделали 18 596 клиентов, то есть 40.1%

Обратите внимание на существенную разницу retention при выборе недели или месяца в качестве периода. Между периодами «месяц» и «квартал» разница уже не такая значительная. Почему так происходит?
Давайте посмотрим на RFM метрики нашей базы. Так выглядят первые несколько записей, где каждая строка представляет клиента.

Нас интересует мера avg_days_between_orders, то есть среднее количество дней между заказами данного клиента. У клиентов с одним заказом за всё время (frequency) это значение пустое.
Например, если клиент совершил заказы в такие даты:
- 01.01.2021
- 05.01.2021
- 05.02.2022
то между первым и вторым заказом прошло 4 дня, между вторым и третьим — 30 дней. В среднем — (30+4) / 2 = 17 дней. Так мы рассчитываем меру для каждого клиента.
Давайте взглянем на средние значения этой меры, то есть на среднее арифметическое и медиану.

Получается, что у половины клиентов средний интервал между заказами составил более 72 дней, а в среднем у клиентов между заказами проходит 40 дней.
Кстати, считать среднее от среднего некорректно, но в нашем примере сути это не меняет. Вывод получается следующий: подозревать отток клиента через неделю после заказа рано. Специфика сервиса такова, что среднее время между заказами составляет 40 дней. Поэтому недельный retention существенно ниже месячного. Ждать квартал для проверки оттока клиента наоборот слишком долго. Золотая середина — 40-дневные периоды, но для упрощения анализа в качестве периода можно выбрать месяц.
Теперь, когда мы определились с длиной периода, мы можем наблюдать за удержанием N-ого периода в динамике.

Например, можно заметить, что при ускорении роста количества клиентов летом 2021 года retention снизился. Это может говорить о снижении качества из-за слишком быстрого роста, что привело к более высокому оттоку клиентов.
В целом наблюдается восходящий тренд retention несмотря на продолжающийся рост количества клиентов.
Когортный анализ удержания
Также можно измерять retention по когортам, где когорта — это группа клиентов с определенной характеристикой. Например, когорта клиентов, сделавших свой первый заказ в мае 2022. Размер когорты — количество клиентов, сделавших заказ в мае 2022. Retention этой когорты, например, по месяцам, — это доля клиентов из когорты, сделавших заказ в соответствующем месяце. Например, в августе 2022 из майской когорты сделали заказ только 14.5%.

Заключение
Для работы с удержанием сначала нужно начать его измерять. В e-commerce сервисах само измерение удержания является нетривиальной задачей, ведь у нас нет точной отсечки, после которой мы считаем клиента потерянным. Однако можно исследовать удержание по периодам или когортам.
В анализе по периодам ключевым параметром становится выбор длины периода. Определить оптимальный период можно на основании специфики вашего сервиса. Какова частотность его использования: почти ежедневно (такси, каршеринг, кофе-поинт), еженедельно (супер и гипермаркеты), ежемесячно (ресторан/доставка еды среднего класса и выше, услуги клининга, парикмахерская) или реже (путешествия, ремонт авто)? Исследуйте отток в рамках этих периодов и наблюдайте за динамикой.
Следующим шагом будет предсказание оттока конкретных клиентов с целью их удержания с помощью CRM маркетинга, но это тема другой статьи. Почитать об этом можно, например, тут.
__________________________________________________________
Кстати, на все 3 метрики (Retention, LTV, Churn) есть парочка задач в Симуляторе ML. Например, в одной из них вам предстоит на основе того, какие задачи студент решал в Симуляторе (и как регулярно), определить, не угас ли у него интерес, и не пора ли усилить его retention каким-нибудь стимулирующим бонусом, чтобы продлить его подписку и увеличить LTV?
А ещё мы добавили в Симулятор SQL отдельную задачу на расчёт retention, заходите попробовать!