Условие
CAC = 15, gross margin 60%, churn 5% в месяц. За сколько окупится привлечение?
Решение
Простая формула
Payback (months) = CAC / (ARPU × gross_margin)
= 50 / (15 × 0.6) = 5.6 месяцев
Учёт churn
С реалистичной cohort кривой:
Cumulative_GP(t) = ARPU × margin × Σ (1 − churn)^i for i = 0..t-1
= ARPU × margin × (1 − (1−churn)^t) / churn
При ARPU=15, margin=0.6, churn=0.05:
GP накопленная за t месяцев = 9 × (1 − 0.95^t) / 0.05 = 180 × (1 − 0.95^t)
Чтобы GP ≥ 50:
1 − 0.95^t ≥ 50/180 = 0.278
0.95^t ≤ 0.722
t ≥ log(0.722) / log(0.95) ≈ 6.3 мес.
С учётом churn — 6.3 мес, а не 5.6.
Бенчмарки payback
- B2C subscription: < 12 мес отлично, < 18 — нормально.
- B2B SaaS: < 18 мес отлично, < 24 — допустимо.
- Маркетплейс: < 6 мес желательно из-за низкой margin.
- Игры: 1–3 мес (быстрая монетизация или ничего).
Решение в Python
import numpy as np
arpu, margin, churn, cac = 15, 0.6, 0.05, 50
months = np.arange(1, 25)
cum_gp = arpu * margin * (1 - (1 - churn)**months) / churn
payback = months[cum_gp >= cac][0]Подводные камни
- Без gross margin payback всегда выглядит лучше — для маркетплейса с 10% take rate реальный payback в 10× длиннее, чем «по выручке».
- CAC должен включать все расходы на привлечение, не только paid ads (контент, рефералку, BD).
- Cohort payback ≠ blended. Старшие когорты тащат среднее вниз, новые искажают.
- Discount rate (NPV) при горизонте > 1 года меняет картину — будущая выручка дешевле.
- Payback в месяцах требует ежемесячного ARPU; для annual subscription пересчитывайте.
Эталонный ответ
Payback = CAC / (ARPU × gross_margin) для упрощённой; с churn — через накопленную GP: t = ln(1 − CAC×churn/(ARPU×margin)) / ln(1−churn). Бенчмарк: B2C <12 мес, B2B <18 мес.