runtime
Social Product Analytics · milestone 02 / 04

milestone 2/4 Ordered conversion funnels

Count users who complete events in the required order.

Social Product Analytics · Clean event retries, reconstruct ordered funnels, sessionize activity, and compare experiment conversions.

approach

A funnel is an ordered journey. Find the first view, then the first signup on or after that view, then the first purchase on or after signup. A purchase that happens before signup does not complete this funnel. Equal timestamps are allowed here.

worked-example.sql
-- Build one row per member at each stage.
 WITH views AS(
  SELECT member_id,MIN(event_at) AS viewed_at
  FROM social_events
  WHERE event_type='view'
  GROUP BY member_id
), signups AS(
  SELECT v.member_id,v.viewed_at,MIN(e.event_at) AS signed_at
  FROM views v
  LEFT JOIN social_events e
    ON e.member_id=v.member_id
    AND e.event_type='signup'
    AND e.event_at>=v.viewed_at
  GROUP BY v.member_id,v.viewed_at
), funnel AS(
  SELECT
    s.member_id,
    s.viewed_at,
    s.signed_at,
    MIN(e.event_at) AS purchased_at
  FROM signups s
  LEFT JOIN social_events e
    ON e.member_id=s.member_id
    AND e.event_type='purchase'
    AND e.event_at>=s.signed_at
  GROUP BY s.member_id,s.viewed_at,s.signed_at
)
SELECT
  COUNT(*) AS viewed,
  COUNT(signed_at) AS signed_up,
  COUNT(purchased_at) AS purchased
FROM funnel;

data for this milestone

social_events6 columns · 22 rows
idinteger · keyevent_keytextmember_idintegerevent_typetextevent_attextingested_attext
1a1view2025-01-01 10:00:002025-01-01 10:00:01
2b1signup2025-01-01 10:03:002025-01-01 10:03:01
3c1purchase2025-01-01 10:05:002025-01-01 10:05:01
4a1view2025-01-01 10:00:002025-01-01 10:10:00
5d2view2025-01-02 09:00:002025-01-02 09:00:01

showing 5 of 22 rows

challenge 1

Return one row: viewed, signed_up, purchased as member counts for the ordered view → signup → purchase funnel.

Equal times are allowed; use each member's earliest valid next step.

what to return

Columns
viewedsigned_uppurchased in this order
Rows
any order
challenge-1.sql
 
3 steps left · check both queries and pass the concept checkOpen the reportNext milestone
Ordered conversion funnels — Social Product Analytics · Runtime