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.