runtime
Video Product Analytics · milestone 01 / 04

milestone 1/4 Daily active users & engagement

Measure daily activity and user engagement.

Video Product Analytics · Move from watch events to daily engagement, rolling trends, and signup-cohort retention.

approach

DAU counts distinct people with activity on a calendar day, not event rows. Define engagement separately: here it is total seconds divided by active viewers. This result includes observed dates only.

worked-example.sql
SELECT
  date(watched_at) AS day,
  COUNT(DISTINCT viewer_id) AS active_viewers
FROM watch_events
GROUP BY day;

data for this milestone

watch_events5 columns · 26 rows
idinteger · keyviewer_idintegervideo_idintegerwatched_attextwatch_secondsinteger
1112025-01-01 10:00:00300
2122025-01-01 11:00:00450
3212025-01-02 12:00:00600
4332025-01-02 13:00:00120
5142025-01-02 14:00:00700

showing 5 of 26 rows

challenge 1

Return day (YYYY-MM-DD) and active_viewers (distinct viewers) for every observed watch date.

what to return

Columns
dayactive_viewers in this order
Rows
any order
challenge-1.sql
 
3 steps left · check both queries and pass the concept checkOpen the reportNext milestone
Daily active users & engagement — Video Product Analytics · Runtime