Как посчитать power users в SQL
JOIN. Запрос стал выполняться быстрее. Почему это могло произойти?Содержание:
Зачем power users
Power users — это верхний дециль по активности. Они показывают, «как продукт работает на максимум». Если они платят больше — оптимизируйте продукт под них. Если они нашли непредусмотренный сценарий использования — это будущее основной массы пользователей. А ещё power users подсказывают, что обещать в маркетинге.
Определения
- Верхний дециль по сессиям: 10% пользователей с наибольшим числом сессий за период.
- Верхний дециль по выручке: пользователи с максимальным LTV.
- Активны 6+ дней в неделю: критерий вовлечённости (stickiness).
- Использовали > N фич: широта использования.
Power users в SQL
Топ-10% по сессиям за последние 30 дней:
WITH session_count AS (
SELECT
user_id,
COUNT(DISTINCT DATE(event_timestamp)) AS active_days
FROM events
WHERE event_timestamp >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY user_id
),
deciles AS (
SELECT
user_id,
active_days,
NTILE(10) OVER (ORDER BY active_days DESC) AS decile
FROM session_count
)
SELECT
user_id,
active_days
FROM deciles
WHERE decile = 1
ORDER BY active_days DESC;NTILE(10) режет на 10 равных групп. Верхний дециль — это decile = 1.
Анализ поведения
Чем отличаются power от остальных:
WITH labeled AS (
SELECT
user_id,
active_days,
CASE WHEN active_days >= (SELECT PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY active_days) FROM session_count) THEN 'power' ELSE 'normal' END AS segment
FROM session_count
)
SELECT
segment,
COUNT(*) AS users,
AVG(active_days) AS avg_active_days,
AVG(revenue_total) AS avg_revenue,
AVG(features_used) AS avg_features
FROM labeled
JOIN user_stats USING (user_id)
GROUP BY segment;У power users обычно: в 3-5 раз больше выручки, в 2-3 раза больше используемых фич, в 4-7 раз больше активных дней.
Power user → референс
«Как перейти из normal в power»:
WITH power_signature AS (
SELECT
AVG(used_feature_a) AS adoption_a,
AVG(used_feature_b) AS adoption_b,
AVG(used_feature_c) AS adoption_c
FROM user_features
WHERE user_id IN (SELECT user_id FROM power_users)
),
normal_signature AS (
SELECT
AVG(used_feature_a) AS adoption_a,
AVG(used_feature_b) AS adoption_b,
AVG(used_feature_c) AS adoption_c
FROM user_features
WHERE user_id NOT IN (SELECT user_id FROM power_users)
)
SELECT
p.adoption_a - n.adoption_a AS gap_a,
p.adoption_b - n.adoption_b AS gap_b,
p.adoption_c - n.adoption_c AS gap_c
FROM power_signature p, normal_signature n;Самый большой разрыв — это рычаг для онбординга non-power пользователей.
Частые ошибки
Ошибка 1. Определять power по одной метрике. Пользователь открывает приложение каждый день и ничего не делает — это не power. Используйте композитный критерий: активность × выручка × фичи.
Ошибка 2. Брать топ-1% вместо топ-10%. 1% — слишком мало для аналитики: выборка шумит и нерепрезентативна.
Ошибка 3. Считать на новых пользователях. Формирование power user требует времени. В когорте младше 30 дней таких пользователей почти нет.
Ошибка 4. Игнорировать размер выборки. В сегменте из 50 пользователей топ-10% — это 5 человек, слишком мало для статистических выводов.
Ошибка 5. Не пересчитывать сегмент. Power полгода назад ≠ power сегодня. Перепроверяйте состав ежеквартально.
Связанные темы
- Как посчитать engagement в SQL
- Как посчитать feature adoption в SQL
- Как посчитать stickiness в SQL
- Как посчитать LTV в SQL
FAQ
Верхний дециль или абсолютный порог?
Верхний дециль — это относительный критерий, а порог (например, больше 20 сессий) — абсолютный. Лучше использовать оба: дециль ловит топ относительно текущей базы, а порог фиксирует минимальную планку активности.
Power — это всегда высокая выручка?
Не всегда. Активный пользователь на бесплатном тарифе может быть power по вовлечённости, но не по выручке. Поэтому активность и высокая выручка — это два разных среза, которые не стоит смешивать.
Сколько % пользователей — power?
Стандарт — 10% пользователей. Если критерии жёстче, берут 5%. Точная доля — это выбор аналитика, а не жёсткое правило.
Power как маркетинговый инструмент?
Да, power users отлично работают в маркетинге: из них получаются отзывы и кейсы, а ещё им можно давать ранний доступ к бета-фичам. Это одновременно и контент, и способ удержать самых ценных пользователей.
Power user может уйти в отток?
Да, может. Жизненный цикл power user — это отдельная аналитическая задача: важно ловить ранние признаки, что даже самый активный пользователь начинает угасать.