Retention в Casino RevShare без метрики «средний игрок»

Как измерять retention Casino RevShare без искажения средними: зрелые когорты, цензурирование, Kaplan–Meier, интервалы, SQL и связь удержания с денежным потоком.

Оглавление10 разделов

Retention в Casino RevShare нельзя надёжно описать одним «средним сроком жизни игрока». Распределение обычно неоднородно: часть когорты прекращает квалифицирующую активность быстро, часть возвращается эпизодически, небольшой хвост остаётся надолго. Для управления трафиком важна вся кривая сохранения активности и её неопределённость, а не вымышленный средний пользователь.

Прямой ответ

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

Сначала определите активность

Логин, сессия, депозит и расчётный net revenue отвечают на разные вопросы. Редакционная формулировка «игрок активен» должна превратиться в машинное правило: event_type, минимальная валидность события, timezone, допустимый разрыв и обработка отмен. Нельзя менять определение между GEO только для выравнивания графиков.

  • Acquisition time — момент, от которого начинается возраст когорты
  • Qualifying activity — событие, подтверждающее выбранный вид активности
  • Inactivity window — период без события, после которого фиксируется churn
  • Observation end — дата, до которой данные считаются полными
  • Censor flag — признак, что на observation end уход ещё не наблюдался

Почему обычная таблица D1/D7/D30 недостаточна

Календарная таблица полезна для быстрого контроля, но свежие когорты не имеют одинакового шанса достичь D30. Если пустые клетки принять за нули, новая закупка покажется хуже. Если удалить незрелые строки целиком, вы потеряете раннюю информацию. Survival-анализ использует время каждого наблюдения до события или цензурирования.

Правое цензурирование на языке трафика

Участник, привлечённый десять дней назад и активный вчера, не прожил и не «умер» на горизонте 30 дней — мы просто знаем о нём только первые десять. NIST описывает такие наблюдения как right-censored: истинное время события находится правее конца наблюдения. Метод Kaplan–Meier оценивает функцию сохранения без предположения о конкретном распределении времени.

Минимальный набор наблюдений
CREATE TABLE retention_observations (
  subject_key_hash text NOT NULL,
  cohort_date date NOT NULL,
  source_id text NOT NULL,
  geo text NOT NULL,
  acquired_at timestamptz NOT NULL,
  observed_until timestamptz NOT NULL,
  churn_at timestamptz,
  churn_observed boolean NOT NULL,
  definition_version text NOT NULL,
  PRIMARY KEY (subject_key_hash, definition_version)
);

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

Как считается Kaplan–Meier

В каждый момент наблюдаемого ухода dᵢ делится на число субъектов nᵢ, которые непосредственно перед ним ещё находились под риском. Оценка сохранения умножает условные вероятности пережить все предыдущие моменты. Цензурированное наблюдение участвует в risk set до момента окончания наблюдения, но не считается уходом.

Формула кривой сохранения
S(t) = product over event times t_i <= t of (1 - d_i / n_i)

d_i — число наблюдаемых уходов в момент t_i
n_i — число субъектов под риском непосредственно перед t_i

Retention к горизонту t = S(t),
если churn и цензурирование определены корректно.

Подготовка данных без утечки будущего

SQL: время до ухода или конца наблюдения
SELECT subject_key_hash, cohort_date, source_id, geo,
       extract(epoch FROM (
         coalesce(churn_at, observed_until) - acquired_at
       )) / 86400.0 AS duration_days,
       CASE WHEN churn_observed THEN 1 ELSE 0 END AS event_observed
FROM retention_observations
WHERE acquired_at < :observation_end
  AND definition_version = :definition_version
  AND observed_until <= :observation_end;

Observation end должен быть воспроизводимым срезом, а не текущим временем на каждом открытии dashboard. Иначе два расчёта одного отчётного периода используют разную зрелость.

Сравнение источников

Нельзя сравнивать две кривые, если источники привели разный mix GEO, устройств, платёжных маршрутов или календарных недель. Сначала покажите стратифицированные кривые и размер risk set под каждой точкой. Затем используйте модель с ковариатами либо стандартизацию, но не скрывайте исходные слои за одним скорректированным числом.

Медиана может отсутствовать

Медианный срок — момент, когда S(t) опускается до 0,5. Если кривая не достигла половины на доступном горизонте, медиана не равна последнему наблюдаемому дню: она ещё не оценена. В отчёте честно пишут «не достигнута» и показывают S(30), S(60) или другой заранее выбранный горизонт с интервалом.

Связь retention с RevShare

Сохранение активности не равно денежной ценности. Для одного и того же возраста когорты отдельно считайте число находящихся под риском, подтверждённый net revenue по действующим условиям и фактические выплаты. Денежный прогноз строится условно: вероятность сохранения × распределение результата среди активных, с отдельной неопределённостью обеих частей.

Не называйте временно неактивного пользователя окончательно ушедшим

В продуктах с нерегулярным циклом возможны возвращения после длинного разрыва. Выберите модель: фиксированный churn с последующей реактивацией как новым состоянием либо multi-state модель. Не переписывайте прошлый churn молча.

Контроль качества отчёта

  1. Версия определения активности закреплена.
  2. Все когорты имеют единый observation end.
  3. Свежие наблюдения помечены как цензурированные.
  4. Под кривой показан risk set.
  5. Источники сравниваются внутри сопоставимых слоёв.
  6. Медиана не экстраполируется за горизонт.
  7. Деньги и активность представлены раздельно.
  8. Интервалы и ограничения описаны рядом с выводом.
Источники и границы применимости

NIST: censoring · NIST: Kaplan–Meier procedure

Вывод

Экспертный retention-отчёт не ищет «среднего игрока». Он показывает, какая доля когорты сохраняет выбранную активность к каждому возрасту, сколько наблюдений ещё находится под риском и насколько вывод неопределён. Цензурирование защищает свежие когорты от ложного провала, а раздельный денежный слой не превращает активность в обещанный RevShare.

Станьте партнёром и начните работать

Перейдите в партнёрскую программу, изучите актуальные условия и выберите подходящий формат сотрудничества.

СТАТЬ ПАРТНЁРОМ

Связанные материалы

Все статьи
Аналитика

Бюджет первого теста: как рассчитать сумму, которой хватит для решения

Как рассчитать бюджет теста рекламы через частоту события, MDE, power, стоимость трафика, зрелость, технический этап, лимит потерь и оборотный капитал.

Аналитика

Витрина данных для арбитражной команды: схема от клика до выплаты

Как построить аналитическую витрину арбитража: grain, факты, измерения, click ID, статусы, валюты, ревизии, late events, тесты и воспроизводимые отчёты.

Аналитика

Statistical power и MDE: как планировать тест конверсии до запуска

Подробный разбор statistical power, MDE и размера выборки для конверсии: baseline, alpha, beta, абсолютный эффект, кластеры, лаг и симуляция дизайна.