Сколько стоит вернуть гостя
Через сколько дней напоминать и сколько бонусов дать

Загрузка аудио…
—:—
Вы умеете готовить и умеете держать команду. Долго этого хватало. Потом подорожали закупка и зарплаты, а сводить цифры приходится самому, хотя хотелось бы заниматься блюдами, ради которых гости возвращаются сами.
Самое дешёвое, что приходит в голову в такой ситуации, это вернуть тех, кто уже был. База собрана, кнопка рассылки на месте, бонус стоит будто копейки.
Чтобы акция с баллами приносила деньги, нужно решить две вещи: через сколько дней без визита писать гостю и какую стоимость будут иметь баллы при списании. Расчёт ниже учитывает полное списание баллов этой акции на повторном заказе. Для промокода нужен отдельный расчёт.
Все цифры ниже условные: я считал на модельном заведении, а не на чьей-то базе. Подставляйте свои — фудкост, упаковку, ставку эквайринга и свою долю возвратов. Начнём со вклада одного возврата.
Вклад одного возврата
Считаем вклад: сколько остаётся от заказа после всех переменных расходов.
Возьмём для примера возврат на 6 000 драм без НДС:
| Чек | 6 000 ֏ |
| Фудкост 32 % | −1 920 ֏ |
| Упаковка | −200 ֏ |
| Эквайринг 2 % от 6 000 | −120 ֏ |
| Вклад C₀ | 3 760 ֏ |
Обозначим его C₀: вклад возврата, за который вы ничего не платили.
Что со вкладом делает бонус
В этом условном примере гость получает баллы, которыми при списании можно оплатить 1 500 ֏, и полностью тратит их на повторный заказ на 6 000 ֏. Это денежный эквивалент списанных баллов, а не обязательно 1 500 единиц: их количество зависит от условий программы. Стоимость баллов вычитается из суммы к оплате, а не из затрат кухни: блюдо готовится на полный чек, поэтому фудкост и упаковка не меняются. Меняются сумма, которую гость платит деньгами, и эквайринг, который берётся с этой меньшей суммы. Пример не учитывает другие награды программы лояльности. Если гости уже получают или списывают обычные баллы, учтите их стоимость и в C₀, и в C₁.
| Гость платит деньгами (6 000 − 1 500) | 4 500 ֏ |
| Фудкост 32 % от полного чека | −1 920 ֏ |
| Упаковка | −200 ֏ |
| Эквайринг 2 % от 4 500 | −90 ֏ |
| Вклад C₁ | 2 290 ֏ |
Бонус номиналом 1 500 драм забирает из вклада 1 470. Экономия только на эквайринге со списанных полутора тысяч, тридцать драм.
Бонус, который гость тратит на оплату счёта, стоит вам почти свой номинал. Это второе число, C₁. Считается оно для гостя, который списал бонус полностью; если часть гостей его не потратит, средний C₁ будет выше.
Сколько возвратов нужно
Теперь сравнение. Возьмите сегмент гостей, которые перестали приходить, и мысленно разделите его пополам. Одна половина получает напоминание и баллы этой акции, которыми можно оплатить 1 500 ֏, как в примере выше. Вторая не получает ни напоминания, ни дополнительных баллов этой акции. Обычная программа лояльности, если она есть, может действовать в обеих половинах.
Половина без напоминания тоже даст возвраты: часть гостей пришла бы и так. Обозначим эту долю r₀, а долю возвратов после напоминания и баллов этой акции — r₁. Она относится именно к тому предложению с баллами, для которого рассчитан C₁: сообщение без баллов или промокод могут дать другую долю возвратов.
Если половины одинаковы по размеру, сравнивать можно на одного гостя:
- половина без рассылки приносит r₀ × C₀ на гостя;
- половина с рассылкой приносит r₁ × C₁ на гостя.
Рассылка имеет смысл, пока r₁ × C₁ не меньше r₀ × C₀:
r₁ ≥ r₀ × C₀ / C₁
Отношение C₀ / C₁ и есть цена бонуса в формуле. При наших числах 3 760 / 2 290 = 1,64. То есть рассылка должна поднимать долю возвратов больше чем в полтора раза просто для того, чтобы выйти в ноль.
Пусть базовая доля равна 9 %. Тогда нужно 14,78 %. На половине в 500 гостей это 74 возврата.
Что будет, если возвратов меньше
Пусть рассылка дала 12 % вместо нужных 14,78 %. Сегмент 1 000 гостей, по 500 в каждой половине:
| С рассылкой | Без рассылки | |
|---|---|---|
| Гостей | 500 | 500 |
| Вернулись | 12 % (60 человек) | 9 % (45 человек) |
| Вклад одного возврата | 2 290 ֏ | 3 760 ֏ |
| Вклад половины | 137 400 ֏ | 169 200 ֏ |
Возвратов на треть больше, денег на 31 800 ֏ меньше.
Раскладка внутри этих шестидесяти объясняет результат в среднем. При базовой доле 9 % 45 возвратов соответствуют визитам, которые состоялись бы и без акции, а 15 — дополнительным возвратам. Это не значит, что мы знаем, какие именно гости пришли бы сами. Каждый из 45 возвратов, эквивалентных базовому уровню, при предложении с баллами даёт на 1 470 ֏ меньше вклада.
В среднем 45 × 1 470 = 66 150 ֏. Пятнадцать дополнительных возвратов дают 15 × 2 290 = 34 350 ֏, а разница между этими числами составляет те же 31 800 ֏.
Третье число формулы, r₀, не лежит в отчёте. Панель покажет, сколько гостей вернулось после акции, но не покажет, сколько вернулось бы без неё. Эту базовую долю оценивает контрольная группа, которая не получила ни напоминания, ни баллов этой акции.
Два рычага: размер бонуса и день
Бонус задаёт C₁, а вместе с ним и планку. Уменьшим полторы тысячи вдвое:
| Бонус | Вклад C₁ | C₀ / C₁ | Нужная доля возвратов |
|---|---|---|---|
| 1 500 ֏ | 2 290 ֏ | 1,64 | 14,78 % |
| 750 ֏ | 3 025 ֏ | 1,24 | 11,19 % |
Те же 12 % возвратов при бонусе 750 ֏ дают 60 × 3 025 = 181 500 ֏ против 169 200 ֏ у контрольной половины. Плюс 12 300 ֏ там, где только что был минус 31 800 ֏.
Одно условие к этой таблице: отклик зависит от стоимости баллов при списании, а допущение «те же 12 %» можно проверить только на реальных гостях. Если баллы стоимостью 750 ֏ дадут 10 % вместо 12 %, расчёт изменится: 10 % × 3 025 = 302,50 ֏ против 9 % × 3 760 = 338,40 ֏ на одного гостя, и выиграет контрольная половина. Чтобы выбрать между 1 500 и 750 ֏, сравните их в отдельных случайно сформированных тестовых группах и оставьте контрольную группу без акции. Каждое предложение сначала должно окупиться относительно r₀; только потом есть смысл сравнивать их между собой.
День влияет на r₀. Если писать раньше, в сегмент может попасть больше гостей, которые ещё находятся в обычном цикле визитов. Это повышает планку в формуле. Порог в 30 дней — начальная гипотеза для проверки, а не универсальная рекомендация модели.
Свой порог определяйте по датированным визитам гостей, которых можно идентифицировать, а не автоматически по выгрузке онлайн-заказов. Для тех, кто был хотя бы дважды, посчитайте промежутки между последовательными визитами в канале, который охватит ваш тест, и найдите промежуток, в который укладываются три четверти гостей. Если это 41 день, порог в 45 дней можно взять как начальную точку для проверки гостей вне обычного цикла.
В панели кассовые транзакции отделены от онлайн-заказов (карточка гостя). Если большинство гостей платит на кассе, считайте промежутки по датированным POS-транзакциям: файл только с онлайн-заказами может ошибочно отнести активных гостей к давно не приходившим.
Если вместо баллов тестируете промокод, условия предложения будут другими. Код можно ограничить рабочими часами по дням недели, категориями и позициями, минимальной суммой заказа, типом сервиса и числом активаций на гостя (параметры промокода). Отдельно считайте фактическое применение промокода в заказах и вклад этих заказов: C₁ и пороги окупаемости для баллов в таблицах выше не описывают стоимость акции с промокодом.
Как это собрать в Eatery Club
Шаг 1. Посчитать свой порог и отобрать сегмент. Для визитов через кассу получите из POS датированные транзакции с идентификаторами гостей. Для гостей, которые заказывают онлайн, запустите выгрузку из раздела «Заказы» и заберите файл в «Экспорте». Сначала проверьте, есть ли в файле идентификатор гостя и дата заказа. Считайте промежутки по источнику, который охватывает аудиторию теста. Затем в «Клієнти» (Клиенты) фильтруйте по дате последнего визита, последнего заказа и количеству заказов, проверяя, что эти поля соответствуют тем же каналам. Не предполагайте, что массовая выгрузка POS-транзакций доступна в панели.
Шаг 2. Разделить на две группы. В «Групи клієнтів» (Группы клиентов) создаёте две группы, например «спящие-тест» и «спящие-контроль», и заполняете их массовым действием добавления в группу из того же списка. Делить нужно случайно: по алфавиту или по дате регистрации группы выйдут разными по составу, и сравнение ничего не покажет. Учтите заранее, что встроенное правило группы сейчас одно, «только онлайн-оплата», поэтому делить придётся вручную, а правила посложнее заводит поддержка (группы клиентов).
Шаг 3. Проверить предложение, которое можете дать тестовой группе. В «Клиентах» отфильтруйте группу «спящие-тест», отметьте гостей и выберите документированную массовую рассылку push (массовые действия). Если тестируете промокод, назначьте уже созданный код отдельным массовым действием. Код создаётся в ERP и появляется в панели после синхронизации; для Syrve в акции нужно «Ручное применение», чтобы код сработал для заказа из приложения (параметры промокода). Прежде чем называть тест с кодом контролируемым, проверьте в своём проекте, что гости из контрольной группы не могут им воспользоваться: назначение выбранным гостям описано в справке, но эксклюзивное использование не подтверждено. Тест только с push или промокодом измеряет именно это предложение, а не модель баллов выше.
Шаг 4. Подготовить автоматическое начисление баллов отдельно. В «Регулярних повідомленнях» (Регулярные уведомления) можно создать правило «Последняя транзакция» с периодом «после», нужным числом дней, временем отправки и действием с начислением баллов (регулярные push-уведомления). Справка описывает эти настройки, но не объясняет, как исключить контрольную группу. Пока наблюдаете за контролем без воздействия акции, держите правило неактивным. Если нужно включить его раньше, проверьте в своём проекте, что гости из контроля не получают ни сообщение, ни баллы этой акции. Иначе r₀ перестанет быть показателем группы без воздействия.
Среди документированных массовых действий есть push и назначение промокода, но адресное массовое начисление баллов выбранным гостям не описано. Даже промокод того же денежного номинала не измеряет r₁ для предложения с баллами и не подтверждает его C₁. Для сопоставимого теста с баллами нужно, чтобы баллы этой акции получила только тестовая группа, а контрольная не получила ни их, ни напоминания. Затем нужно измерить возвраты и фактическое списание. Прежде чем обосновывать автоматическое правило порогом для баллов, проверьте, можно ли провести такое сравнение в вашем проекте. Если нет, таблицы остаются иллюстрацией; тест промокода не подтверждает результат автоматического начисления баллов.
Справка к правилу отдельно предупреждает не подменять последнюю транзакцию датой последнего заказа. Push и начисление бонусов там переключаются отдельно: выключенный push не останавливает начисление.
Заполните переводы. Без перевода на язык гостя сообщение до него не дойдёт вовсе. Один незаполненный язык тихо вырезает из рассылки целую группу гостей.
Сверьте условия с кассой. Процент кешбэка, границы уровней и сами промокоды живут в ERP, панель их отображает и активирует. Если значения разойдутся, гость увидит в приложении одни условия, а касса посчитает по другим.
В расчёте учтены только бонусы. Если добавляете платный канал вроде SMS, добавьте и его стоимость по тарифам провайдера.
Что проверять через месяц
- Доля возвратов для предложения, которое действительно проверяли. Контрольная группа без воздействия даёт оценку r₀. Называйте долю тестовой группы r₁ из формулы только тогда, когда она получила то же предложение с баллами, которое описывает модель. Тест только с push или промокодом имеет свою долю возвратов.
- Вклад одного возврата. Не чек. Если вернувшиеся гости берут дешевле обычных, бонус съедает большую часть вклада и планка поднимается.
- Списание и вклад именно этого предложения. Для теста с баллами проверьте, можно ли получить записи по гостям и транзакциям о начислении и списании баллов и вкладе повторного заказа в тестовой группе. Виджеты «Клиентов» показывают общие суммы начисленных и списанных баллов проекта за 30, 60 и 90 дней; сами по себе они не дают фактический C₁ тестовой группы. Неиспользованный к концу периода остаток баллов нужно учитывать как обязательство, а не как постоянную экономию. Для теста с промокодом считайте заказы, в которых код фактически применили, и их вклад; виджеты баллов не определяют стоимость кода.
- Средний чек за выбранный период. В «Топ клиентах» он доступен как колонка и фильтр за 30, 60 или 90 дней. Дата последнего визита — отдельный фильтр, а не соседняя колонка таблицы.
Меняйте порог в днях по наблюдаемому r₀. Если многие гости из контроля возвращаются сами, в сегменте могут быть люди в обычном цикле визитов; проверьте другой порог. Если в обеих половинах возвратов мало, прежде чем решать, что порог запоздалый, проверьте размер выборки и длительность наблюдения.
Порог окупаемости для предложения с баллами связывает C₀, C₁ и r₀ с нужной долей возвратов r₁. Оба вклада можно смоделировать по расходам на собственные заказы, но только сопоставимый тест с баллами измерит r₁ именно для этого предложения и покажет, что гости действительно списывают. Тест только с push или промокодом отвечает на другой вопрос.
О том, как устроены бонусы, уровни и сегменты в Eatery Club, на странице Лояльность.
Опубликовано в
Platon Sobko
Редактор отдела новостей Eatery Club. Пишу про технологии, софт, интернет, науку
Все материалы автора →


