← Stripe Interview Insights

Stripe·Data Scientist·Technical Phone Screen·Senior

Senior
Jun 2026

Summary

Stripe data scientist interview, heavy on experimentation stats. Five questions back to back, all quantitative, no fluff. The kind of loop where you either know your sample size formulas or you don't.

Questions Asked (5)

Q1

For a two-arm conversion experiment with a baseline rate of 12% and a target absolute uplift of 0.5 percentage points (two-sided, alpha 0.05, power 80%), derive the required per-variant sample size using the normal approximation for a difference in proportions. Show the formula and walk through the calculation.

A/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

I knew the formula but fumbled the pooled variance piece.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by stating the standard formula for sample size per arm for a two-proportion z-test, then plug in the given values: baseline rate p1 = 0.12, target rate p2 = 0.125, alpha = 0.05 (two-sided), power = 0.80. Compute the required sample size step-by-step, showing intermediate calculations and rounding up to the nearest integer.

Pro tip: Mention that this calculation assumes no continuity correction and equal allocation; in practice, you might inflate the sample size by 5-10% to account for data loss or multiple comparisons, and consider using exact methods for small rates.

1. State the formula

Write the formula for sample size per arm: n = ( (z_{1-α/2} * sqrt(2 * p̄ * (1-p̄)) + z_{1-β} * sqrt(p1*(1-p1) + p2*(1-p2)) )^2 ) / (p2 - p1)^2, where p̄ = (p1+p2)/2.

2. Identify parameters

Assign values: p1 = 0.12, p2 = 0.125, Δ = 0.005, α = 0.05 (two-sided) so z_{1-α/2} = 1.96, β = 0.20 so z_{1-β} = 0.84.

3. Compute intermediate terms

Calculate p̄ = (0.12+0.125)/2 = 0.1225. Then compute the two variance terms: 2*p̄*(1-p̄) = 2*0.1225*0.8775 ≈ 0.21495, and p1*(1-p1)+p2*(1-p2) = 0.12*0.88 + 0.125*0.875 = 0.1056 + 0.109375 = 0.214975.

4. Plug into formula and solve

Compute numerator: (1.96*sqrt(0.21495) + 0.84*sqrt(0.214975))^2. sqrt(0.21495) ≈ 0.4636, sqrt(0.214975) ≈ 0.4636. So (1.96*0.4636 + 0.84*0.4636) = (0.9087 + 0.3894) = 1.2981. Square: 1.685. Divide by Δ^2 = 0.000025: n ≈ 67,400 per arm.

5. Round and interpret

Round up to the next integer: 67,400 per arm. Mention that this is a large sample due to the small effect size relative to baseline.

Key Points to Mention

  • Use of normal approximation for difference in proportions
  • Two-sided alpha and power in z-scores
  • Pooled variance under null vs. unpooled under alternative
  • Effect size is absolute difference (0.5 pp)
  • Assumption of equal allocation and no continuity correction
  • Practical considerations like rounding up and potential adjustments

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

You ran the experiment for a week. Control had 150k users with 18,000 conversions, treatment had 150k users with 18,900 conversions. Calculate the point estimate, a 95% confidence interval, and a p-value. Then explain whether the result is statistically significant, and whether it's actually meaningful for the business.

A/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

The stat sig vs business significance part is where I spent most of my time.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by calculating the conversion rates for control and treatment, then compute the absolute and relative lift. Use the two-proportion z-test to derive the standard error, confidence interval, and p-value, and interpret both statistical and practical significance in the context of Stripe's business metrics.

Pro tip: Always relate the lift to a business metric like revenue or conversion value, and consider the cost of implementation—statistical significance alone doesn't justify a rollout.

1. Calculate conversion rates and lift

Compute control rate = 18,000/150,000 = 12%, treatment rate = 18,900/150,000 = 12.6%. Absolute lift = 0.6 percentage points, relative lift = 5%.

2. Compute standard error and test statistic

Use pooled proportion for the z-test: p_pool = (18,000+18,900)/(300,000) = 0.123. Standard error = sqrt(p_pool*(1-p_pool)*(2/150,000)) ≈ 0.0012. Z = (0.126-0.12)/0.0012 ≈ 5.0.

