You have a cosmetics store with 2,000 orders a year. On Friday you send the newsletter with the week's discount to the whole list. The customer who ordered yesterday gets it, and now sees she paid too much. The person who bought once two years ago and no longer opens anything from you gets it too.
When you write for the whole list, you write for an average customer who does not exist. RFM analysis is one of the simplest ways to see who is who among your customers, and all you need for it is what you already have: orders.
What RFM means
Three questions about each customer:
- Recency: how long since the last order?
- Frequency: how many orders have they placed in total, or in a fixed period?
- Monetary: how much have they spent in total?
The idea is old and practical. A customer who bought recently, buys often and spends a lot has the best chance of buying again. One who has not ordered in a long time has a smaller chance. You do not need advanced statistics, only a correct ordering.
How to score from 1 to 5
The steps are the same in any tool, even in Excel:
- For each customer, export the date of the last order, the number of orders and the amount spent.
- Sort the customers by each of the three values.
- Split the list into five equal groups (quintiles), on each value. The most recent get 5 for recency, the oldest get 1. For frequency and monetary value, the highest get 5.
- Each customer now has three scores, for example 5-4-5 or 1-1-2.
Important: you make the groups from your own customers, not from fixed thresholds found on the internet. In a cosmetics store, people come back monthly. In a furniture store, a customer buys once every few years. The same number of days can mean "active customer" in one store and "lost customer" in another.
There is one more trap. If you have few customers with more than one order, as is normal for a young store, the frequency groups come out almost the same. In that case you use simple thresholds: one order, two, three or more.
The segments you actually work with
Three scores from 1 to 5 give 125 combinations. Too many. That is why you gather them into a few segments with names that are easy to remember. The names differ from one tool to another, but the most used are these:
- Champions: high recency, frequency and value. They do not need a discount. They need to feel noticed: access before others, new products, a personal thank-you.
- Loyal customers: they buy regularly, even if they do not spend the most. Cross-selling and a loyalty program work here.
- New customers: high recency, a single order. The first experience decides whether a second order comes, so the emails after purchase matter.
- Promising: they bought recently but spent little. A nudge toward a second order can move them to loyal.
- At risk: they bought several times and spent well, but have not ordered for a while. They are the first to get a reactivation email.
- Can't lose them: they were among your most valuable customers and disappeared. Here more than an email is worth it: an offer made for them or even a phone call.
- Dormant or lost: low recency, frequency and value. A reactivation campaign costs little, but do not expect many replies. If they do not react to it either, you take them out of the regular sends to protect your sender reputation.
What to do with each segment
Segmentation does not help if it stays in a chart. Each segment needs an action and a sign by which you see whether it worked.
Champions: you send them launches before everyone else and ask them for reviews. You do not give them blanket discounts. You would lose margin on people who would have bought anyway.
Loyal: you suggest complementary products, starting from what they have already bought. A points or tier program keeps them close.
New: a thank-you email, then one with usage tips and only after that a recommendation. The target is the second order, within an interval that is normal for your category.
At risk and Can't lose them: you start from what they bought, not from a generic offer. "It has been a few months since your last coffee order, you have probably run out" convinces more than a discount banner.
Dormant: one short reactivation series, with a clear reason to come back. Then you decide whether to keep them in the active list.
Mistakes we see often
- You calculate once and that is it. Customers move between segments every day. Someone who ordered today is no longer "at risk". If you update the segment by hand, you send campaigns to people who are no longer there.
- You count returned or cancelled orders. A customer who returned everything is not a valuable customer. Decide clearly which orders count. If you sell a lot with cash on delivery, refused parcels enter the same discussion.
- You mix customers with subscribers. RFM is calculated on people who bought. A subscriber with no order has no recency or value score yet, so you treat them separately.
- You compare amounts in different currencies. If you sell in both lei and euros, convert before you compare.
- You draw conclusions from too little data. With a few hundred customers, a segment may have only dozens of people. Use segmentation as a guide for decisions, not as statistical proof.
The limits of the method
RFM tells you what happened, not why. You do not know whether a customer left because they were unhappy or because they no longer needed the product. It does not take into account the category bought, the margin or the channel they came through. It is a good starting point for what you send and to whom, not a complete model of a customer's value over the whole relationship. For that you need data over longer periods and a clean order history.
How Aopy does RFM analysis
Aopy is built by the team behind Clinica de Marketing, which has worked in e-commerce since 2016.
In Aopy, the orders from the connected store (for example Shopify or WooCommerce) automatically feed the recency, frequency and value calculation for each customer. The RFM analysis page in Analytics groups customers into segments, from those who buy often and recently to those who have not bought for a long time. It shows you how much money is in each segment and how the segments change over time. For each customer you see the estimated date of the next order.
Segments are recalculated daily, with the new orders, so you export nothing by hand. You can use them directly as the starting point for an email automation: for example, a reactivation email that starts when a customer enters the segment of those who no longer order. Aopy does not calculate a lifetime value (CLV) based on a statistical model. The segments help you set priorities, they do not predict revenue.