You raised prices six months ago. Looking at aggregate churn, it's roughly where it was before. NRR improved a point or two. The board asks whether the pricing change drove the improvement. You say you think so. Someone asks whether you can prove it. The room gets quiet.
This is one of the most common measurement problems in SaaS — a meaningful decision was made, an outcome may have followed, and the causal link is impossible to establish from aggregate metrics alone. The question "did the pricing change work?" seems simple. Answering it rigorously requires a cohort design, not a before-and-after comparison of headline numbers.
What "worked" actually means for a pricing change
Before building the measurement framework, it's worth being precise about what success looks like. A pricing change can succeed on multiple dimensions simultaneously while failing on others, and conflating them produces a misleading verdict.
A price increase can succeed on revenue per customer (higher ACV for new acquisitions) while failing on volume (fewer new logos because price is above willingness-to-pay for a segment of the market). It can succeed on retention quality (higher price attracts better-fit customers with lower natural churn) while producing a short-term churn spike (existing customers who were grandfathered protesting when their rate increases). It can produce an NRR improvement that is entirely attributable to expansion on existing accounts while having zero effect on new-price cohort retention.
Each of these outcomes is a different measurement question. The single "did it work?" framing asks all of them at once and answers none of them specifically. The cohort approach breaks the question apart.
Defining the pricing event cohort
The first step is defining the cohort with precision. A pricing change has an enforcement date — the date on which new customers began paying the new price, or the date on which existing customers received migration notices. Your pricing event cohort is customers who first encountered the new pricing structure in a defined window after that date, typically the 60–90 days following enforcement.
Why 60–90 days rather than the full period since the change? Because the further you get from the enforcement date, the more likely you are to pick up the effect of other initiatives launched in the same period. A tight post-change cohort window isolates customers whose onboarding and early-tenure experience was specifically shaped by the new pricing.
The control cohort is customers acquired in an equivalent window before the change — ideally the same 60–90 day period from the prior year (to control for seasonality and growth stage effects) or the immediately preceding period (to control for market conditions and product state). The comparison is then retention curve against retention curve at matched cohort ages: new-price cohort at M1 vs. control cohort at M1, M3 vs. M3, and so on through M12.
Consider a practical example: a horizontal SaaS company running a $299/mo to $399/mo price increase in January. The pricing event cohort is customers acquired in February–March at the new rate. The control cohort is customers acquired in November–December at the old rate. Both cohorts are in their first 90 days as you run the M3 comparison. If the retention curves track closely, the price increase had minimal effect on early churn. If the new-price cohort shows a steeper M1–M3 drop, the higher price is creating friction that the old pricing didn't — and you can quantify the incremental churn volume attributable to the price change before extrapolating to the full year.
Why aggregate "before and after" comparisons fail
The naive measurement approach compares aggregate MRR churn in the six months before the price change to aggregate churn in the six months after. This approach fails for three specific structural reasons.
Cohort age mix changes. Your customer base's retention behavior at any calendar month is a function of how old your cohorts are. If you're growing, your base in the six months post-change includes more recent, younger cohorts than your base pre-change. Younger cohorts typically have different retention profiles than mature cohorts at equivalent calendar moments — young cohorts haven't yet reached their M6–M9 churn decision windows. The before-and-after comparison is comparing different cohort compositions, not the same customers under different conditions.
Concurrent initiatives contaminate the signal. Most SaaS companies run multiple growth initiatives simultaneously. If you raised prices and also onboarded two new CSMs, launched a new integration, and improved in-app onboarding in the same quarter — any change in aggregate retention is attributable to the combination of all of those changes, not specifically to the pricing decision. This is the fundamental attribution problem that makes aggregate post-mortems unreliable for any specific initiative.
Lag effects create misattribution. Pricing change effects on retention often don't appear immediately. Monthly subscribers who are unhappy with a price increase may continue through one or two more billing cycles before churning — particularly if the price change landed at a non-renewal point in their cycle. Annual subscribers on a grandfathered rate won't feel the impact until renewal, which could be 12 months out. An aggregate before-and-after with a six-month window may be measuring a period that ends before the full lag effect is visible.
Accounting for grandfathering and segmentation
Most pricing changes involve segmentation between new customers (who pay the new price immediately) and existing customers (who are grandfathered for some period or indefinitely). This creates three natural experimental groups for cohort analysis.
- Customers acquired post-change, paying new price from day one
- Existing customers migrated to new pricing at the end of their grandfather window
- Existing customers grandfathered indefinitely (natural control group)
Tracking retention curves for groups 1 and 2 independently gives you two distinct measurement points. Group 1 tells you about price elasticity in new acquisition — whether higher price is attracting better-fit customers (lower early churn) or creating barrier friction (higher early churn). Group 2 tells you about the migration churn effect — whether grandfathered customers who get moved to the new rate show incremental churn at the migration event that offsets the ACV improvement.
Both effects are real and both can partially offset the revenue benefit of a higher price. Migration churn in particular is easy to underestimate in pre-change modeling because it affects your installed base rather than your new-acquisition flow. A migration churn event of 8% on a cohort of 200 accounts is 16 accounts at higher ACV — potentially more churn MRR than you gain from the price increase on new customers in the same quarter.
Isolating price elasticity from natural churn trend
One of the more nuanced measurement challenges is separating the price elasticity effect from the underlying churn trend that was already in motion before the pricing change. If churn was naturally declining as your product improved, that trend continues post-change — and a naive cohort comparison may attribute retention improvement to the pricing structure when it was happening regardless.
The cleanest control for this is using the indefinitely-grandfathered cohort (group 3 above) as a benchmark. If their retention improves in the same period as your new-price cohort, the improvement is likely product-driven, not price-driven. If new-price cohort retention diverges positively from the grandfathered cohort, you have evidence that the pricing structure itself is contributing to better fit and lower churn — not just a product improvement that lifts all cohorts simultaneously.
We're not saying cohort analysis gives you a true counterfactual. You can't observe the parallel universe where you didn't change prices. But cohort comparison gets you as close as possible with the data you have — a direct comparison between customers who experienced the change and customers who didn't, at matched tenure stages, controlling for at least the timing dimension of confounding. That is substantially more defensible than a before-and-after aggregate.
Price elasticity signals beyond churn
Churn is the most visible elasticity signal but not the only one. A complete pricing impact analysis also looks at conversion rate by pricing tier in the post-change period (did the new price reduce trial-to-paid conversion?), contraction MRR in the post-change base (are existing customers downgrading to lower tiers rather than churning outright?), and time-to-close on new deals (are sales cycles lengthening as prospects push back on price?).
Any of these signals showing post-change deterioration alongside stable aggregate churn indicates that elasticity is being absorbed in the funnel rather than showing up in retention — which means aggregate retention metrics will look clean while the business damage is accumulating in a different place. Cohort analysis of the new-price segment specifically (rather than the full base) is the lens that makes this visible.
The 90-day read and the 180-day verdict
For monthly subscription pricing, 90 days post-enforcement is the earliest point at which cohort data is actionable — enough time for at least two billing cycle churn decisions to show up. The 90-day read gives you early signal on whether the new-price cohort is tracking materially differently from the control cohort.
The more reliable verdict comes at 180 days: enough time for initial churn reactions to complete, for lag effects to appear, and for the expansion or contraction behavior of the new-price cohort to start becoming visible. At 180 days, if the new-price cohort tracks within ±4–5 percentage points of the control cohort on MRR retention, your pricing change had minimal net retention impact. Whatever NRR improvement appeared is primarily ACV- or volume-driven, not a product-fit improvement from the pricing structure itself. That's useful to know for the next pricing decision.
If the new-price cohort is tracking 8–12 percentage points worse at 180 days, you have a quantified elasticity signal: the higher price is increasing early churn at a rate that may or may not be offset by the ACV improvement, depending on how much higher the new price is. Running the break-even math at that point — (new ACV − old ACV) × retained accounts vs. (old ACV × incremental churn accounts) — gives you a number to take to the next pricing review that is grounded in observed cohort behavior rather than projected assumptions.