Условие
CPO хочет A/B-тест: 50% юзеров видят цену 999₽, 50% — 1299₽. В чём подвох?
Решение
Юридические и репутационные риски
Разные цены для одинаковых пользователей в один момент времени могут:
- Нарушать антимонопольное регулирование (price discrimination).
- Стать PR-кейсом: «компания обманывает».
- Юзер увидит чужую цену в скриншоте → жалоба.
Перед запуском согласовать с легал-командой.
Технические сложности
- Sticky assignment: цена должна быть стабильна для одного user_id, иначе цена «прыгает» в корзине.
- Сохранение в БД: на чеке должна быть та цена, что юзер видел — иначе бухгалтерия не сходится.
- Промо и купоны интерферируют с экспериментальной ценой.
- Cross-device: тот же юзер на разных устройствах — одна и та же цена.
Метрика
Не conversion, а revenue per visitor:
RPV = conversion × ARPU
Если цена выше → conversion ниже, ARPU выше. Сравнивать нужно product.
SELECT
variant,
AVG(price * (converted::int)) AS rpv,
AVG(converted::int) AS conv,
AVG(price) FILTER (WHERE converted) AS aov
FROM ab
GROUP BY variant;Elasticity
E = (% change in demand) / (% change in price)
|E| < 1 — спрос неэластичен (можно поднимать цену). |E| > 1 — эластичен (поднял цену, потерял больше в выручке).
Альтернативы прямому A/B
- Hold price, change perceived value — добавить плюшки/убрать, цену оставить.
- Geo/cohort — разные рынки, разные цены (легче объяснить).
- Time-based — повысить цену с даты, сравнить cohort до/после.
- New customers only — старым сохранить цену.
Подводные камни
- Long-term LTV: цена выше → ARPU выше моментально, но retention/LTV хуже на длинном горизонте. Тест должен идти месяцы.
- Asymmetric perception: повышение цены воспринимается хуже, чем снижение помогает. Не симметричный эффект.
- Reference price effect: юзер запоминает первую цену. Тест на цене для возвратных юзеров искажён.
- WTP (willingness to pay) распределение скошено — медианный юзер не главный.
- Power анализ: для 5% lift в conv нужны десятки тысяч на каждую группу.
Эталонный ответ
A/B на цене требует согласования с легал, sticky assignment, метрики revenue-per-visitor (не conv) и долгого горизонта для LTV. Чаще безопаснее cohort-based (новым юзерам новая цена) или geo-holdout.