3. Derive confidence interval and p-value

For 95% CI, use unpooled SE: sqrt(0.12*0.88/150000 + 0.126*0.874/150000) ≈ 0.0012. CI = (0.006 - 1.96*0.0012, 0.006 + 1.96*0.0012) ≈ (0.0036, 0.0084) or (0.36%, 0.84%). P-value for Z=5.0 is < 0.0001 (two-tailed).

4. Interpret statistical significance

Since p-value < 0.05 and CI excludes zero, the result is statistically significant. However, check if the CI includes the minimum detectable effect (MDE) or business threshold.

5. Assess business meaningfulness

Evaluate if a 5% relative lift (0.6 pp) is practically significant. Consider factors like revenue impact, implementation cost, and whether it aligns with strategic goals. For Stripe, even small lifts can be valuable at scale, but ensure it's not due to novelty or segment-specific effects.

Key Points to Mention

  • Two-proportion z-test and pooled vs unpooled standard error
  • Statistical significance (p-value < 0.05) and confidence interval interpretation
  • Practical significance: minimum detectable effect and business impact
  • Sample size and power considerations
  • Potential pitfalls: multiple testing, novelty effect, and segment analysis
  • Cost-benefit analysis for implementation

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

Suppose you apply CUPED using a pre-experiment covariate that explains 30% of the variance in the outcome (R-squared = 0.30). How does this change the effective variance, and what is the revised minimum detectable effect? Show the math.

A/B Testing & ExperimentationA/B Testing & Experimentation
Author's notes

CUPED I use regularly so this went fine.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by explaining the CUPED variance reduction formula: the adjusted variance is (1 - ρ²) times the original variance, where ρ² is the R-squared between the pre-experiment covariate and the outcome. Then, since MDE is proportional to the standard error, which is proportional to the square root of the variance, the revised MDE is the original MDE multiplied by sqrt(1 - ρ²). Plug in ρ² = 0.30 to get the numerical reduction.

Pro tip: Emphasize that CUPED reduces variance without biasing the treatment effect estimate, and that the 30% variance reduction translates to a 16.3% reduction in MDE (or equivalently, a ~30% reduction in required sample size for the same power). This shows you understand the practical impact on experiment efficiency.

1. State the CUPED variance reduction formula

Recall that CUPED adjusts the outcome by subtracting a multiple of the pre-experiment covariate, and the variance of the adjusted outcome is (1 - ρ²) times the original variance, where ρ² is the squared correlation between covariate and outcome.

2. Relate variance to minimum detectable effect

Explain that MDE is proportional to the standard error, which is the square root of the variance divided by sample size. Therefore, MDE scales with the square root of the variance reduction factor.

3. Plug in the given R-squared

Substitute ρ² = 0.30 into the formula: adjusted variance = 0.70 * original variance. Then compute the MDE multiplier: sqrt(0.70) ≈ 0.8367.

4. Interpret the result

Conclude that the effective variance is reduced by 30%, and the revised MDE is about 83.67% of the original MDE, i.e., a 16.33% reduction. Optionally, mention that this corresponds to a 30% reduction in required sample size for the same power.

Key Points to Mention

  • CUPED uses pre-experiment data to reduce variance without introducing bias.
  • The variance reduction factor is (1 - R²), where R² is the proportion of variance explained by the covariate.
  • MDE is proportional to the standard error, so it scales with the square root of the variance.
  • With R² = 0.30, the adjusted variance is 70% of the original, and the MDE is multiplied by sqrt(0.70) ≈ 0.8367.
  • The practical implication: a 16.33% reduction in MDE or a 30% reduction in sample size for the same power.
  • CUPED is especially useful when pre-experiment covariates are strongly correlated with the outcome.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q4

You're monitoring four guardrail metrics with unadjusted p-values of 0.03, 0.01, 0.20, and 0.04. Apply Holm-Bonferroni correction at a familywise error rate of 5% and state which guardrails are still significant. Show the ordering and the adjusted thresholds at each step.

A/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

Blanked for a second on the ordering direction.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

First, sort the p-values in ascending order and assign ranks. Then, for each rank k (from 1 to m), compare the p-value to the Holm-Bonferroni threshold α/(m - k + 1). Stop at the first non-significant p-value; all subsequent hypotheses are also non-significant. Finally, state which guardrails remain significant.

