Signal · Service-mix
Attach-rate gaps
Clients who buy your headline service but not a companion service that others attach to — targeted upsell candidates.
Service-mix
What the signal measures
Clients who buy your headline service but not a companion service that others attach to — targeted upsell candidates.
Why it matters
If most of your top clients buy Service A and Service B together, and a subset only buy Service A, those Service-A-only clients are your natural upsell shortlist. The signal computes the attach rate (Service B given Service A) across the book and flags the clients on the wrong side of it. It is a concrete answer to "who should I approach next?"
How to act on it
The drafted action is a companion-service pitch tuned to the client's existing pattern — "you've been running the strategy work with us; here is the delivery layer that most of our strategy clients also engage on". Personalised, not a mass email.
Worked example — fixture consultancy
On the fixture, most clients buy day-rate consulting (the mainstream service) — attach-rate gaps surface where a secondary line (e.g. an item-based service) has clients not attaching. On a real services book with multiple lines this becomes a shortlist of five to ten specific upsell moves.
Deterministic maths, AI writes the words.
Every number in this signal is computed by unit-tested TypeScript in
src/signals/attachRateGaps.ts.
The AI drafts only the wording of the suggested action, never a figure.