A 400-person SaaS company came to us with what they described as a dashboard bug. It was not a dashboard bug. It was four years of undocumented decisions colliding in a single number.
The presenting symptom
The board deck said quarterly churn was 6.1%. The customer success team's weekly review said 4.2%. The self-serve growth dashboard said 8.9%. All three were computed from the same warehouse, and all three were correct according to their own definitions.
Untangling it
OneClickBrain's initial scan surfaced eleven distinct churn-related definitions across their stack. Three were in active use. The differences came down to four decisions nobody had reconciled:
| Decision | Finance | CS | Growth |
|---|---|---|---|
| Trial accounts | Excluded | Excluded | Included |
| Downgrade counts as churn | Yes (revenue) | No (logo) | Yes |
| Grace period | 30 days | 60 days | 0 days |
| Denominator | Start-of-period | Average | Start-of-period |
Every one of these choices is defensible. Finance measures revenue churn with a conservative grace period because that is what the board asks about. CS measures logo churn because their job is relationships, not dollars. Growth includes trials because trial-to-paid is their funnel.
Where the AI agents made it worse
They had three agents in production: a support assistant, an exec briefing bot, and an analytics helper. Each had been pointed at a different subset of sources during setup. When someone asked any of them about churn, they got a confident answer sourced from whichever definition happened to be indexed.
The compounding effect: a wrong number in a Slack answer gets pasted into a doc, which gets summarised into a deck, which gets cited in a board conversation. By the time anyone notices, the provenance is gone.
What resolution actually looked like
The fix was not choosing one definition. It was naming all three properly and making the distinction explicit:
- revenue_churn — finance's definition, owner: VP Finance, used in board reporting
- logo_churn — CS's definition, owner: VP CS, used in account health
- funnel_churn — growth's definition, owner: Head of Growth, includes trials, used in acquisition analysis
Each got an owner, a written scope of use, and a canonical formula. The word "churn" on its own was deprecated — any query using it now returns a disambiguation rather than a number.
What changed downstream
Three months on:
- The board deck and the CS review now carry explicit metric labels rather than a bare "churn"
- Two additional conflicts surfaced during the same scan — "active user" and "enterprise tier" — and were resolved the same way
- New metrics require an owner before they can be marked verified, which has slowed metric proliferation noticeably
The dashboard was never broken. It was reporting one honest answer among several, without any way to say which question it was answering.
