RFM analysis

What it is for

In a large customer base people buy in different ways. Some buy often and were here recently, some came once and have not been back for a long time. RFM analysis splits the base into nine segments. Each segment gets its own trigger, and that trigger works with this group on its own.

That covers different jobs:

  • Number of purchases. Rare buyers get a reason to come again. Frequent buyers get a next step while the rhythm still holds.
  • Average ticket. The same customers can also be divided by spend: average ticket, turnover, or the balance on the card. The offer is then based on that amount.
  • Return rate. People who have been away for a long time get their own message. A longer pause gets a different text.
  • Retention. Frequent recent buyers stay apart from the offer aimed at people who disappeared.
  • The second purchase. Newcomers are brought back for a repeat while the first visit is still fresh.
  • Who to contact. A short pause for a frequent buyer and a long pause for a rare buyer are different groups, and they need different calls.

A trigger’s action for a segment is to send a message, change the template, add balance, or change a field. Links to those sections are at the end of the article. Below is how to build the nine segments.

How recency and frequency are calculated

Recency and frequency are written onto the card as two variables. Technical support can turn the calculation on. Once it is on, the card stores:

  • order_days — days since the last purchase;
  • order_count — purchases inside the calculation window.

Spend is not part of those two variables. It comes from a separate field: average ticket, turnover, or the balance the CRM already writes to the card.

Why the minimum is nine segments

The basic grid is three recency bands by three frequency bands. That is 9 segments. A customer has one recency value and one frequency value, so they land in a single cell.

Dividing by spend as well — average ticket or turnover — multiplies the grid by three. That is 27 segments. The grid below uses recency and frequency only.

How to set the bands

You set the band edges. The worked example below covers one year. Recency is divided at 121 and 242 days, frequency at 4 and 24 purchases. Your own numbers go in the same way: three bands on each axis, and neighboring bands meet exactly.

Recency comes from order_days — days since the last purchase:

  • Recent — order_days ≤ 121;
  • Mid recency — order_days ≥ 122 and order_days ≤ 242;
  • Long ago — order_days ≥ 243 and order_days ≤ 365.

Frequency comes from order_count — purchases inside the calculation window:

  • Often — order_count ≥ 25;
  • Sometimes — order_count ≥ 5 and order_count ≤ 24;
  • Rarely — order_count ≤ 4.

The bands do not overlap. Day 121 is still recent, day 122 is mid recency. 4 purchases is rarely, 5 is sometimes, 24 is still sometimes, 25 is often. In this example the grid covers the last year: the top of the “long ago” band is 365 days.

The nine-cell grid

The vertical axis is the purchase count: the most frequent buyers are at the top. The horizontal axis is recency: recent purchases are on the left, and the arrow points right, toward older ones. Both axes start from the same point. The name in a cell is the segment. The cell is built from both bands together.

Number of purchases
25+25
245
40
RFM – Champions, up to 121 days, 25 or more purchases
RFM – Loyal, 122–242 days, 25 or more purchases
RFM – Need
attention, 243–365 days, 25 or more purchases
RFM – Growing, up to 121 days, 5–24 purchases
RFM – On the brink, 122–242 days, 5–24 purchases
RFM – At risk, 243–365 days, 5–24 purchases
RFM – Newcomers, up to 121 days, up to 4 purchases
RFM – Hesitant, 122–242 days, up to 4 purchases
RFM – Dormant, 243–365 days, up to 4 purchases
Purchase recency

How to write a cell as segment criteria

Each cell is its own segment. A card enters the segment when it matches every criterion on it. A range is two criteria: a lower bound and an upper bound. Recent and often need only one bound: days since a purchase start at zero, and the purchase count has no upper limit.

Segment Who is in it Criteria
Champions Buy often and visited recently order_days ≤ 121
order_count ≥ 25
Loyal Used to buy often, last purchase is no longer fresh order_days ≥ 122
order_days ≤ 242
order_count ≥ 25
Need attention Used to buy often, away for a long time order_days ≥ 243
order_days ≤ 365
order_count ≥ 25
Growing Visited recently, already several purchases order_days ≤ 121
order_count ≥ 5
order_count ≤ 24
On the brink Mid recency and mid frequency order_days ≥ 122
order_days ≤ 242
order_count ≥ 5
order_count ≤ 24
At risk Away for a long time, a modest number of purchases order_days ≥ 243
order_days ≤ 365
order_count ≥ 5
order_count ≤ 24
Newcomers Visited recently, few purchases order_days ≤ 121
order_count ≤ 4
Hesitant Mid recency and few purchases order_days ≥ 122
order_days ≤ 242
order_count ≤ 4
Dormant Away for a long time and rarely buying order_days ≥ 243
order_days ≤ 365
order_count ≤ 4

Two cards, as a check. order_days = 40 and order_count = 30 is Champions: 40 stays within 121 days, and 30 purchases is already in the “often” band. order_days = 200 and order_count = 10 is On the brink: 200 sits between 122 and 242, and 10 purchases sit between 5 and 24.

One trigger per segment

A segment collects the group. The action for that group is a trigger, and one trigger is tied to one segment. Nine segments mean nine triggers. Through the trigger for its own group you can:

Segment criteria are set in Working with segments. How to turn a trigger on and pick the action is in Working with triggers. Ready-made segment and trigger setups are in Automation examples.

In short

The base is divided into nine groups. Each group has its own trigger and its own action: a message to come back, a new template, or a balance bonus. Purchase count, average ticket, and return rate move by group, and each group gets its own.

Get started free

Try Passquare — it’s free & easy.

Create an account, set up your signup form, design your cards, issue a few wallet passes, and send your first push notifications.

Sign up for free
Wallet card signup form