Funnel & retention analysis
SQL templates for n-step funnels, day-N retention, and time-to-event.
A funnel template
WITH steps AS (
SELECT
anonymous_id,
minIf(timestamp, event_name = '$pageview') AS s1_landed,
minIf(timestamp, event_name = 'clicked_cta') AS s2_clicked,
minIf(timestamp, event_name = 'viewed_signup_form') AS s3_form,
minIf(timestamp, event_name = 'signup') AS s4_signup,
minIf(timestamp, event_name = 'activated') AS s5_activated
FROM events
WHERE project_id = '...'
AND timestamp BETWEEN '2026-05-01' AND '2026-05-17'
GROUP BY anonymous_id
)
SELECT
countIf(s1_landed IS NOT NULL) AS landed,
countIf(s2_clicked IS NOT NULL AND s2_clicked >= s1_landed) AS clicked,
countIf(s3_form IS NOT NULL AND s3_form >= s2_clicked) AS viewed_form,
countIf(s4_signup IS NOT NULL AND s4_signup >= s3_form) AS signed_up,
countIf(s5_activated IS NOT NULL AND s5_activated >= s4_signup) AS activated,
round(100.0 * countIf(s2_clicked IS NOT NULL AND s2_clicked >= s1_landed) / countIf(s1_landed IS NOT NULL), 2) AS pct_to_click,
round(100.0 * countIf(s5_activated IS NOT NULL AND s5_activated >= s4_signup) / countIf(s1_landed IS NOT NULL), 2) AS pct_landed_to_activated
FROM steps;Funnel by traffic source
Day-N retention
"Stickiness" — DAU / MAU
Time-to-event
Distribution
Power-user definition
Wrapping these in your app
See also
Last updated
Was this helpful?