Pro tip: When applying Holm-Bonferroni, remember that it is a step-down procedure: once you fail to reject a null hypothesis, you must stop and declare all remaining hypotheses non-significant, even if their p-values are below their individual thresholds. This controls the familywise error rate without being overly conservative.

1. Sort p-values and assign ranks

List the four p-values in ascending order: 0.01, 0.03, 0.04, 0.20. Assign ranks 1 to 4 respectively.

2. Compute adjusted thresholds

For each rank k, compute the Holm-Bonferroni threshold α/(m - k + 1), where m = 4 and α = 0.05. Thresholds: rank 1: 0.05/4 = 0.0125; rank 2: 0.05/3 ≈ 0.0167; rank 3: 0.05/2 = 0.025; rank 4: 0.05/1 = 0.05.

3. Compare and stop at first non-significant

Compare each p-value to its threshold in order. Rank 1: 0.01 < 0.0125 → significant. Rank 2: 0.03 > 0.0167 → not significant. Stop here; ranks 3 and 4 are automatically not significant.

4. State final significant guardrails

Only the guardrail with p-value 0.01 remains significant after Holm-Bonferroni correction. The others (0.03, 0.04, 0.20) are not significant.

Key Points to Mention

  • Holm-Bonferroni is a step-down procedure that controls the familywise error rate (FWER) without assuming independence.
  • The adjusted thresholds are α/(m - k + 1) for the k-th smallest p-value, where m is the total number of hypotheses.
  • Once a p-value exceeds its threshold, all subsequent (larger) p-values are also declared non-significant.
  • In this example, only the smallest p-value (0.01) is significant after correction.
  • The unadjusted p-values 0.03 and 0.04 would be significant at α=0.05 individually, but not after Holm-Bonferroni correction.
  • Always report the adjusted thresholds and the stopping point to show transparency in multiple testing correction.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q5

How would you detect and correct for overdispersion or miscalibration in conversion rate estimates when users are clustered by geographic region?

A/B Testing & ExperimentationRoot Cause AnalysisTechnical Trade-offs
Author's notes

This one surprised me a bit.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by explaining how to detect overdispersion in clustered conversion data using statistical tests and diagnostic plots, then discuss methods to correct for it such as mixed-effects models or cluster-robust standard errors. Emphasize the importance of accounting for geographic clustering to ensure valid inference and reliable conversion rate estimates.

Pro tip: When dealing with clustered data, always consider using Bayesian hierarchical models to naturally account for overdispersion and provide more stable estimates, especially when some regions have small sample sizes.

1. Detect Overdispersion

Compute the dispersion statistic (e.g., Pearson chi-square divided by degrees of freedom) and inspect residuals. If the value is significantly greater than 1, overdispersion is present.

2. Assess Clustering Impact

Use intraclass correlation coefficient (ICC) or design effect to quantify how much geographic clustering inflates variance. This helps determine the necessary correction.

3. Choose Correction Method

Select an appropriate model: quasi-Poisson/binomial for simple adjustments, mixed-effects models with random intercepts for regions, or cluster-robust standard errors to account for within-cluster correlation.

4. Validate and Compare

Compare corrected estimates with uncorrected ones and check model diagnostics (e.g., residual plots, overdispersion tests) to ensure the correction adequately addresses the issue.

5. Communicate Trade-offs

Discuss the trade-offs between model complexity, interpretability, and computational cost. Recommend the method that best balances accuracy and practicality for the business context.

Key Points to Mention

  • Overdispersion occurs when variance exceeds the mean, often due to unmodeled heterogeneity or clustering.
  • Geographic clustering induces correlation among users within the same region, violating independence assumptions.
  • Mixed-effects models (random effects for regions) can capture cluster-specific variability and adjust estimates.
  • Cluster-robust standard errors (e.g., Huber-White) provide valid inference without specifying the correlation structure.
  • Quasi-likelihood approaches (quasi-Poisson, quasi-binomial) scale standard errors by the dispersion parameter.
  • Bayesian hierarchical models offer a flexible framework for overdispersion and small-sample clusters.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.