What RFM is, and why it still works after 30 years
RFM (Recency, Frequency, Monetary) is the oldest meaningful customer segmentation method, originating in direct-mail catalog operations in the 1990s. It scores every customer on three dimensions and uses the combined score to assign them to a segment. The reason it survives, when every other framework from that era has been replaced by something flashier, is that it works.
What RFM actually does is encode three statistical facts about your customer base into a single addressable identity. Recent buyers are more likely to buy again than long-ago buyers. Frequent buyers are more loyal than one-time buyers. High spenders carry more LTV than low spenders. None of those facts is contested. RFM is just the simplest way to operationalize all three at once.
For DTC brands specifically, RFM is the right starting point for three reasons. It needs no machine learning, no model training, and no cloud-native data stack. The inputs are in your Shopify order history. The output maps directly to Klaviyo segments. And the segments are interpretable: every operator on your team can look at “At Risk” and know what it means without needing to ask data science. That combination of low cost, fast time-to-value, and operator legibility is rare. Most brands skip RFM because it sounds unfashionable. The ones that run it well consistently outperform peers running more sophisticated approaches badly.
The three dimensions, and what each one tells you
Recency
The number of days since the customer's last purchase. Smaller numbers are better. Recency is the dimension that dominates short-term behavior: a customer who bought 14 days ago is dramatically more likely to buy in the next 30 than a customer who bought 180 days ago, even if the second customer has bought more times historically.
Recency is also the most actionable dimension. You can't retroactively change how often someone bought; you can intervene in their recency by sending the right campaign at the right window. Most retention work is, at its core, recency management.
Frequency
The total number of orders the customer has placed in your measurement window. Higher numbers are better. Frequency is the loyalty signal: it tells you whether the customer is in the habit of buying from you, independent of how recently they last did. Customers with high frequency and recent purchases are your Champions. High frequency and stale recency is the definition of At Risk and represents the biggest recoverable revenue opportunity in most DTC brands.
Monetary
The total revenue (or, ideally, gross profit) the customer has generated over the measurement window. Higher is better. Monetary is the dimension most operators undervalue, because they confuse it with frequency. They aren't the same. A customer who places one $400 order behaves very differently from a customer who places four $100 orders. Treating them as equivalent is a mistake; pricing your retention budget on the assumption they're identical is a bigger one.
How to score: the quintile method, step by step
The standard RFM model uses a 5-point scale per dimension, built from quintiles of your customer base. Here's the exact procedure most operators use.
Step 1: Pull the data. Export every customer who has placed at least one order, along with three columns: days since last order, total orders to date, and total revenue to date. Filter out fully refunded customers and known one-time corporate orders that distort the distribution.
Step 2: Sort by Recency, ascending. The most recent buyers get a score of 5. The least recent get 1. Split your customer base into five equal-sized buckets and assign scores accordingly. If you have 5,000 customers, the top 1,000 most-recent buyers get R=5, the next 1,000 get R=4, and so on.
Step 3: Sort by Frequency, descending. Same quintile method. The top 20% of order-count customers get F=5, the bottom 20% get F=1.
Step 4: Sort by Monetary, descending. Same quintile method. The top 20% of spenders get M=5, the bottom 20% get M=1.
Step 5: Assign each customer a three-digit RFM score. A customer who bought yesterday, has ordered 12 times, and spent $1,840 gets 555. A customer who bought 11 months ago, has ordered twice, and spent $84 gets 121. These three-digit codes are the primary input for segment assignment.
A worked example. A skincare brand with 6,200 customers runs quintile cuts and finds: R=5 means ≤28 days, R=1 means ≥240 days; F=5 means 6+ orders, F=1 means exactly 1 order; M=5 means $480+, M=1 means <$70. A customer who last purchased 19 days ago, has placed 4 orders totaling $312, lands at R=5, F=4, M=4, score 544. They're a Loyal Customer (per the table below), and they're a target for a cross-sell, not a win-back.
Two notes that matter. First, the cut points are brand-specific. Your R=5 ceiling depends on your typical repurchase cycle. A subscription brand's R=5 ceiling might be 35 days; a furniture brand's might be 12 months. Second, the scoring is relative to your base, not absolute. A small brand with high-LTV customers will have an M=5 floor that looks low compared to a larger brand, but the segment behavior will still be useful internally.
The eleven standard segments
The 5x5x5 score space contains 125 possible combinations, which is too many to act on. The standard practice is to collapse them into eleven named segments based on score patterns. The names below are the most common in the literature; brands sometimes rename them to fit internal vocabulary, but the underlying definitions are stable.
| Segment | Score pattern (R, F, M) | Typical share | Recommended action |
|---|---|---|---|
| Champions | R=5, F=4–5, M=4–5 | 5% – 10% | VIP perks, early access, ask for review |
| Loyal Customers | R=3–5, F=3–5, M=3–5 | 12% – 18% | Cross-sell, loyalty tier upgrade |
| Potential Loyalists | R=4–5, F=2–3, M=2–3 | 8% – 14% | Bundle offers, build the second-purchase habit |
| New Customers | R=5, F=1, M=1–2 | 10% – 18% | Welcome series, second-purchase nudge |
| Promising | R=4, F=1, M=1 | 4% – 8% | Onboarding extension, product education |
| Need Attention | R=3, F=2–3, M=2–3 | 6% – 10% | Re-engagement with personalization |
| About to Sleep | R=2, F=1–2, M=1–2 | 8% – 14% | Limited-time offer before they go quiet |
| At Risk | R=1–2, F=3–5, M=3–5 | 5% – 12% | Win-back flow, high-touch outreach |
| Can't Lose Them | R=1, F=4–5, M=4–5 | 1% – 4% | Highest-priority recovery, founder email |
| Hibernating | R=1–2, F=1–2, M=1–2 | 14% – 22% | Low-cost reactivation, then suppress |
| Lost | R=1, F=1, M=1 | 8% – 16% | Suppress from active sends; do not pay to email |
A few observations from running this against a lot of customer bases. The Champions segment is usually smaller than founders assume, often 5–7% rather than the 15–20% they imagine. The At Risk and Can't Lose Them segments combined almost always represent your single largest recoverable revenue pool, because these are customers who have already proven they'll spend with you. And the Lost segment is usually larger than operators expect, because the math is unforgiving: customers who ordered once a year ago and never returned are very unlikely to return at all.
What the four most important segments actually look like
Eleven segments is the full taxonomy. In practice, four of them deserve the bulk of your retention attention because the ROI of intervening is dramatically higher than the others. Here's what each one looks like in a typical mid-market DTC brand and what the right action is.
Champions (R=5, F=4–5, M=4–5)
The top of the customer pyramid. Recent buyers, frequent orders, high cumulative spend. In a brand of 6,000 customers you usually find 300–500 Champions. They are already loyal; the goal is not to convert them, it is to deepen the relationship without bothering them. The right move is to treat this segment as a referral and review engine: ask them to recommend friends, request photo reviews on the products they've repurchased, give them early access to new launches. Discounting Champions is the wrong move. They're already buying at full price and a discount just trains them to wait. The single highest-ROI Champion campaign we see is the founder-signed thank-you email after their fifth order with a handwritten-style note and no offer attached. Open rates run 70%+ and the segment's 90-day reorder rate moves another 3–5 points.
At Risk (R=1–2, F=3–5, M=3–5)
The biggest recoverable revenue pool in most brands. These are customers who have ordered repeatedly and spent meaningfully but have gone quiet in the last 90–180 days. They are not lost yet. They have either drifted because of life circumstances or because a competitor caught their attention. A direct, personalized win-back works best. Not a 20% off email. A reminder of what they last bought, a question about whether anything changed, and a low-friction path back to purchase. Brands that segment At Risk customers by what they last bought and send product-specific re-engagement see recovery rates of 6–12% within 30 days of the campaign. Generic win-back blasts to the same segment recover 1–3%. The personalization gap is huge here.
Can't Lose Them (R=1, F=4–5, M=4–5)
The smallest segment, usually 1–4% of the base, and the one operators most often misroute into the standard win-back flow. These are former Champions who have stopped ordering. Their lifetime value is the highest in your file. Their churn is the most expensive event in your funnel. The right intervention is high-touch and individual, not automated. A personal email from the founder or head of customer experience, a specific reference to what they bought last, and a no-pressure offer to chat about what happened. Yes, this doesn't scale, and yes, that is the point. The math justifies the human time: a recovered Can't Lose Them customer is worth 5–10x more than a newly acquired one, and the segment is small enough that one operator can work the entire list in a few hours.
About to Sleep (R=2, F=1–2, M=1–2)
Customers who ordered once or twice, recently enough that they haven't fully drifted, but the window is closing. This is where most brands either intervene too late or skip intervention entirely. The right campaign is a time-limited offer or a product-education sequence that addresses the most common reason for early lapse (usually unfamiliarity with how to use the product, not dissatisfaction). The economics favor moving fast: brands that re-engage About to Sleep customers within 14 days of segment entry retain 4–7% of them. Wait 30 days and the rate drops by half. The cheapest retention dollar in the entire customer base is spent here.
How to actually build this inside Klaviyo and Shopify
The theory is the easy part. Getting RFM into a working retention loop is where most teams stall. Here's the practical wiring.
Option 1: Klaviyo-native segments
Klaviyo's segment builder can approximate RFM directly, although it won't do true quintile math. You build each segment as a combination of conditions:
- Champions:placed an order within the last 30 days AND has placed 4+ orders lifetime AND lifetime revenue ≥ $X (set X at your 80th percentile)
- At Risk:hasn't placed an order in 90–180 days AND has placed 3+ orders lifetime AND lifetime revenue ≥ $X
- Hibernating:hasn't placed an order in 180+ days AND has placed exactly 1–2 orders
The trade-off: Klaviyo segments use absolute thresholds rather than quintile-relative cuts, which means your segments will drift as your customer base grows. You'll need to revisit the threshold values quarterly. For brands under 2,000 customers, this is fine. Above that, the manual maintenance starts to bite.
Option 2: Shopify Flow + custom tags
You can use Shopify Flow to tag customers based on RFM-style rules, then sync those tags to Klaviyo via the standard integration. This lets you keep the logic inside Shopify (where the order data lives) and use Klaviyo purely as a sender. The trade-off is that Shopify Flow rules are limited in expressiveness, so complex segments need workarounds with multiple chained flows.
Option 3: External RFM scoring with sync to Klaviyo
For brands above 5,000 customers, the practical move is to score customers in a tool that can do real quintile math (Python, SQL, or a retention platform) and write the resulting segment label back to a Klaviyo custom profile property. The segment becomes a list inside Klaviyo, the campaign automations run as usual, and the score refreshes on a weekly cadence. Our Shopify + Klaviyo retention intelligence integration handles this loop natively, but the same pattern works with a rolled scripts approach if you have the engineering capacity.
The mistakes most operators make
1. Setting it up once and never refreshing
RFM scores age out fast. A customer scored 555 four weeks ago may have drifted to 455 today and 355 next month, simply because time is passing. If your segment definitions don't refresh weekly, you're sending Champion campaigns to customers who are now At Risk. The whole point of RFM is freshness; without it, you've built static lists with fancy names.
2. Treating all three dimensions as equally important
In practice, recency dominates for short-term campaign decisions, frequency dominates for loyalty programs, and monetary dominates for VIP and high-touch outreach. Applying equal weight in every campaign decision means you'll over-target high-M customers with mass-market promotions (annoying them) and under-target high-R customers with VIP experiences (wasting recovery budget). Pick the dominant dimension per campaign type.
3. Ignoring the product repurchase cycle
The standard RFM cut points assume a category with a roughly monthly repurchase cycle. If your category is annual (mattresses, furniture, appliances), an R=1 score is normal at month 11 and says nothing about retention; the customer is just inside the natural cycle. Calibrate your R bins against your category cycle, not the textbook defaults.
4. Treating Lost customers as a recovery target
The math on Lost customer reactivation is grim. Recovery rates on customers who haven't purchased in 360+ days and only ever placed one order sit at 1–3%, against acquisition rates of 4–8% for net-new traffic at comparable cost. Lost customers should be suppressed from active sends, not rescued. The retention budget belongs upstream, in the At Risk and About to Sleep segments where the math actually works.
5. Hard-coding segment names without operator buy-in
“About to Sleep” means nothing to a brand whose team has been calling them “fade-outs” for two years. Rename the segments to match how your team already talks about customers. The taxonomy is more important than the labels. RFM's value is the disciplined behavioral model underneath, not the canonical names.
RFM versus ML churn versus predictive LTV
A common question: if I have a predictive churn model, do I still need RFM? Yes, and the reason is that the three approaches answer different questions.
RFManswers: how has this customer behaved? It's a behavioral classification, not a prediction. It's interpretable, low-cost, and operates on three inputs you already have. It's the right tool when you want segments your marketing team can act on without consulting data science.
Predictive churnanswers: will this customer stop buying in the next N days? It uses 20–40 features (engagement, time-decayed order signals, ESP behavior, category mix) to assign a probability of churn. It's the right tool when you need to prioritize among customers who all look similar on RFM but behave differently underneath.
Predictive LTVanswers: how much will this customer be worth over the next N months? It models forward revenue conditional on recent behavior. It's the right tool when you need to size investment per customer (VIP gifts, win-back budget, cross-sell pricing).
The three are complementary. The brands we see running the best retention programs use RFM as the day-to-day behavioral map, predictive churn to flag the urgent interventions, and predictive LTV to size the response. Each model answers one question well and a different question poorly. Picking only one is the mistake.
Where to go from here
RFM is most useful when it's feeding decisions, not when it's sitting in a spreadsheet. Two next steps for most brands. First, read the repeat purchase rate guide and check whether your RPR sits above or below your vertical median; that's the metric your RFM-driven campaigns should be moving. Second, audit your current retention flows against the eleven segments above. Most brands have flows aimed at three of them (welcome, win-back, VIP) and nothing for the other eight. That gap is where the easiest revenue lift hides.
For the broader playbook on what to do once segmentation is working, the 12 LTV tactics piece covers the highest-impact post-segmentation moves, and the 10 retention intelligence use cases piece covers where the next layer of sophistication earns its keep.
Frequently asked questions
Can you do RFM segmentation in Klaviyo?
Partly. Klaviyo's native segment builder can approximate RFM segmentation by combining recency, order-count, and lifetime-revenue conditions into named segments like Champions, At Risk, and Hibernating, which is enough to start routing flows. What Klaviyo RFM cannot do natively is true quintile scoring (ranking every customer 1-5 on each dimension and refreshing it as the base shifts), because that requires computing percentile cuts across your whole customer base outside Klaviyo and writing the scores back in. The section below shows both the Klaviyo-native approximation and the externally-scored approach. For weekly-refreshed quintile RFM, most mid-market brands compute scores in a retention layer and sync the resulting segments into Klaviyo.
How often should I refresh RFM scores?
Weekly for active retention programs, monthly at minimum. Scores drift constantly: every order, every passing day. A 'Loyal' customer from 90 days ago who hasn't ordered since is now 'At Risk' even though no campaign moved them. Most operators set up RFM as a one-time exercise, then never refresh, then wonder why their flows underperform. The score is only useful while it's current.
What's the minimum customer base needed for RFM to work?
Around 500 customers with at least two orders each. Below that, the quintile cuts collapse to single-digit segment sizes and you're segmenting noise. Brands with fewer customers can still use RFM directionally (high/medium/low instead of 1 through 5) but should treat the segment labels as starting hypotheses rather than firm assignments. Once you're past 2,000 customers, the standard 5-point scale stabilizes and the segments behave consistently across refreshes.
Does RFM still matter when I have predictive churn scoring?
Yes, but for a different reason. Predictive churn answers 'will this customer leave?' RFM answers 'how have they behaved?' The two are complementary. A high-R, high-F, high-M customer with a high churn score is a different intervention from a low-R, low-F, low-M customer with a high churn score. The first one needs retention; the second one is already gone and shouldn't pull retention budget. RFM is the behavioral context that makes a churn score actionable.