Годовая подписка дешевле месячной: почему деньги на счёте ещё не означают прибыль

Сервис предлагает два варианта: тысяча рублей в месяц или десять тысяч сразу за год. В день продажи годовой тариф выглядит победителем: на счёт пришло в десять раз больше денег. Но сервис обязался обслуживать клиента двенадцать месяцев. Если весь платёж принять за результат первого месяца, можно потратить деньги, которые ещё понадобятся на поддержку и инфраструктуру. Посчитаем отдельно поступление, заработанную выручку и вклад после обслуживания.

Задать сопоставимый договор

Рассмотрим условную подписку без возвратов, налоговых различий и затрат на привлечение. Обслуживание стоит 200 рублей за активный месяц. Годовой клиент получает доступ ко всем двенадцати месяцам за 10000 рублей; месячный платит 1000 за каждый месяц, когда остаётся. Чтобы сравнить тарифы, сначала предположим одинаковую продолжительность в двенадцать месяцев. Изменение удержания проверим отдельным сценарием.

За полный год месячный вариант приносит 12000 рублей выручки и 9600 вклада после обслуживания. Годовой — 10000 выручки и 7600 вклада. Цена раннего поступления денег здесь равна 2000 рублей недополученного вклада при одинаковом использовании. У компании могут быть веские причины принять такой обмен, например финансирование роста. Но эффект нужно назвать именно так, чтобы кассовый результат не заменил экономический.

Разложить платёж по периоду услуги

Для управленческого расчёта распределим годовую выручку равномерно: 10000 / 12 за месяц. В первый месяц в кассе 10000, оказано услуги примерно на 833,33, потрачено 200. Оставшаяся часть платежа относится к будущему обслуживанию. Конкретный бухгалтерский порядок определяют условия договора и правила учёта; здесь распределение нужно для сравнения двух моделей одинаковой услуги.

Округление до копеек важно делать согласованно. Двенадцать раз по 833,33 дадут 9999,96. Можно оставить первые одиннадцать месяцев по 833,33, а в последнем отнести остаток 833,37. Так годовая сумма сохраняется. Для месячного управленческого графика этот небольшой остаток лучше объяснить один раз, чем получать необъяснимую разницу между детализацией и итогом.

from decimal import Decimal, ROUND_HALF_UP
annual_cash = Decimal('10000')
monthly_price = Decimal('1000')
service = Decimal('200')
regular = (annual_cash/12).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
recognized = [regular]*11 + [annual_cash-regular*11]
annual_margin = sum(recognized) - 12*service
monthly_margin_12 = 12*(monthly_price-service)
threshold = annual_margin/(monthly_price-service)
print({'first_month_cash': str(annual_cash),
       'first_month_revenue': str(recognized[0]),
       'last_month_revenue': str(recognized[-1]),
       'annual_margin': str(annual_margin),
       'monthly_margin_12': str(monthly_margin_12),
       'monthly_months_to_match': str(threshold)})
assert sum(recognized) == annual_cash
assert recognized[-1] == Decimal('833.37')
assert annual_margin == 7600 and monthly_margin_12 == 9600
assert threshold == Decimal('9.5')

Добавить удержание, не меняя вопрос на ходу

Если месячный клиент остаётся восемь месяцев, вклад равен 6400 рублям. Тогда годовой договор с обслуживанием все двенадцать месяцев даёт больше: 7600. Порог составляет 9,5 оплаченного месяца при наших расходах. Это полезная граница сценария: если фактическое ожидаемое число оплат существенно меньше, годовая скидка может улучшить вклад на привлечённого клиента. Для всей когорты используйте среднее количество оплаченных месяцев, сохранив и ушедших клиентов в знаменателе.

Продление годового договора и прекращение месячной подписки наблюдаются на разных сроках. Свежая годовая когорта ещё не показала, какая доля продлится через год. Поэтому сравнивайте завершённые окна и отдельно отмечайте незрелые когорты. Не подставляйте двенадцать месяцев месячному клиенту только потому, что годовой договор уже подписан: это и есть предположение, которое требует проверки.

В итоговом отчёте нужны три ряда: поступления денег, выручка за оказанную услугу и накопленный вклад после обслуживания. Рядом покажите обязательства на будущие месяцы, возвраты и реальное удержание. Тогда решение о скидке можно принять осознанно: сколько компания платит за предоплату, хватает ли денег на исполнение договоров и как меняется вклад на клиента при разных сроках использования.

Продолжить работу с данными

Чтобы дальше сравнивать тарифы по зрелым когортам, в «Практической аналитике данных» вы разберёте продажи, клиентов и когортное удержание. Затем соберёте дашборд DataLens и повторите анализ на новом месяце: это помогает отделять ранние денежные поступления от устойчивого результата. Откройте программу платного курса «Практическая аналитика данных».

Продолжить на практике

  • Практическая аналитика данных ↗

    Превратите знания SQL или Python в аналитическую работу: проверяйте данные, считайте бизнес-метрики, стройте дашборды и объясняйте выводы на трёх прикладных кейсах.