Event study

Did ChatGPT bend the revenue curve?

The narrative says AI re-accelerated the cloud. An interrupted time-series with two counterfactuals is a way to check that claim instead of repeating it — and the two counterfactuals disagree.

The growth-rate event view

Growth decelerated INTO the AI era first — enterprises were cutting cloud bills through 2023 — and then bent back up as AI workloads scaled: AWS bottomed at 12% YoY in 2023Q2 and is back to 28%; Google Cloud 22% → 63%; Azure (Microsoft's own metric) 26% → 40%. A growth re-acceleration of this size, simultaneous across all three providers, two years into a maturing market, is the clearest fingerprint of the AI demand shock.

Sensitivity: level counterfactual vs the boom-era path

A different counterfactual gives a humbler answer. Fit the 2021–22 boom-era trend (2021Q1–2022Q4, log-linear) and project it forward: through 2026Q1, Google Cloud sits -7% and AWS -27% relative to that path — i.e. even the AI surge has not restored boom-era compounding; it reversed the 2023 slide. The conclusion depends on the counterfactual you choose, which is exactly why both are shown.

Why this is not a clean causal estimate. One event, no control group: the 2023 enterprise cost-optimization wave and the rate environment are confounders, the level counterfactual assumes the 2021–22 growth path would have persisted, Google Cloud includes Workspace, and Azure is excluded from the level ITS because Microsoft's segment was re-defined mid-post-period (its own disclosed growth metric is used instead). This is an interrupted time-series — a descriptive deviation-from-trend, the honest observational cousin of an A/B test.

The capex supercycle

Firm-wide capex from SEC XBRL (not cloud-segment-only; excludes finance-lease additions — see the data README).

Designed experiment: pricing-page A/B test SIMULATED DATA

Scenario. A cloud provider tests whether adding a live per-GPU price-comparison widget to the pricing page lifts trial sign-ups vs the static price list. Real experiment data is proprietary, so outcomes here are simulated (numpy, fixed seed) — the point is the design discipline, not the numbers.

DesignValue
Hypothesisprice-comparison widget raises sign-up conversion (baseline 4.0%)
Minimum detectable effect+0.5pp (α=0.05 two-sided, power 0.80)
Required sample (power analysis)25,551 per arm → 37 days at ~1,400 visitors/day
Sample-ratio mismatch checkχ²=0.06 → OK (no SRM)
ResultValue
Control conversion3.91% (1,012/25,871)
Treatment conversion4.47% (1,159/25,929)
Lift+0.56pp (95% CI +0.21 to +0.90pp)
Two-proportion z-testz=3.17, p=0.0015
DecisionShip it — the lift is statistically significant and the CI lower bound exceeds zero.

Caveats handled in the design: novelty effects argue for running the full pre-committed duration even after early significance; the SRM check guards against broken randomization; conversion is a binomial metric so no variance-reduction (CUPED) was needed. Code: ab_experiment.py.