Как посчитать Revenue per Visitor в SQL

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

Зачем Revenue per Visitor

E-com магазин: трафик +50% (от рекламы), revenue +30%. Кажется ок. Но RPV (revenue per visitor) упал на 13%. Маркетинг приводит mass-сегмент с низким conversion. RPV — компактная метрика efficiency трафика.

Формула

Revenue per Visitor = Revenue / Unique Visitors

Или per session: Revenue per Session.

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

Данные: sessions(visitor_id), orders(visitor_id, total).

WITH visitors AS (
    SELECT COUNT(DISTINCT visitor_id) AS unique_visitors
    FROM sessions
    WHERE session_date >= CURRENT_DATE - INTERVAL '30 days'
),
revenue AS (
    SELECT SUM(total) AS revenue
    FROM orders
    WHERE status = 'paid'
      AND created_at >= CURRENT_DATE - INTERVAL '30 days'
)
SELECT
    r.revenue,
    v.unique_visitors,
    r.revenue::NUMERIC / NULLIF(v.unique_visitors, 0) AS rpv
FROM revenue r
CROSS JOIN visitors v;

По источникам / устройствам

WITH visitor_revenue AS (
    SELECT
        s.utm_source,
        s.device_type,
        COUNT(DISTINCT s.visitor_id) AS visitors,
        COALESCE(SUM(o.total), 0) AS revenue
    FROM sessions s
    LEFT JOIN orders o ON o.visitor_id = s.visitor_id
        AND o.status = 'paid'
        AND o.created_at::DATE = s.session_date
    WHERE s.session_date >= CURRENT_DATE - INTERVAL '30 days'
    GROUP BY s.utm_source, s.device_type
)
SELECT
    utm_source,
    device_type,
    visitors,
    revenue,
    revenue / NULLIF(visitors, 0) AS rpv
FROM visitor_revenue
ORDER BY rpv DESC;
Закрепи формулу revenue per visitor в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать revenue per visitor в Telegram

RPV vs AOV vs ARPU

Метрика Формула На что
RPV Revenue / visitors На каждого зашедшего
AOV Revenue / orders На каждый заказ
ARPU Revenue / paying users На каждого платящего

RPV — top-of-funnel. AOV — bottom-of-funnel. RPV учитывает conversion + AOV.

RPV = Conversion Rate × AOV

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

Ошибка 1. Visitor vs Session. Один visitor = много сессий. RPV per visitor vs Revenue per Session — разные числа.

Ошибка 2. Cross-device. Юзер на phone и desktop = 2 visitors. Без unification overcount.

Ошибка 3. Окно atribution. Visitor 1 января — покупка 1 апреля. К какому RPV отнести?

Ошибка 4. Bot traffic. Боты — visitors без revenue → RPV занижен.

Ошибка 5. Direct traffic без context. «Direct» revenue per visitor обычно highest (loyal users). Не сравнивайте напрямую с paid.

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

FAQ

Какой RPV считается ok?

В e-com среднее $1-10 за visitor. В premium — $20-50. В FMCG — $0.5-3.

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

Декомпозиция: 1) CR падает (плохие visitors?), 2) AOV падает (плохой mix?), 3) Mix utm-channels изменился.

RPV vs Revenue per Session?

Visitor — unique. Session — каждое посещение. На одного visitor может быть 5 sessions.

Per-product RPV?

Конкретная page revenue / visitors of that page. Полезно для product page optimization.

RPV mobile vs desktop?

Desktop обычно выше (трудно покупать на mobile). Decompose.