Five dimensions in, two decisions out
The engine deals in thirteen canonical segments. Feed it a customer's signals and it returns a tier, a segment and the next best action, live in the browser.
Built from events you already have
No new tracking required. The model reads the purchase and account events you already capture, and turns them into the five dimensions.
A subscription routes auto-renewing customers onto their own track, and engagement events, logins, app opens and sessions, feed the wider catalogue models. Nothing here needs a new data source.
Value tier
How much a customer is worth right now: total spend, discounted by recency, so a big spender who has gone quiet slips down a tier. Platinum, Gold, Silver, Bronze, Dormant. It tells you how hard to lean in.
Behavioural segment
What kind of customer they are and what to do next: Champion, Single-Product Loyalist, At-Risk, Rising, and more. A deterministic decision tree, first match wins. It tells you what to say.
The result is a map
Every customer lands on two axes: a value tier and a behavioural segment. Here is the example roster, plotted where they fall. Only about 20 of the 45 cells ever occur; the rest cannot happen.
The matrix needs a normal purchase pattern to place someone: a real recency, frequency and spend. These sit outside it, so each gets its own treatment track instead.
Registered, never purchased. Trigger the first purchase with a Day-0 activation.
Sale-led, spikes on seasonal events, quiet between. Activate on seasonal sales only. Skip always-on spend prompts.
Auto-renewing plan, off the standard grid. Protect the subscription. Cross-sell discretionary extras carefully.
Column = value tier (tunes intensity) · row = behavioural segment (the journey). Only a subset of cells can ever occur; the rest are impossible. Tap a customer to walk their journey.
