Real-world recipes · Product analytics

Weekly and monthly active users (WAU, MAU)

In Excel, you'd reach for
fxA pivot of unique users per week, which Excel makes surprisingly hard

Active user means someone who did something meaningful in the period. Here, anyone with a login event. The trick is counting each person once per week, however many times they logged in. That is COUNT(DISTINCT customer_id).

To group by week, we turn every date into the Monday that starts its week.

Try itEdit the query, then Run
week_startingweekly_active_users
2026-01-0510
2026-01-1216
2026-01-1924
2026-01-2633
2026-02-0236
2026-02-0940
2026-02-1647
2026-02-2358
2026-03-0260
2026-03-0977

Showing 10 of 26 rows. Press Run to see them all.

For MAU, swap the week for the month: strftime('%Y-%m', event_date). Dividing average daily actives by MAU gives "stickiness", a common product health number.

Your turn

Monthly active users: count distinct customers with a login each month. Columns month and mau, in order.

This page on one card

Weekly and monthly active users (WAU, MAU): the Excel way (A pivot of unique users per week) and the SQL query, side by side
Weekly and monthly active users (WAU, MAU), on one card: the Excel way and the SQL. Download · Save to Pinterest
The practice data (7 tables)

See every column and sample rows