Ali Demirbaş

RFM analysis: Customer segmentation for lifecycle marketing

How to do RFM analysis: analysis window, scoring, monetary value, a worked example, RFM segments, and how to map each segment to a lifecycle journey.

10 min read

RFM analysis: spheres grouped on stepped blocks, standing for customers sorted into segments
Ali DemirbaşMobile App Growth Lead, Aksigorta

RFM analysis is a customer segmentation method. It scores customers on how recently they last bought (recency), how often they buy (frequency) and how much they spend (monetary value). It then groups them into segments.

Each customer gets a score on all three dimensions, and the combination of scores shows which segment they belong to. Customer relationship management (CRM) teams use this RFM segmentation to decide which message goes to which customer.

This guide covers how to do RFM analysis and the three decisions you need to make up front. It also covers a small worked example and how to map the segments to lifecycle journeys. It closes with the method's limits and how it is adapted for mobile apps.

What is RFM analysis and what does it measure?

RFM analysis reduces a customer's past buying behavior to three numbers and makes customers comparable on them. Each dimension answers a different question.

Recency shows when the customer last bought. It is measured in days between the analysis date and the last purchase, so the shorter the gap, the higher the score. Frequency measures how many times they bought in a given period, in number of orders. Monetary value measures how much they spent, as total spend or average spend per order.

The method comes from direct mail and catalog marketing, where practitioners ranked past purchase data on these three dimensions to decide whom to mail. A 2005 paper by Peter Fader, Bruce Hardie and Ka Lok Lee appeared in the Journal of Marketing Research. Citing Arthur Hughes, it notes that recency is usually the most powerful discriminator. That is why the framework is called "RFM" rather than "FRM".

The same paper describes RFM variables as only imperfect indicators of underlying behavioral traits. That idea is the starting point for the limits covered at the end of this guide.

How to do RFM analysis

RFM analysis works by calculating three values per customer from order data and turning them into scores. You can do it in Excel, SQL or Python, and your CRM tool may have a built-in RFM feature. The steps are:

  1. Prepare the data: Pull an order table with customer ID, order date and order amount. Decide up front how to handle cancelled and returned orders.
  2. Choose the analysis date and window: Decide which day counts as "today" and how many days of history you look back on.
  3. Calculate the three values: For each customer, compute days since the last order, the number of orders in the window, and total or average spend.
  4. Score: Convert each value to a score on the same scale, for example 1 to 5 or 1 to 3.
  5. Segment: Group score combinations into meaningful segments.
  6. Connect segments to messaging: Decide which journey or campaign runs for each segment, and recalculate the segments on a regular schedule.

The decisions in steps two and four are the ones most often skipped. The same data produces different segments with a different window or a different scale.

Choosing the analysis window

Choose the analysis window from your business's natural purchase cycle. A grocery app where people buy weekly and a furniture store where people buy once a year cannot be judged on the same window. Too short a window makes regular but infrequent buyers look lost, and too long a window keeps customers who left years ago looking active.

Klaviyo's RFM documentation uses recency thresholds of 180 and 365 days by default. That is a tool default, not a rule that fits every business.

Scoring on 1 to 5 or 1 to 3

There is no single standard for RFM scoring. IBM SPSS documentation splits each dimension into 5 bins by default, which creates 125 possible combined scores from 111 to 555. Klaviyo scores all three dimensions from 1 to 3, and Braze's RFM segments use a scale from 0 to 3.

A five-point scale separates customers more finely but means more segments and smaller groups. A three-point scale is easier to read on a small customer base.

Scores are set in one of two ways: by splitting customers into equal-sized groups or by setting fixed thresholds. Equal-sized groups have a trap. IBM's documentation shows with an example that bins come out uneven when many customers share the same value. If most of your customers have placed a single order, frequency cannot tell them apart and they all land in the same group.

Defining monetary value

Decide whether monetary value means total spend or average spend per order. IBM, Klaviyo and Braze use total spend, while the Fader, Hardie and Lee paper uses average spend per transaction. Total spend tends to move with frequency, since a customer who orders often naturally spends more.

Also decide up front whether to subtract returns and whether to include shipping and tax. Otherwise, customers with high return rates will look more valuable than they are.

Example: an RFM table for 10 customers

The table shows RFM scoring for 10 entirely hypothetical customers. The analysis date is November 1, 2026 and the window is the last 365 days.

