Как посчитать Add to Cart Rate в SQL

Закрепи формулу add to cart rate в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать add to cart rate в Telegram

Зачем Add to Cart Rate

В e-com funnel: view product → add to cart → checkout → purchase. Add to Cart Rate показывает, насколько хорошо product page конвертирует view в желание купить. Если ACR падает — проблема в product page (фото, описание, цена, отзывы).

Формула

Add to Cart Rate = adds_to_cart / product_views × 100%

Базовый расчёт

SELECT
    COUNT(*) FILTER (WHERE event_type = 'product_view') AS views,
    COUNT(*) FILTER (WHERE event_type = 'add_to_cart') AS adds,
    COUNT(*) FILTER (WHERE event_type = 'add_to_cart')::NUMERIC * 100
        / NULLIF(COUNT(*) FILTER (WHERE event_type = 'product_view'), 0) AS acr_pct
FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL '30 days';

По продуктам

SELECT
    product_id,
    COUNT(*) FILTER (WHERE event_type = 'product_view') AS views,
    COUNT(*) FILTER (WHERE event_type = 'add_to_cart') AS adds,
    COUNT(*) FILTER (WHERE event_type = 'add_to_cart')::NUMERIC * 100
        / NULLIF(COUNT(*) FILTER (WHERE event_type = 'product_view'), 0) AS acr_pct
FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL '30 days'
  AND product_id IS NOT NULL
GROUP BY product_id
HAVING COUNT(*) FILTER (WHERE event_type = 'product_view') >= 100
ORDER BY acr_pct DESC
LIMIT 50;

HAVING views >= 100 отсекает товары с микро-трафиком.

Закрепи формулу add to cart rate в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать add to cart rate в Telegram

По channels

SELECT
    u.acquisition_channel,
    COUNT(*) FILTER (WHERE e.event_type = 'product_view') AS views,
    COUNT(*) FILTER (WHERE e.event_type = 'add_to_cart') AS adds,
    COUNT(*) FILTER (WHERE e.event_type = 'add_to_cart')::NUMERIC * 100
        / NULLIF(COUNT(*) FILTER (WHERE e.event_type = 'product_view'), 0) AS acr_pct
FROM events e
JOIN users u ON u.user_id = e.user_id
WHERE e.event_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY u.acquisition_channel
ORDER BY acr_pct DESC;

Юзеры из organic search обычно имеют ACR выше paid (более targeted intent).

Частые ошибки

Ошибка 1. Уникальные view vs total view. Юзер посмотрел product 3 раза, добавил 1 раз — ACR = 100% (по user) или 33% (по view)?

Ошибка 2. Игнорировать duplicate adds. Юзер добавил → удалил → добавил снова. Это 2 add events. Counts as one user.

Ошибка 3. Не учитывать quick adds. Add без view (через recommendation widget). Где этот «view»?

Ошибка 4. Время между view и add. Юзер view 1 января, add 15 апреля — это связано? В стандартной логике — да (same session или within 24h).

Связанные темы

FAQ

Какой ACR считается хорошим?

E-com average: 5-15%. Premium-сегмент: 2-5%. Fast fashion: 15-25%.

ACR падает — что делать?

  1. Проверить, изменилось ли product description / photos. 2) A/B-test pricing. 3) Сравнить с reviews / ratings.

ACR per product?

Да, помогает identifying problem products. Если popular product ACR 1% — что-то с page.

ACR vs CVR?

ACR — view→add. CVR — add→purchase. Можно вместе.

Mobile vs desktop ACR?

Mobile часто ниже (трудно зарегистрироваться, fat-finger). Decompose.