Условие
После неудачных ценовых экспериментов в одном регионе Делимобиля (просели выручка/поездки/MAU) бизнес хочет априори знать эластичность спроса по цене — какая цена приемлема, какая — нет.
В регионе 10 000 активных пользователей. Нужно предложить:
- Стратегию и механику эксперимента по эластичности (с расчётами параметров).
- Какие данные о пользователях собрать.
- На какие сегменты разделить и почему. Сколько сегментов.
- Длительность.
- Численные индикаторы (выборка, мощность, время).
- Какие метрики считать, как интерпретировать.
- Учёт разных типов потребления (краткосрочные / долгосрочные аренды).
- Дополнительные метрики сегментации.
Решение
Стратегия
Цель — оценить эластичность спроса: e = ΔQ/Q ÷ ΔP/P. Подход:
- A/B/n с несколькими ценовыми точками одновременно: контроль (текущая цена) + 3–4 теста (например, +5%, +10%, −5%, −10%).
- На каждой ценовой точке измерить количество поездок, GMV, retention.
- Подогнать функцию
Q(P)(логарифмическая или линейная):
e — эластичность.
Сегментация
10к юзеров — мало для A/B/n с 5 группами. Но без сегментации — всех огульно — теряем гетерогенность. Компромисс:
- 2 сегмента на старт (heavy users / light users — top-20% по freq vs остальные).
- 5 ценовых точек × 2 сегмента = 10 групп. На сегмент по 5к ÷ 5 = 1к юзеров → мало.
- Лучше: сначала запустить эксперимент только на light/medium (8k юзеров) — heavy чувствительнее к цене, рискуем потерять.
Сегментация по:
- Frequency последних 90 дней (RFM).
- Tenure на сервисе (новый <30 дней vs старый).
- Тип потребления: short rentals (≤1ч), mid (≤24ч), long (≥24ч). Эластичность разная.
- Гео внутри региона (центр vs окраины).
- Платформа (iOS vs Android — селекшен по доходу).
- Возраст / водительский стаж (если есть).
Минимум 4 ценовых точки + контроль = 5 групп. На каждой — ≥1.5–2k юзеров.
Sample size / MDE
- Метрика: trips per active user в week.
- Допустим baseline = 5 trips/user/week, std ≈ 8 (Poisson-ish с overdispersion).
- MDE = 5% относительно (=0.25 trips). При α=0.05, power=0.8:
То есть 16k на пару групп — больше, чем у нас всего активных пользователей. Значит, MDE 5% недостижим. Нужно либо:
- Поднять MDE до 15–20% (что грубо, но реалистично с 1.5k на группу).
- Удлинить тест (накопление trips).
- Использовать CUPED на pre-period trips/user — снизит дисперсию в 2–3×.
С CUPED: эффективный n_required ÷ 3 → реальный нужный ~5k на пару, что приемлемо.
Длительность
- Минимум 2–4 недели для покрытия weekly seasonality.
- Краткосрочные аренды быстрее агрегируются (больше observations); long rentals — медленнее.
- Если юзеры арендуют редко (в среднем 1 раз в 2 недели) — нужен месяц минимум.
Метрики
Primary:
- Trips per active user.
- Revenue per active user (ARPU).
- Конверсия в платящего (если price-changes на free trial).
Secondary:
- Avg minutes per trip (длинные vs короткие).
- AOV — средний чек на поездку.
- Cancel rate (отмены) — индикатор отказа от цены.
Гард:
- Churn week-2 (отписка / отсутствие сессий).
- Switch on competitor (уход к Яндекс.Драйв, Ситидрайв) — измерять по падению activity у нас.
- NPS / поддержка.
Долгосрочные аренды:
- Отдельная метрика — share of long rentals (≥ 24ч): они приносят больше выручки.
- Эластичность для long и short — разная (long чувствительнее: пользователь планирует, ищет лучшее предложение).
Интерпретация
- Вычисляем эластичность
eна каждом сегменте × type. - Если
|e| < 1→ спрос неэластичен → можно поднимать цену (рост выручки). - Если
|e| > 1→ эластичен → наоборот, снижать. - На разных сегментах разная стратегия: для heavy — фиксы, для new — discount.
Дополнительная сегментация
- Тариф (минутный/часовой/суточный).
- Класс авто (эконом/комфорт/премиум).
- Время поездок (ночь / выходные).
- Использование промо-кодов.
- Тип жилья (по геолокации start-end — workforce vs leisure).
Подводные камни
- SUTVA нарушается: один пользователь может в один день брать машину и в test, и в control (если сегмент по машинам, не по юзерам). Sticky split на user_id обязателен.
- Ценообразование в реальном времени: нельзя «жёстко» назначить цену — она зависит от offer (расстояние до машины). Нужен delta-multiplier (× 1.05).
- Network effects: если test-юзеры берут больше машин, control-юзерам меньше доступно → confounded.
- Сезонность: 4 недели + кризис/праздники → шум.
- Selection within experiment: heavy-юзеры могут «сильнее реагировать» на цену; усреднение не отражает их.
- Конкуренты: пользователь видит цены и у конкурента; эластичность зависит от competitor pricing.
- Long tail trips: один long rental = 30 short. Усреднения зависят от меры.
- «Активные» 10k: если включаем неактивных, они добавляют шум (zero-inflated).
Эталонный ответ
Стратегия: A/B/n на 4–5 ценовых точках, сегментация по freq и rental type (short/mid/long). MDE 5% недостижим без CUPED и длительности; реалистично 15–20% на 4 недели. Primary: trips per user, ARPU, эластичность via ln Q = α + e ln P. Гард: churn, competitor switch.