Scores use fixed thresholds: for recency, 30 days or less scores 3, 31 to 90 days scores 2, and more than 90 days scores 1. For frequency, 4 or more orders score 3, 2 to 3 orders score 2, and one order scores 1. For monetary value, total spend above $300 scores 3, $100 to $300 scores 2, and below $100 scores 1.

  • Customer: A

    Days since last order
    5
    Orders
    6
    Total spend
    $480
    R
    3
    F
    3
    M
    3
    RFM score
    333
  • Customer: B

    Days since last order
    12
    Orders
    3
    Total spend
    $210
    R
    3
    F
    2
    M
    2
    RFM score
    322
  • Customer: C

    Days since last order
    20
    Orders
    1
    Total spend
    $45
    R
    3
    F
    1
    M
    1
    RFM score
    311
  • Customer: D

    Days since last order
    45
    Orders
    4
    Total spend
    $360
    R
    2
    F
    3
    M
    3
    RFM score
    233
  • Customer: E

    Days since last order
    60
    Orders
    2
    Total spend
    $90
    R
    2
    F
    2
    M
    1
    RFM score
    221
  • Customer: F

    Days since last order
    75
    Orders
    1
    Total spend
    $260
    R
    2
    F
    1
    M
    2
    RFM score
    212
  • Customer: G

    Days since last order
    120
    Orders
    5
    Total spend
    $520
    R
    1
    F
    3
    M
    3
    RFM score
    133
  • Customer: H

    Days since last order
    150
    Orders
    2
    Total spend
    $70
    R
    1
    F
    2
    M
    1
    RFM score
    121
  • Customer: I

    Days since last order
    210
    Orders
    1
    Total spend
    $30
    R
    1
    F
    1
    M
    1
    RFM score
    111
  • Customer: J

    Days since last order
    300
    Orders
    3
    Total spend
    $150
    R
    1
    F
    2
    M
    2
    RFM score
    122
Hypothetical example. Scores use the fixed thresholds stated in the text.

The most instructive row is G. G has the highest spend and frequency but hasn't bought in 120 days.

Suppose you summed the scores into one number. G (7 points) would then look "better" than C (5 points), who placed a first order 20 days ago.

Yet the two need completely different messages. That is why you read the combination rather than adding the scores up.

RFM segments

RFM segments are groups of customers with similar score combinations. Tools often give segments similar names, such as Champions, Loyal, At Risk, Can't Lose Them and Hibernating. But the number of segments and each segment's score rule differ from tool to tool.

Braze defines 10 segments on its 0 to 3 scale and assigns a customer to the first segment whose rule they meet. Klaviyo uses 6 groups on a 1 to 3 scale. Bloomreach's RFM documentation lists 11 segments on a 1 to 5 scale and suggests treating its own table as a starting point. In other words, ready-made segment names are a template to adapt to your own data.

A scheme that splits the example customers into seven segments by recency and frequency could look like this. In this scheme monetary value doesn't set the segment, it sets priority within the segment:

  • Segment: Champions

    Rule (R and F)
    R 3, F 3
    Example customers
    A
  • Segment: Loyal

    Rule (R and F)
    R 2 or 3, F 2 or 3 (excluding champions)
    Example customers
    B, D, E
  • Segment: New

    Rule (R and F)
    R 3, F 1
    Example customers
    C
  • Segment: Awaiting a second order

    Rule (R and F)
    R 2, F 1
    Example customers
    F
  • Segment: Can't lose them

    Rule (R and F)
    R 1, F 3
    Example customers
    G
  • Segment: At risk

    Rule (R and F)
    R 1, F 2
    Example customers
    H, J
  • Segment: Lost

    Rule (R and F)
    R 1, F 1
    Example customers
    I
An example segment scheme, to be adapted to your own data.

This scheme is an example. Check segment sizes on your own data: if one segment collects most customers or stays nearly empty, adjust the thresholds.

Mapping RFM segments to lifecycle journeys

An RFM segment earns its value when each segment gets different messaging. The list shows each example segment, its goal and the flows that have a counterpart in the site's journey library. Each journey's trigger, waits and exit conditions are described on its own page.

The key distinction in the list is between "can't lose them" and "lost". Both have low recency, but the first bought often and spent a lot in the past.

That segment calls for an earlier and more personal intervention. The lost segment fits a limited win-back attempt and less messaging if there is no response.

You can also use segment changes as triggers. A customer moving from loyal to at risk is a more urgent signal than one who has sat in at risk for months. To build journeys from your own data, see the Journey Builder.

The limits of RFM

RFM looks backward. The Fader, Hardie and Lee paper stresses that measures of customer value should look to the future, while RFM summarizes past behavior. RFM describes well where a customer stands today, but it doesn't directly predict how much value they will create. It is not a substitute for forward-looking models such as customer lifetime value (CLV) or churn prediction, though it gives them a starting point.

Relative scores are another limit. When you score with equal-sized groups, a customer's score depends not only on their own behavior but on everyone else's.

MoEngage's RFM documentation notes that scores are relative. A user near the boundary between two score groups can land in a different group when the analysis runs again. Account for that movement each time you recalculate, and don't make a big messaging decision based on a small change in one run.

RFM for mobile apps and subscriptions

In products without purchases, RFM can be adapted to another meaningful behavior. MoEngage uses app or site open as the default recency event and counts app or site visits for frequency. It gives total time spent watching content as an example of monetary value.

CleverTap's RFM documentation segments users by how recently and frequently they performed a specific event. It notes that monetary value can be any kind of user spend, such as money or time.

In subscription businesses the monthly payment is usually fixed, so monetary value separates customers poorly. In that case, usage frequency and last use date are more informative. Whichever event you pick, make sure it reflects behavior that creates value. Opening and closing an app is not as strong a signal as a purchase.

Ali Demirbaş

Written by

Ali Demirbaş

Mobile App Growth Lead, Aksigorta

Ali Demirbaş is the Mobile App Growth Lead at Aksigorta. He writes about growth, lifecycle marketing and the metrics behind them.

Related tools

What to read next

If this work overlaps with yours, let's talk.

Send me a note about growth, CRM, measurement or one of the projects here. A question, a counterpoint or a simple hello all work.