Условие
Воронка: view → cart → checkout → payment → success. На шаге checkout → payment 70% уходят. Разобрать причину.
Решение
Шаг 1: сегментировать дроп
SELECT segment, COUNT(DISTINCT user_id) AS users,
SUM(CASE WHEN reached_payment THEN 1 ELSE 0 END)::float
/ COUNT(DISTINCT user_id) AS conv
FROM funnel
GROUP BY segment
ORDER BY conv;Сегменты для проверки:
- Платформа: iOS / Android / Web
- Браузер: Chrome / Safari / Firefox
- Geo: страна / регион
- Сумма корзины: < 1k, 1-5k, > 5k
- Тип товара: категории
- Способ оплаты: карта / СБП / купон
- Новый/возвратный
Цель — найти сегмент с аномально низким conv или аномально высоким размером.
Шаг 2: смотреть, что юзеры делают на шаге
Heatmap кликов, session recordings (Hotjar/FullStory). Типичные находки:
- Кнопка скрыта под клавиатурой на мобиле.
- Поле «промокод» не валидируется — юзер 5 раз тыкает и уходит.
- Captcha грузится 10 секунд.
- На последнем шаге появилась комиссия, которой не было в корзине — ценовой шок.
Шаг 3: технические сигналы
SELECT error_type, COUNT(*) AS n
FROM events
WHERE step = 'checkout' AND event = 'error'
GROUP BY 1 ORDER BY 2 DESC;- API timeouts на checkout-эндпоинте.
- Ошибки 3DS со стороны банка.
- Anti-fraud false positives.
Шаг 4: гипотеза → A/B
После того, как нашли вероятную причину — A/B-тест с фиксом, не «выкатить и надеяться».
Чек-лист причин
| Причина | Сигнал |
|---|---|
| Технический баг | error_rate ↑, одно устройство/браузер |
| UX-проблема | drop равномерный по сегментам, recordings показывают замешательство |
| Ценовой шок (доставка/комиссия) | drop при больших корзинах, отказ на view-цены |
| Доверие/безопасность | drop при первом checkout, новые юзеры |
| Способ оплаты недоступен | drop по странам/банкам |
Подводные камни
- «Средний дроп 70%» — иногда это всегда так было; нужен бенчмарк за прошлый период.
- Сегментация без поправок на маленькие выборки — увидите «дроп по Молдове 100%», а там 3 юзера.
- Drop =
1 − conv. Conv считается на тех, кто дошёл до шага, а не на топ воронки. - Если воронка не атомарна (юзер может вернуться),
last_stepискажает. Использовать «дошёл когда-либо». - Шоковые изменения метрик часто внешние: новый релиз, проблема у вендора, региональный outage.
Эталонный ответ
Сегментировать дроп (платформа, geo, сумма, способ оплаты) → смотреть recordings/error logs → формулировать гипотезу → A/B-тест с фиксом. Не «выкатить и надеяться».