Как посчитать WAU в SQL
users поле phone бывает NULL и бывает пустой строкой. Какое утверждение верное?Содержание:
Зачем WAU
В соцсетях и приложениях с недельной сезонностью (бизнес-инструменты, фитнес-приложения) DAU слишком волатилен, а MAU слишком сглаживает. WAU — компромисс: видишь недельный тренд без шума выходных и без потери деталей.
Что такое WAU
WAU (Weekly Active Users) — уникальные пользователи, совершившие минимум одно действие за неделю.
WAU = COUNT(DISTINCT user_id) where date ∈ неделяБазовый расчёт
SELECT
DATE_TRUNC('week', event_date) AS week,
COUNT(DISTINCT user_id) AS wau
FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL '12 weeks'
GROUP BY 1
ORDER BY 1;DATE_TRUNC('week', ...) в Postgres начинает неделю с понедельника.
Календарный WAU vs скользящий 7-дневный
Календарный WAU
Активные за неделю (понедельник — воскресенье). Просто.
Скользящий 7-дневный WAU
Активные за последние 7 дней. Гладкая кривая.
WITH dates AS (
SELECT generate_series(CURRENT_DATE - INTERVAL '90 days', CURRENT_DATE, INTERVAL '1 day')::DATE AS day
)
SELECT
d.day,
COUNT(DISTINCT e.user_id) AS rolling_wau
FROM dates d
JOIN events e
ON e.event_date > d.day - INTERVAL '7 days'
AND e.event_date <= d.day
GROUP BY d.day
ORDER BY d.day;WAU по сегментам
SELECT
DATE_TRUNC('week', e.event_date) AS week,
u.platform,
COUNT(DISTINCT e.user_id) AS wau
FROM events e
JOIN users u ON u.user_id = e.user_id
WHERE e.event_date >= CURRENT_DATE - INTERVAL '12 weeks'
GROUP BY 1, 2
ORDER BY 1, wau DESC;Частые ошибки
Ошибка 1. Неполная неделя. Сегодня среда — неделя ещё не закончилась. Используйте week-to-date.
Ошибка 2. Понедельник vs воскресенье. В разных странах неделя начинается по-разному. Зафиксируйте.
Ошибка 3. Дубли user_id. DISTINCT не сработает на дублях с разными формами идентификатора. Нормализуйте.
Ошибка 4. Боты. Без фильтра — WAU завышен.
Ошибка 5. Часовой пояс. DATE_TRUNC в UTC vs локальная зона — разные числа.
Связанные темы
FAQ
WAU или MAU?
WAU подходит продуктам с недельным ритмом использования, где заходить каждый день не обязательно. MAU информативнее для сервисов с редким обращением — например, ритейла или банков, куда пользователь заглядывает пару раз в месяц.
Календарный или скользящий?
Скользящее окно лучше показывает тренд: кривая получается гладкой, без скачков на стыке недель. Календарный WAU удобнее для отчётности, потому что совпадает с привычными недельными периодами.
WAU/MAU ratio?
У сильных продуктов WAU/MAU обычно держится в диапазоне 0,5–0,7. Это значит, что большая часть месячной аудитории заходит и в течение недели, то есть лояльные пользователи возвращаются регулярно.
Какие изменения большие?
В стабильном продукте недельные колебания WAU в пределах ±2–3% (WoW) — это норма. Скачок больше 5% — уже сигнал, что стоит разобраться в причине.
WAU упал — что делать?
Разложите WAU на новых, вернувшихся и ушедших пользователей — так видно, за счёт какой группы просел показатель. Дальше остаётся найти причину провала именно в этой группе.