Goal: estimate causal effect of the non-random rollout (priority to high-value segments) on revenue per user.Analysis plan (stepwise):1) Clarify data & window- Define treatment = received feature during rollout window. Outcome = short-term (e.g., 30d) revenue per user, and longer-term if available.- Collect rich pre-treatment covariates: historical revenue, recency/frequency/monetary (RFM), demographics, product usage, cohort, device, region, seasonality indicators. Pull at user-level with timestamps.2) Identify assumptions- Conditional ignorability: given covariates, treatment assignment is as-good-as-random.- Overlap: there is sufficient common support between treated and controls.- SUTVA: no spillovers between users (discussable).3) Exploratory & bias checks- Compare pre-treatment outcomes and covariates: standardized mean differences, plots.- Pre-trend placebo: check revenue trends before rollout — treated vs prioritized controls.- Falsification outcomes: test outcomes that shouldn’t be affected (e.g., static profile fields).- Describe assignment rule: document selection criteria to find unmeasured confounders.4) Estimation strategies- Propensity score methods: - Fit a logistic regression (or gradient boosting) for P(treated | covariates). - Use matching (nearest neighbor with caliper) or IPTW weighting to create balanced sample. - Check balance after adjustment (SMD < 0.1).- Regression adjustment / doubly robust: - Outcome regression Y ~ treatment + covariates, or use doubly-robust AIPW to protect misspecification.- If pre/post panel exists: difference-in-differences (DiD) with covariate controls or synthetic control for aggregate segments.- Covariate selection: avoid post-treatment variables.5) Diagnostics & robustness- Balance diagnostics, overlap plots, effective sample size after weighting.- Sensitivity analyses: - Rosenbaum bounds for unobserved confounding. - E-value to quantify minimal strength of unmeasured confounder. - Re-estimate with alternative specifications (PS model variants, caliper widths, matching ratios, trimming). - Placebo rollout dates and falsification outcomes. - Subgroup analyses (by segment) and leave-one-cohort-out.6) Reporting- Present ATT with confidence intervals, robustness table of estimates, diagnostics plots, and clear statement of assumptions and limitations.- Recommend randomized rollout / A/B for future to validate.Example SQL to pull covariates:sql
SELECT user_id, sum(rev) FILTER (WHERE event_date < '2025-01-01') as rev_prev30,
count(DISTINCT session_id) as sessions_prev30, signup_date, region, device
FROM events
GROUP BY user_id;
This plan balances practical steps (data pull, balance checks, matching/DiD, regression/doubly-robust) with sensitivity analyses to assess credibility of causal claims.