Условие
CMO утверждает, что у продукта «вирусный рост». Как посчитать K-фактор и понять, действительно ли он виральный?
Решение
Формула
K = (среднее число приглашений на одного пользователя) × (conversion приглашения)
- K > 1 — экспоненциальный рост (каждый пользователь приводит больше одного нового).
- K = 1 — линейный.
- K < 1 — затухающий, виральность поддерживает, но не двигает рост.
Реалистичный пример
Пригласили: 0.8 приглашений в среднем на юзера
Конверсия приглашения: 25%
K = 0.8 × 0.25 = 0.2
K = 0.2 — слабый «виральный буст», 80% роста идёт из других каналов.
Cycle time
Полная формула роста учитывает время цикла — сколько проходит от регистрации до приглашения.
Users(t) = Users(0) × K^(t / cycle_time)
При K=1.2 и cycle_time=7 дней — за месяц рост в (1.2)^(30/7) ≈ 2× — это хорошо.
SQL для расчёта
WITH invites AS (
SELECT inviter_id, COUNT(*) AS n_sent
FROM invites
WHERE inviter_id IN (SELECT user_id FROM cohort)
GROUP BY inviter_id
),
conv AS (
SELECT inviter_id,
COUNT(*) AS sent,
COUNT(invitee_signed_up) AS signed_up
FROM invites
GROUP BY inviter_id
)
SELECT
AVG(sent) AS avg_invites_per_user,
SUM(signed_up)::float / NULLIF(SUM(sent), 0) AS conv,
AVG(sent) * SUM(signed_up)::float / NULLIF(SUM(sent), 0) AS k_factor
FROM conv;Подводные камни
- Считать приглашения только активных пользователей — иначе K разбавлен спящими. Cohort-based K честнее.
- Конверсия приглашения = регистрация ≠ активация. Реальная виральность — это «приглашённый стал активным», иначе K врёт.
- K-фактор зависит от состояния продукта: ранний K=2 при базе 1000 и K=0.5 при базе 10M — насыщение рынка естественно.
- Не путать виральность с рекомендациями. Виральность = продукт пригласил юзеров; маркетинг — нет.
- K + paid acquisition ≠ просто сложение. Они интерферируют: paid юзеры менее склонны приглашать.
Эталонный ответ
K = (среднее число приглашений) × (конверсия). K>1 = экспонента, K<1 = затухание. Считать на cohort активных, проверять активацию приглашённых, учитывать cycle time.