Signal · Portfolio

Silent churn

A regular client who has gone quiet — gap since their last invoice exceeds max(90 days, 2× their usual gap).

Portfolio

What the signal measures

A regular client who has gone quiet — gap since their last invoice exceeds max(90 days, 2× their usual gap).

Why it matters

A client who is not overdue is not on any accounts-receivable ageing report — but if they used to bill you monthly and have gone quiet for four months, they have effectively left. The traditional "churn" concept from SaaS does not translate cleanly to services (there is no plan to cancel), so we detect it from the invoicing cadence itself. Silent churn is often the single largest source of unnoticed revenue leakage in a services book.

How to act on it

The drafted action is a warm re-approach — light, curious, no pitch. "Wanted to check in — anything I can help with?" Half the time the answer is a genuine "we're back on it next month" and you catch it before it becomes a permanent loss; the other half you learn the reason and either fix the underlying issue or move the client from a silent loss to a documented one. Either result is more useful than not knowing.

Worked example — fixture consultancy

In the demo fixture, Cobalt Retail billed a steady £3k a month from January 2025 to November 2025 and then went completely quiet — no invoices, no communication, no formal cancellation. Compass flags them because their gap-since-last-invoice is 8+ months, well past both the 90-day floor and 2× their historic ~30-day median gap. The drafted action is a warm check-in email addressed to their known contact.

Deterministic maths, AI writes the words.

Every number in this signal is computed by unit-tested TypeScript in src/signals/silentChurn.ts. The AI drafts only the wording of the suggested action, never a figure.