milestone 4/4 Experiment conversion denominators
Choose the correct population for experiment conversion rates.
Social Product Analytics · Clean event retries, reconstruct ordered funnels, sessionize activity, and compare experiment conversions.
approach
Compare assigned members, including people who do nothing. A conversion is at least one purchase on or after assignment, through Jan 31. Counting purchases instead of members or using only active members biases the denominator. This query estimates rates, not statistical significance.
WITH results AS(
SELECT
a.member_id,
a.variant,
CASE
WHEN EXISTS(
SELECT 1
FROM social_events e
WHERE e.member_id=a.member_id
AND e.event_type='purchase'
AND e.event_at>=a.assigned_at
AND e.event_at<'2025-02-01'
) THEN 1
ELSE 0
END AS converted
FROM experiment_assignments a
)
SELECT
variant,
COUNT(*) AS assigned,
SUM(converted) AS converted,
ROUND(100.0*SUM(converted)/COUNT(*),2) AS conversion_pct
FROM results
GROUP BY variant;data for this milestone
social_events6 columns · 22 rows
| idinteger · key | event_keytext | member_idinteger | event_typetext | event_attext | ingested_attext |
|---|---|---|---|---|---|
| 1 | a | 1 | view | 2025-01-01 10:00:00 | 2025-01-01 10:00:01 |
| 2 | b | 1 | signup | 2025-01-01 10:03:00 | 2025-01-01 10:03:01 |
| 3 | c | 1 | purchase | 2025-01-01 10:05:00 | 2025-01-01 10:05:01 |
| 4 | a | 1 | view | 2025-01-01 10:00:00 | 2025-01-01 10:10:00 |
| 5 | d | 2 | view | 2025-01-02 09:00:00 | 2025-01-02 09:00:01 |
showing 5 of 22 rows
experiment_assignments3 columns · 8 rows
| member_idinteger · key | varianttext | assigned_attext |
|---|---|---|
| 1 | control | 2025-01-01 09:00:00 |
| 2 | control | 2025-01-02 08:00:00 |
| 3 | treatment | 2025-01-03 08:30:00 |
| 4 | treatment | 2025-01-04 09:00:00 |
| 5 | control | 2025-01-05 10:00:00 |
showing 5 of 8 rows