Что такое Stickiness Factor (DAU/MAU)?
Доля месячной аудитории, которая заходит в продукт ежедневно.
Формула
Stickiness = DAU / MAU (для дня внутри месяца)Как считать
Делим DAU на MAU в рамках одного месяца.
Зачем нужна
Характеризует привычку и ценность продукта. Высокая доля = сильное удержание.
SQL-запрос
WITH daily AS (
SELECT DATE(event_timestamp) AS date, COUNT(DISTINCT user_id) AS dau
FROM events
WHERE event_timestamp >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month')
AND event_timestamp < DATE_TRUNC('month', CURRENT_DATE) + INTERVAL '1 month'
AND event_name IN ('app_open', 'session_start', 'feature_use')
GROUP BY 1
),
monthly AS (
SELECT DATE_TRUNC('month', event_timestamp) AS month, COUNT(DISTINCT user_id) AS mau
FROM events
WHERE event_timestamp >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month')
AND event_timestamp < DATE_TRUNC('month', CURRENT_DATE) + INTERVAL '1 month'
AND event_name IN ('app_open', 'session_start', 'feature_use')
GROUP BY 1
)
SELECT
d.date,
d.dau,
m.mau,
ROUND(d.dau::decimal / NULLIF(m.mau, 0), 3) AS dau_to_mau
FROM daily d
JOIN monthly m ON DATE_TRUNC('month', d.date) = m.month
ORDER BY d.date DESC;