CloudDesk is a B2B SaaS company (project management) with ~8,000 paying customer accounts and ~1.6M monthly active end users. The company shipped an “AI Summary” feature intended to reduce churn by making it easier for teams to catch up on work.
The rollout was not randomized: larger, higher-paying accounts were prioritized by Customer Success and got the feature earlier. You have monthly account-level data for 6 months (3 pre + 3 post relative to each account’s rollout month), and you want to estimate the causal impact of enabling AI Summary on monthly logo retention (whether the account is still active and paying at month end).
A key modeling decision: should you use a fixed-effects model (account-specific intercepts) or a random-effects / mixed-effects model (account intercepts treated as random draws)?
You are asked to (a) explain the difference between fixed-effects and random-effects models in this context, (b) decide which you would use for the primary estimate of the feature’s effect, and (c) compute and interpret the estimated treatment effect using the summary statistics below.
You fit two linear probability models (LPMs) on the same panel dataset (48,000 account-month rows = 8,000 accounts × 6 months). The outcome is retained (0/1). The key regressor is ai_enabled (0/1). You also include month dummies to absorb global seasonality.
| Model | Specification (high level) | _treat (ai_enabled) | SE(_treat) | 95% CI for _treat | Notes |
|---|---|---|---|---|---|
| A | Random intercept by account (mixed model) + month FE | -0.0062 | 0.0025 | ? | Uses between + within-account variation |
| B | Account fixed effects + month FE | -0.0031 | 0.0016 | ? | Uses within-account variation only |
Additional dataset facts:
| Quantity | Value |
|---|---|
| Mean monthly retention rate (overall) | 0.962 |
| Accounts that ever enable AI Summary during window | 3,200 |
| Avg. pre-period retention among early-rollout accounts | 0.975 |
| Avg. pre-period retention among late/no-rollout accounts | 0.958 |
| Significance level | = 0.05 |
ai_enabled.