HomeSeller Claims

The seller says: “that churn spike was seasonal”

Seasonality is one of the few diligence claims that is fully falsifiable from data you already have. A seasonal pattern repeats in the same month across years. If the spike appears once, it is an event, and the only question is which event.

TL;DR: Seasonality is a testable claim: it requires the same spike in the same month across multiple years. Here is how to test it, and what the four alternative explanations look like in the data.

What the claim usually means

When a chart shows an ugly month, seasonality is the most available explanation and it is often offered in complete good faith — small businesses do have quiet quarters, and a founder who has lived through two Januaries can reasonably believe January is just like that. The problem is that a single observation cannot distinguish a season from a price increase, a churned cohort, an outage or a competitor launch, and the four have very different implications for a buyer.

What it can hide

Four mechanisms account for most of the gap between this claim and what the raw rows show. They are not mutually exclusive and they compound.

1. A price increase two renewal cycles earlier

Price rises show up as elevated churn at the next renewal, not immediately. Line the churn series up against the pricing-change history with a two-to-three cycle lag before accepting any other explanation.

2. A single cohort reaching the end of its natural life

A promotion or launch cohort that all signed up together will all reach their decision point together. That looks exactly like seasonality once, and never again.

3. An outage, a migration or a support collapse

Product and service incidents produce churn with a lag of one to two billing cycles. Ask for the incident history and the support-ticket volume by month, and overlay them.

4. A competitor launch or a platform change

If a marketplace changed its ranking, or an integration partner shipped the same feature natively, churn concentrates among the accounts that arrived through that channel. Segment the spike by acquisition source and it usually resolves immediately.

How to verify it from the raw subscription export

Every step below runs on a subscription-level export in a spreadsheet. None of it needs access to the seller's live billing account, which matters, because as a buyer you will not get one.

  1. Build monthly churn as a percentage of opening MRR for at least twenty-four months, ideally thirty-six. Seasonality needs more than one cycle to be visible at all.
  2. Compare the same calendar month across years. A genuine seasonal effect gives you an elevated January in every January, not one bad January.
  3. Compute each month's deviation from its own trailing twelve-month average. One month more than two standard deviations out, with no repeat, is an event.
  4. Segment the spike itself: by plan, by tenure, by acquisition source, by geography if available. Events concentrate in a segment; seasons do not.
  5. Overlay the pricing-change history with a two-to-three renewal-cycle lag.
  6. Overlay incidents, migrations and any support disruption.
  7. Check what happened in the three months after the spike. A season reverts to trend; an event often leaves the base permanently lower.

Reading the result

These are the thresholds we use in our own reports. They are working thresholds rather than industry standards, and the right line for a given deal depends on contract length, tenure and how transferable the customer relationships are.

What you findVerdictWhat to do about it
The same month is elevated in two or more yearsGreenGenuine seasonality. Model it and move on; it is a working-capital consideration, not a valuation one.
One elevated month, 24+ months of data, no repeatInvestigateThis is an event. Identify it before you accept any explanation, because the explanation determines whether it recurs.
The spike concentrates in one plan, cohort or channelPrice it inA segment-specific event. Establish whether the cause is still present, because if it is, the rest of that segment is next.
The base did not recover to trend within three monthsPrice it inPermanent impairment, not a season. Rebase your model on the post-spike level.
Fewer than 18 months of history availableInvestigateSeasonality is untestable with this much data. Treat the claim as unevidenced, not as false.

What to ask for in the data room

Ask for these before the LOI. After the LOI you are renegotiating rather than negotiating, and a seller who will not produce subscription-level rows has told you something useful either way.

A worked example

Illustrative. Churn runs at 3% and spikes to 11% in a single February. Seasonal, says the memo. Three years of history shows February at 3.1% and 2.8% in the other two years, so the season hypothesis dies immediately. Segmenting the spike shows 80% of it in accounts acquired through one integration marketplace, and the marketplace changed its default listing that January. The cause is external, ongoing, and the remaining accounts from that channel are the next cohort at risk. That is a completely different finding from seasonality, and it took two groupings to reach.

Why it matters to the price

Whether a spike is a season or an event determines whether you model reversion or impairment, which is usually the difference between two valuations. It also determines whether the cause is still operating, which is the part that matters most: an event with a live cause is a forecast, not a historical note. Ask for thirty-six months up front; the most common reason this analysis fails is simply not having enough history to run it.

The relevant tool on this site is the churn divergence detector, which runs the arithmetic above on a file you paste in. The full method is documented in the 5-risk buyer-side method and the due-diligence checklist.

Other claims worth testing

All twelve seller claims →

Verify it against the raw rows

Every check on this page can be run by hand in a spreadsheet, and if you have the time you should. If you would rather not: send us the target's subscription export and we run the full human-reviewed analysis — logo churn, revenue churn, customer concentration, annual-plan decay, zombie MRR and an A–F revenue-quality grade. The free Starter tier covers one CSV per month, which is enough to check a single deal.

See a sample report →  ·  Get the free 23-point checklist →

Frequently asked questions

How can I tell if a SaaS churn spike is seasonal or structural?

Compare the same calendar month across multiple years. Seasonality repeats; a one-off spike does not. With fewer than eighteen months of history the question cannot be answered either way, which is a reason to ask for more data rather than to accept the explanation.

What usually causes a one-off churn spike in a small SaaS?

In our experience the four most common causes are a price increase landing two or three renewal cycles earlier, a single sign-up cohort reaching the end of its natural life together, a product or support incident, and an external change such as a marketplace ranking or an integration partner shipping the same feature natively. Segmenting the spike by plan, tenure and acquisition source usually distinguishes them.

Why does the lag between a price increase and churn matter?

Because subscribers mostly cannot act on a price change until their next renewal. Churn therefore appears one to three cycles later, which is long enough that the connection is easy to miss and the spike gets attributed to whatever was happening in the month it appeared.

9%
Median B2B SaaS revenue churn
88%
Median gross revenue retention
23
Audit Checklist Points

The seller's churn number is almost always wrong. Send the CSV and find out before you wire.

Get the Free Checklist →

🛡️ Free Starter tier: 1 CSV analysis per month. No credit card. Verify a seller's churn claims before you commit.