RFM Customer Segmentation (Recency, Frequency, Monetary)
Who your best customers are, who is slipping away, and who to win back — from your orders.
Try before you buy.
- Free preview: the size of every segment and the first rows of each table (up to 10), with the customer lists locked.
- Locked until you unlock it: download and copy.
- Unlock: Pro pass, ₹179 for 30 days or ₹79 for 1 week, a one-time payment that never renews. Unlock: Pro pass, $5.99 for 30 days or $2.99 for 1 week, a one-time payment that never renews.
Ways to unlock shows how to get the full result.
Printing this result is locked in the free preview.
Your orders
An orders export from Shopify, WooCommerce, a POS, Tally or any sheet: the customer (an ID, e-mail, phone or name), the order date and the amount, and if you have them the order ID, the status and the refunded amount. Several files are added together.
Scores and segments
Segment rules
The first rule whose R, F and M ranges a customer’s scores fall in names their segment. These eight are a common starting point; rename them, change their ranges or add your own. They are kept in this browser.
Your customer segments
Segments
What each score means
Customers, the biggest spenders first
Where customers moved
Repeat revenue by the month of the first order
Rows left out or read with a note
Customer lists for your campaigns
One CSV per segment for your e-mail, SMS or ads tool; nothing is sent from here. With hashing on, e-mails and phone numbers are written as SHA-256 hashes, and a customer without a customer ID is not named by them; names stay as they are.
Locked in the free preview. Opens the ways to unlock this result.
Locked in the free preview. Batch runs unlock with a pass.
Locked in the free preview. Query results unlock with a pass.
About the RFM Customer Segmentation (Recency, Frequency, Monetary)
Open an orders export — Shopify, WooCommerce, a POS, Tally or any sheet with a customer, a date and an amount — and every customer is scored on Recency (days since their last order), Frequency (orders) and Monetary value (total spend), each from 1 to 5, and put in a segment: Champions, Loyal, Potential loyalists, New, At risk, Can’t lose, Hibernating or Lost — names and rules you can change.
You see the customers and revenue in each segment, the R × F grid, where customers moved between two dates, and a cohort view of repeat revenue by the month of the first order. Refunded and zero-value orders are left out or netted, guest checkouts can join a customer by e-mail or phone, and customers with one order are scored F1 instead of being ranked against each other.
Without a pass the segments are a free preview: every segment’s size and the first rows of each table show; the customer list of each segment (with e-mails hashed if you choose), the ZIP of every segment and the workbook unlock with a Pro pass. Nothing is sent from here: the lists are for your own e-mail, SMS or ads tool.
How to use it
- Open your orders export and check under “Columns used” that the customer, the order date and the amount were found (and the order ID, status and refunded amount if your file has them).
- Choose how refunds count, whether guest orders join a customer by e-mail or phone, and the day recency counts to.
- Keep the quintile scores or set your own cut-offs, and edit the segment rules if your business needs other names or ranges.
- Read the segments, the grid, the movement between two dates and the cohorts. Each segment’s customer list and the workbook unlock with a Pro pass; without one the segments stay a free preview.
Examples
Last orders 1 to 10 days ago; spends 10 to 100; five with one order, five with 2, 2, 3, 4 and 8 orders
Recency cut-offs at the 20th to 80th percentiles: 2.8, 4.6, 6.4 and 8.2 days, so 1–2 days is R5 and 9–10 days R1. Spend 90 and 100 is M5. One order is F1; 2, 3, 4 and 8 orders are F2 to F5.
Last order 10 days ago (R1), 8 orders (F5), the highest spend (M5)
“Can’t lose”: bought often and spent the most, but not lately — a personal win-back.
Two orders under customer C1 (ann@example.com) and one guest order with ANN@EXAMPLE.COM
With e-mail joining on, C1 has 3 orders; the guest order is counted once among the joined orders.
Common uses
- An online shop building its win-back list (At risk, Can’t lose) and its VIP list (Champions).
- A café, salon or gym with a POS export, sending offers only to the customers likely to respond.
- A wholesaler seeing which accounts buy less often than they used to.
- Checking whether last quarter’s campaign moved customers from Hibernating back to Loyal.
How the scores are worked out
- Recency = days from the last order to the date recency counts to (the day after the last order in the file, today, or a date you choose). Frequency = orders. Monetary = total spend.
- Quintiles: the 20th, 40th, 60th and 80th percentiles of your customers cut R and M into five groups; a customer exactly on a cut-off gets the better score.
- Frequency is different, because most customers of most shops have one order: one order is always F1 (ranking one-order customers against each other would invent differences), and repeat customers are F2 to F5 by the quartiles of their own order counts.
- Your own cut-offs: R5 within so many days, F2 from so many orders, M2 from so much spend, and so on.
- The segment is the first rule whose R, F and M ranges the scores fall in. The eight starting rules (Champions: R 4–5 and F 4–5; Can’t lose: R 1–2, F 4–5, M 4–5; At risk: R 1–2, F 3–5; Loyal: R 3–5, F 3–5; New: R 4–5, F 1; Potential loyalists: R 3–5, F 1–2; Hibernating: R 2, F 1–2; Lost: R 1, F 1–2) give every score a segment.
Orders, refunds and guests
- Lines with the same order ID are one order: Shopify writes the order’s total on its first line only, and the other lines add nothing. If your export repeats the order total on every line, choose “The order’s total (counted once)”.
- Leave them out: refunded, cancelled or voided orders (by their status) and orders of zero or less are not counted. Net the refunds: a refunded amount is taken off its order, and an order left at zero or less lowers the spend without counting as an order.
- A customer is their customer ID where the row has one, else their e-mail, phone or name. Joining by e-mail or phone puts a guest’s orders with the customer who has the same e-mail or phone; phone numbers are compared in one international form.
- Hashed lists: the e-mail in lower case with its spaces removed, and the phone in international form with its plus sign, each as a SHA-256 hash — the form Google Ads Customer Match asks for in its formatting guidelines.
Movement and cohorts
- Movement: each customer’s segment on the earlier date (scored on their orders before it, with that date’s own quintiles) against their segment now. New customers since then are in “Not yet a customer”.
- Cohorts: customers by the month of their first order, how many came back, and their later revenue by months after that first month.
RFM analysis is set out in Arthur Middleton Hughes, Strategic Database Marketing (McGraw-Hill).
Limitations
- Quintiles are relative: a Champion is a top customer of your own shop, not by any outside measure.
- Customers with no ID, e-mail, phone or name cannot be told apart; every such row counts as its own customer.
- Joining by phone needs the numbers to be real phone numbers; numbers without a country code are read as your country’s.
- Files of up to 40 MB each (and up to 300,000 rows in a workbook sheet), read on your device.
Privacy
On this device; its files download once
Your orders and your customers’ details stay in this browser on this device; nothing you open is uploaded and nothing is sent from here. Your settings and segment rules are kept in this browser.
Frequently asked questions
What do I get without a pass?
Without a pass, RFM Customer Segmentation (Recency, Frequency, Monetary) shows the size of every segment and the first rows of each table (up to 10), with the customer lists locked. Until you unlock it, the result can’t be downloaded or copied. A Pro, Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.
What do the segments mean?
Champions bought recently and often; Loyal buy regularly; Potential loyalists are recent with one or two orders; New made a first order lately; At risk used to buy regularly and have gone quiet; Can’t lose are the big spenders who stopped; Hibernating bought little a while ago; Lost bought little long ago. Each row of the segment table says what to do with them.
Why is everyone with one order F1?
Because they all did the same: one order. Ranking them into F1 to F3 by chance would invent differences. Repeat customers are scored F2 to F5 against each other.
Can I upload the lists to an ads platform?
Many ad platforms take customer lists for matching, and some ask for hashed e-mails and phone numbers; with hashing on, the lists are written that way. Check your platform’s own rules for consent and formatting. The lists unlock with a Pro pass.
Which date should recency count to?
For an export made today, the day after the last order in the file (or today). For an older export, the day it was made: counting to today would make every customer look less recent than they were when the export was taken.