Как посчитать Revenue per Visitor в SQL
Содержание:
Зачем 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;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.
Связанные темы
- Как посчитать AOV в SQL
- Как посчитать конверсию в SQL
- Как посчитать funnel в SQL
- Как посчитать ARPDAU в SQL
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.