Industry: Retail Product: ModelRisk Application: Customer Behavior Analysis
A retailer's CRM dashboard reports an average customer spend of $139 per quarter and treats it as a planning constant: multiply by the active base, get the revenue line. But when a multinational chain rebuilt its shopper analytics in ModelRisk — modeling purchase frequency as a Poisson process and basket value as a Gamma distribution at the level of the individual shopper — the average turned out to describe almost no one. The median shopper spends $98, the top-decile shopper $339 (P90), the top-percentile shopper $653 (P99), and 22% of shoppers buy nothing at all in a given quarter. The top decile alone accounts for 34% of total spend. Planning to the $139 average over-serves the silent majority and under-invests in the few shoppers who actually carry the revenue.
This is individual-level analytics — the unit is one shopper, the question is RFM and next-purchase — distinct from any category-level demand or pricing question. It feeds two decisions: how much a given shopper is worth, and whether they are still a customer at all.
A single average spend collapses two very different sources of variation. Frequency is a count — a shopper makes 0, 1, 2, 3... visits in a quarter, drawn Poisson around a per-shopper rate that is itself spread across the base (Gamma heterogeneity, mean 2.4 visits), so light and heavy shoppers coexist. Basket value is a positive, right-skewed amount (Gamma, mean $58) that varies visit to visit. Multiply a skewed frequency by a skewed basket and the result is sharply skewed with a fat right tail and a 22% spike at zero. A mean cannot represent a distribution with a point mass at zero and a long tail simultaneously. To stop the customer-base total from averaging away to a deterministic point, a single shared store/season factor multiplies every shopper's rate in a given quarter — a slow quarter is slow for everyone at once, so the base total keeps a real spread.
A customer who has not visited in a while may be between trips — or may have quietly churned. A buy-till-you-die model resolves the ambiguity: each quarter a shopper "drops out" with probability 10%, and the longer the silence, the more it tilts toward churn. The probability a shopper is still active given their recency depends sharply on how often they used to buy.
The counter-intuitive result: a heavy shopper going quiet is a far stronger churn signal than a light shopper going quiet. A weekly regular who skips a quarter has almost certainly left; an occasional shopper skipping a quarter is business as usual. Recency means nothing without frequency context — exactly the join a single-number model cannot make.
Retention budget targets the top shoppers, so the tornado ranks drivers by their effect on P90 spend (baseline $339) rather than the mean — the high-value tail is where the money is.
The lesson for CRM: a campaign that adds one extra visit per quarter moves the high-value tail more than one that lifts average basket size, and far more than chasing basket-mix variability. Frequency is the lever.
Combining the two halves — expected value = P(active | recency) x expected spend when engaged — gives the number a retention team can act on: what is a shopper worth right now, given how long they have been silent?
The value does not decay gently — it falls off a cliff between quarters 1 and 2, from $80 to $6. That is the win-back window: a reactivation offer at one quarter of silence targets an $80 expected asset; the same offer at two quarters chases a $6 ghost. The model pins the deadline precisely.
The average shopper is a planning fiction. The decisions that matter — who to win back, when, and with what — live in the shape of the distribution and the recency cliff, and Monte Carlo is what makes that shape visible.