Skip to content

Product Metrics Framework

★★★★★ Intermediate

Core product metrics that measure user engagement, retention, and product health. These metrics form the foundation for product analytics across mobile apps, web products, and SaaS platforms.

Key Facts

  • DAU (Daily Active Users) - unique users active in a day
  • WAU (Weekly Active Users) - unique users active in 7 days
  • MAU (Monthly Active Users) - unique users active in 30 days
  • Stickiness = DAU/MAU - measures how habit-forming the product is
  • Retention rate - % of users who return after first use on day N
  • Churn rate = 1 - Retention - % of users who stop using the product
  • "Active" must be explicitly defined per product (a login? a transaction? a feature use?)

Patterns

Stickiness Benchmarks (DAU/MAU)

Stickiness = DAU / MAU
Range Interpretation Examples
50%+ Daily use habit Social media, email
25-50% Several times per week Productivity apps
10-25% Weekly use Fitness, finance apps
<10% Infrequent use Travel booking, real estate

Stickiness is contextual - don't compare messenger stickiness to hotel booking app.

Retention Types

N-day retention: % of users from install cohort who return on exactly day N.

Bracket retention: % who return in a day range (e.g., day 7-14).

Return-on retention: % who used app at least once since install, still active on day N.

How to read retention curves: - Curve flattening = product has core value (users who stay, stay long-term) - Curve dropping to 0 = no product-market fit, everyone churns - Higher D1 vs D7 vs D30 = earlier engagement is key

User Lifecycle Stages

  1. Impression - user sees ad
  2. Click - user clicks ad
  3. Install - app downloaded and installed
  4. First open (registration/onboarding)
  5. Key event - target action (first purchase, activation)
  6. Retention - returning usage
  7. Monetization - purchase/subscription
  8. Churn - stop using app

DAU/MAU Stickiness SQL Pattern

SELECT
    event_date,
    COUNT(DISTINCT user_id) as dau,
    COUNT(DISTINCT user_id) OVER (
        ORDER BY event_date
        ROWS BETWEEN 29 PRECEDING AND CURRENT ROW
    ) as mau_rolling,
    ROUND(100.0 * COUNT(DISTINCT user_id) /
        COUNT(DISTINCT user_id) OVER (
            ORDER BY event_date
            ROWS BETWEEN 29 PRECEDING AND CURRENT ROW
        ), 1) as stickiness
FROM events
GROUP BY event_date;

Alert Strategy

Set automated alerts for: - Sharp drops in DAU (>15% vs rolling average) - Funnel conversion below threshold - Revenue per user below target

Gotchas

  • DAU/MAU can be misleading if "active" is defined too loosely (e.g., counting passive pageviews)
  • Retention benchmarks differ dramatically by product category - always compare within your vertical
  • Stickiness can be artificially inflated by push notifications that generate opens without real engagement
  • Churn rate = 1 - Retention is only valid when both use the same time window and "active" definition

See Also