Retence

Analyzing Business Data in SQL

Michel Semaan

Data Scientist

MAU – úskalí

  • Nezobrazuje rozložení aktivních uživatelů podle délky členství
  • Nerozlišuje různé vzory aktivity uživatelů
    • Případ 1: Každý měsíc se zaregistruje 100 uživatelů, kteří jsou aktivní pouze jeden měsíc
    • Případ 2: V prvním měsíci se zaregistruje pouze 100 uživatelů, žádní další se nepřidají, ale těchto 100 uživatelů je aktivních každý měsíc
    • MAU v obou případech bude 100!
Analyzing Business Data in SQL

MAU – rozložení

Rozložení

  • Noví uživatelé se připojili v tomto měsíci
  • Udržení uživatelé byli aktivní v předchozím měsíci a zůstali aktivní i v tomto měsíci
  • Reaktivovaní uživatelé nebyli aktivní v předchozím měsíci, ale v tomto měsíci se vrátili
Analyzing Business Data in SQL

Míra retence – přehled

  • Míra retence: Procentuální ukazatel podílu uživatelů aktivních v předchozím měsíci, kteří jsou aktivní i v aktuálním měsíci
  • Vzorec: $\frac{Uc}{Up}$, kde $Uc$ je počet jedinečných uživatelů aktivních v obou měsících a $Up$ je počet jedinečných uživatelů aktivních v předchozím období
  • Příklad: $\frac{80}{100} = 0{,}8 = 80\%$
Analyzing Business Data in SQL

Míra retence – dotaz

WITH user_activity AS (
  SELECT DISTINCT
    DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
    user_id
  FROM orders)

SELECT previous.delivr_month, ROUND( COUNT(DISTINCT current.user_id) :: NUMERIC / GREATEST(COUNT(DISTINCT previous.user_id), 1), 2) AS retention
FROM user_activity AS previous LEFT JOIN user_activity AS current ON previous.user_id = current.user_id AND previous.delivr_month = (current.delivr_month - INTERVAL '1 month') GROUP BY previous.delivr_month ORDER BY previous.delivr_month ASC LIMIT 3;
Analyzing Business Data in SQL

Míra retence – výsledek

delivr_month  retention
------------  ---------
2018-06-01    0.70
2018-07-01    0.70
2018-08-01    0.76
Analyzing Business Data in SQL

Retence

Analyzing Business Data in SQL

Preparing Video For Download...