Tag every seasonal pause the moment it happens and keep it out of your churn ledger, so net revenue retention reflects who actually left instead of who will be back in the spring.
Maintained in the open at github.com/Golden-Section-Tx/playbook · CC BY-SA 4.0
A tour operator books nothing in January. A holiday lighting company books nothing in July. If your product serves a seasonal industry, some share of your customers will cancel or downgrade every year on a schedule, then come back the next season and buy again. Log that the same way you log a customer who quit for good, and your churn number goes up every winter whether or not you did anything wrong.
That is not a rounding error. A board prices your growth off net revenue retention. A bank prices a covenant off it. An acquirer prices the whole company off the worst-looking cohort in the book. A company that watched its own churn events climb every winter for years, then recomputed retention with seasonal pauses pulled out, found a materially stronger number than the one it had been reporting the whole time. Nobody had lied. Nobody had checked.
The goal: A churn ledger that tags a seasonal pause the moment it happens, separate from real churn, so your reported retention number is the true one.
Two things get confused when they should not be. A seasonal pause is a customer following a calendar you already know, because you sold to that vertical on purpose. Real churn is a customer who is gone and staying gone. The two produce the same event in most billing systems, a canceled subscription, and from there they get counted the same way unless someone builds the second bucket.
The fix is not to hide the pause. It is to name it, watch it, and hold it to a standard: a seasonal account has to actually come back, on schedule, or it graduates into real churn and counts against you like it should.
This just sounds like a way to make the churn number look better. It would be, if the seasonal bucket were a place accounts go to disappear. It is not. The grace period and the graduation rule mean a seasonal account that does not come back becomes real churn on a fixed date, counted in full. The two-number report is what keeps this honest: if your gross and net numbers never move relative to each other, the tag is being applied too generously.
My board wants one number, not two. Give them the net number as the headline and the gross number as a footnote, with the seasonal share named. A board member who later finds out a third of your "growth" was seasonal accounts coming back on schedule will ask why nobody said so.
A tour operator books nothing in January. A holiday lighting company books nothing in July. If your product serves a seasonal industry, some share of your customers will cancel or downgrade every year on a schedule, then come back the next season and buy again.
Two things get confused when they should not be. A seasonal pause is a customer following a calendar you already know, because you sold to that vertical on purpose. Real churn is a customer who is gone and staying gone.
That is not a rounding error. A board prices your growth off net revenue retention. A bank prices a covenant off it.