This question evaluates proficiency in event-time analytics and cohort churn metric computation using SQL, focusing on correct identification of first qualifying events and aggregation by experimental variant.
Write a SQL query to measure the performance of a free-month promotion experiment.
Assume experiment_users already contains only users who were eligible for the experiment. Do not re-implement eligibility logic.
Tables:
experiment_users
user_id
BIGINT -- primary key
variant
VARCHAR -- values:
control
,
free_month
assigned_at
TIMESTAMP -- experiment assignment time in UTC
subscription_events
user_id
BIGINT -- foreign key to
experiment_users.user_id
event_ts
TIMESTAMP -- event time in UTC
event_type
VARCHAR -- one of
signup
,
free_trial_start
,
paid_start
,
cancel
,
reactivate
Business definitions:
eligible_users
: distinct users in
experiment_users
.
signups_30d
: users whose first
signup
after
assigned_at
occurs within 30 days of assignment.
paid_converted_60d
: users whose first
paid_start
after
assigned_at
occurs within 60 days of assignment.
churned_90d_after_first_paid
: among users with a first
paid_start
, count users who have at least one
cancel
event within 90 days after that first
paid_start
.
cancel
after the first
paid_start
. Ignore
cancel
events that happen before the first
paid_start
.
signup
and first qualifying
paid_start
after assignment.
Return one row per variant with these columns:
variant
eligible_users
signups_30d
paid_converted_60d
churned_90d_after_first_paid
churn_rate_90d_after_first_paid
where the denominator is
paid_converted_60d
.