Customer Segmentation using RFM Analysis

Customer Segmentation using RFM Analysis

How well do you know your customers? Whether you operate in a B2B or B2C space, chances are that 80% of your business comes from just 20% of your customers (Pareto's Principle). According to a study by Forbes, acquiring new customers costs five times more than retaining the existing ones. Identifying high-value customers is crucial to increase revenue and building brand loyalty.

Customer Segmentation is a critical strategy for businesses to understand and engage with customers effectively. Understanding the behavioral patterns of customers can help personalize the purchases they make and cater to their needs better. 

Questions like who are the customers who contribute more to sales, who are the customers about to churn, will help digital marketers understand the behavioral patterns of their customers. 

While there are many criteria based on which the customer base can be segmented, this solution focuses on segmenting customers based on the RFM analysis.

What is RFM Analysis?

RFM analysis (Recency, Frequency and Monetary) is a method used to identify and segment existing customers based on their purchasing behavior.  The key metrics of RFM analysis include

Recency

Recency refers to how recently a customer has made their purchase and this is the most important metric of the other metrics. This metric is a strong indicator of customer loyalty and interest.

Frequency

Frequency refers to how often a customer makes purchases or interacts with a business within a specific period. It measures the level of engagement and loyalty of a customer.

Monetary

Monetary value refers to the total amount of money a customer has spent with a business during a specific period. 




Industry-Specific Applications of RFM Analysis

  • SaaS and subscription services: RFM analysis can be adapted for SaaS and subscription services to segment users based on engagement, renewals, and revenue contribution.
  • Financial Sector: RFM analysis can improve credit scoring and risk assessment by evaluating customer transaction patterns, helping financial institutions make more informed loan approval decisions.

Data Requirements

For RFM analysis, you'll need a transactional dataset with the following equivalent columns (details) 
  • A product (Product ID)
  • A related transaction (Transaction ID)
  • Number of products purchased in a transaction (Product Quantity)
  • The product purchase price (Product Price)
  • Transaction date (Date)
  • Customer who made the purchase (Customer ID, Customer Name)
We have used a sample table of e-commerce data for illustration.

Steps for Implementing RFM analysis

1. Gather and Prepare Transaction Data : 

Gather all transaction data, ensuring it includes customer identifiers, transaction dates, and monetary amounts, and address missing or inconsistent values, ensuring data integrity before analysis.

2. Compute RFM Metrics: 

To segment customers based on their behavior, we compute three key metrics: Recency (R), Frequency (F), and Monetary Value (M). Below are SQL queries for each, along with detailed explanations.

Recency (R)

Recency measures how recently a customer made a purchase. It is calculated as the number of days since their last transaction. Customers with recent purchases are more engaged, while those who haven’t bought in a long time may be at risk of churn.

The time frame for RFM analysis should be tailored to your business model and industry. Choosing the right period for RFM analysis is essential, as it directly influences the accuracy of customer segmentation and the quality of insights derived.

Frequency (F)

Frequency tracks how often a customer makes purchases within a specific period. A higher frequency indicates a loyal customer who regularly shops, while a lower frequency suggests occasional or one-time buyers.

Monetary Value (M)

The total amount spent by the customer in the same period

RFM Query Table

SELECT
"Customer ID",
"Customer Name",
DAYS_BETWEEN(MAX("Transaction Date"), CURRENT_DATE()) AS "Recency",
COUNT ("Order ID") AS "Frequency",
SUM("Transaction Amount") AS "Monetary Value"
FROM  "Customer Data" 
GROUP BY "Customer ID",
  "Customer Name" 
ORDER BY "Recency" ASC,
  "Frequency" DESC,
"Monetary Value" DESC 



3. Segment Customers using Cluster Analysis

Manual scoring can skew the results and may not be practical for handling large volumes of data. In contrast, using machine learning algorithms like cluster analysis ensures unbiased, efficient, and data-driven segmentation. Unlike traditional scoring methods such as the quantile or percentile-based approach, cluster analysis recognizes inherent relationships and patterns in the data. With cluster analysis, business can obtain accurate segmentation and devise targeted strategies to improve sales and customer retention.

Follow the below steps to apply cluster analysis,
  1. Click the Create New icon and choose New chart from the drop-down menu.
  2. Add the columns to the chart shelf as shown below,
    1. X-axis: Customer Name
    2. Y-axis: Monetary Value with Sum function.
  3. Click Generate Graph and change the chart type to bar chart.

  4. Click the Analysis icon and select Cluster Analysis > Add Clusters.
  5. The Model is chosen automatically based on the columns dropped in the shelves.
  6. By default, the columns dropped in the shelves (Monetary Value) are selected as factors. Click the drop-down icon to include Recency and Frequency columns as factors.

  7. The number of clusters is determined automatically but can be adjusted based on business needs and specific customer segmentation goals to ensure optimal categorization.
  8. Choose the Normalization method to prevent values of high ranges from dominating the results. For instance, Recency (measured in days) and Monetary Value (measured in currency) have different scales, and normalization ensures a balanced contribution from each metric.
  9. Click Apply.

4. Export Clusters Data

Once the customer profiles have been segmented using cluster analysis, Export the Current view in the preferred table format to build more data visualizations to understand the clusters.


Build an RFM Analysis Dashboard

The RFM analysis dashboard provides a comprehensive view of customer behavior. Let's look at the steps involved in building this dashboard.

1. Import the Clusters Data

Import the downloaded clusters table back into Zoho Analytics using the files option as given below.
  1. Click the New icon on the side navigation panel and choose New Table/ Import Data.
  2. Select files and choose the Clusters Table to import and click Next.
  3. A data preview will be displayed; verify the data types of columns and click Create.

2. Create Reports to Understand the Characteristics of the Clusters

While the data is clustered, understanding the characteristics of each cluster is what enables businesses to take strategic actions. This includes identifying which customers need targeted marketing, personalized engagement, or retention efforts. Recognizing patterns within clusters provides insights into customer behavior, which is essential for optimizing marketing campaigns, improving retention strategies, and enhancing customer experience.
The below reports help understand the distribution of customers across different monetary value, recency and frequency segments within each cluster.

Clusters vs Monetary Value 

  1. Access the cluster table (imported data) and click the new icon > chart view.
  2. Drag and drop the columns as given below:
    1. X-axis - Clusters
    2. Y-axis - Monetary Value with the Count function.
    3. Color - Monetary Value with the Actual Range function.

Analyzing the chart, we can infer that,
  • Cluster 1 consists of a diverse group of customers spanning all spending levels.
  • Cluster 2 includes moderate to high spenders who contribute significantly to revenue.
  • Cluster 3 comprises low to mid-range spenders, often occasional buyers.
  • Cluster 4 represents high-value customers with premium spending habits.
  • Cluster 5 consists primarily of low spenders with minimal purchasing activity.
You can similarly create reports to know about the distribution of customers for the Recency and Frequency metrics.

The below table lists the characteristics of clusters

Cluster
Cluster Classification
Recency
Frequency
Monetary
Recommended actions
Cluster 1
Needs Attention
100 to 150 days
Low to Moderate 
 Diverse spending
Re-engagement campaigns, discounts, or reminders to encourage repeat purchases.
Cluster 2
Loyalist
0-50 (Highly Active)
High
Consistent moderate-to-high spenders
Loyalty programs, exclusive deals, early access to new products to maintain engagement.
Cluster 3
Potential Loyalist
0-50 (Active)
Low to Moderate  Budget-conscious, occasional buyers Cross-selling, personalized recommendations, and value-based promotions.
Cluster 4
Champions
100-150 (Inactive)
Moderate to High (Frequent buyers)
High spenders
VIP experiences, personalized services, and premium offers to retain and enhance their spending.
Cluster 5
Hibernating
Mostly inactive or infrequent
Low
Minimal spending
Win-back campaigns, incentives, special discounts, and targeted ads to regain interest.


Based on the above table, you can give specific labels to the clusters using the bucket columns option.

RFM Dashboard


Limitations & Considerations of RFM Analysis

While RFM analysis is a powerful customer segmentation tool, businesses should be aware of certain limitations and factors that can influence results:

  • Data Freshness and Relevance: RFM analysis relies on transactional data, making the freshness and relevance of this data crucial for accurate customer segmentation. Setting up automated data imports ensures real-time updates, reducing the risk of working with stale data.
  • Seasonal Variations: Customer purchasing behavior often fluctuates due to seasonal trends, holidays, and industry-specific cycles, which can impact RFM scores and lead to misleading segmentation if not accounted for properly. Instead of analyzing only recent months, compare customer behavior for the same period in previous years to detect true engagement patterns.
    • Sticky Posts

    • What's New in Zoho Analytics - January 2026

      Hello Users! We are starting the year with a strong lineup of updates, marking the beginning of many improvements planned to enhance your analytics experience. Explore the latest improvements built to boost performance, simplify analysis, and help you
    • What's New in Zoho Analytics - November 2025

      We're thrilled to announce a significant update focused on expanding your data connectivity, enhancing visualization capabilities, and delivering a more powerful, intuitive, and performant analytics experience. Here’s a look at what’s new. Explore What's
    • What's New in Zoho Analytics - October 2025

      Hello Users! We're are back with a fresh set of updates and enhancements to make data analysis faster and more insightful. Take a quick look at what’s new and see how these updates can power up your reports and dashboards. Explore What's New! Extreme
    • What’s New in Zoho Analytics – September 2025

      Hello Users!! In this month’s update, we’re raising the bar across multiple touchpoints, from how you bring in data, plan and track projects to how you design and brand your dashboards. We’ve added the all-new Gantt chart for project visualization, expanded
    • Announcing Agentic AI - Ask Zia!

      We are delighted to roll out the new agentic AI capabilities in Ask Zia, where every stage of the BI workflow is assisted by AI. With a human-in-the-loop approach, Ask Zia ensures that you’re in command of the decision, while AI handles the complexity.
      • Recent Topics

      • system not picking my default custom service report template

        Can you tell me why when we create a service report always pick the (standard old) template? Even when I have a custom service report selected as Default.
      • Most Effective Solution for Convert MSG files to EML

        For a reliable and professional way to convert MSG files to EML. Aryson MSG file Converter is one of the most effective solutions available. This tool allows you to convert single or multiple Outlook MSG files into EML format without requiring Microsoft
      • push notification to Cliq when user is @mentioned in CRM notes

        push notification to Cliq when user is @mentioned in CRM notes. Currently users that is @mentioned gets an email to be notified. User/s that is @mentioned should get a Cliq notification.
      • Customize your Booking page using Zia

        We’re excited to introduce an AI-based enhancement that automatically customizes your booking page effortlessly. By simply providing your business website URL, Zoho Bookings can automatically design a booking page that matches or complements your brand
      • Multiple header in the quote table???

        Hello, Is it possible in Zoho CRM to add multiple headers or sections within the Quote product table, so that when the quote is printed it shows separate sections (for example “Products” and “Services”)? To clarify, I’m asking because: This does not appear
      • Feature Request: Render Markdown (.md) files in Zoho Cliq

        Hi, We regularly share Markdown (.md) files in Zoho Cliq. However, when we open these files in Cliq, the content does not render as Markdown—it displays as plain text. This forces us to copy/paste the content into an external Markdown viewer to read it
      • Zoho Workdrive download was block by security software

        Hi Team, Recently workdrive download was blocked by huorong security. Could you please advise how to put zoho workdrive as white list? every time we put "*.zohoexternal.com" or "workdrive.zohoexternal.com", the warning msg will still pop in next dow
      • Merged cells are unmerging automatically

        Hello, I have been using Zoho sheets from last 1 year. But from last week facing a issue in merged cells. While editing all merged cells in a sheet became unmerged. I merged it again, but it again unmerged. In my half an hour work I have to do this 3-4
      • Zoho mail to contacts and leads, but not to accounts?

        We use the accounts tab a lot for our business because they can be linked to the sales orders. Now we want to use the mail add on to link communication of our emails to our accounts. However this is only possible for contacts and leads? It would be convenient
      • API keys not showing in ZeptoMail dashboard

        Hi there, I'm hoping someone can provide some assistance as support isn't replying. I am trying to configure my transactional emails, but the dashboard doesn't show any of my API details - the `div` is there but it's emtpy. Every time I click "Generate
      • Is there a way to show contact emails in the Account?

        I know I can see the emails I have sent and received on a Contact detail view, but I want to be able to see all the emails that have been sent and received between all an Accounts Contacts on the Account Detail view. That way when I see the Account detail
      • Does Zoho Learn integrate with Zoho Connect,People,Workdrive,Project,Desk?

        Can we propose Zoho LEarn as a centralised Knowledge Portal tool that can get synched with the other Zoho products and serve as a central Knowledge repository?
      • Reading from and writing to Zoho Projects Custom Module with Deluge

        Does anyone know if there is a way to read from and write to the Custom Modules that Zoho now supports. I would love to be able to loop through a set of data and create the entities I need to for this new custom module I'm looking to put together.
      • How Does Knowledge Base Search and Article Recommendation Work?

        Hello, I would like to understand how the Knowledge Base search engine works. Specifically, does it search based on: The article title only? The full article content? Both, the article and the content? Keywords? Tags? Also, how does the system determine
      • Importing into Multiselect Picklist

        Hi, We just completed a trade show and one of the bits of information we collect is tool style. The application supplied by the show set this up as individual questions. For example, if the customer used Thick Turret and Trumpf style but not Thin Turret,
      • Zoho Books/Inventory - Restrict Items With Pricebook

        Hi Zoho Team, I'm trying to address as use case where a client needs to restrict which products certain customers can purchase. I have been able to find a way to do this based on the current Zoho Books or Zoho Inventory configuation. My feature request
      • Best Way to Integrate Zoho Campaigns with Amazon SES Without Third-Party Tools

        I am looking for the most seamless and efficient method to integrate Zoho Campaigns with Amazon SES. My goal is to avoid using any third-party automation tools like Zapier, Make, or Pabbly, and instead, leverage Zoho's native capabilities for this integration.
      • Release Notes | January 2026

        We have rolled out a set of powerful new enhancements across Zoho Vertical Studio that bring several long-awaited capabilities to your applications. These updates focus on deeper customization, smarter automation, better reporting, and improved usability
      • scope for phonebridge in CRM and phonebridge API documentation

        Hi I cannot find the scope to be used for phonebridge in CRM API V2 calls. I am getting OAUTH_SCOPE_MISMATCH for scope group ZohoCRM.modules.ALL,ZohoCRM.setttings.ALL Also I am not able to locate the documentation for the same, All I have is phonebridge API documentation for desk and url [ https://www.zohoapis.com/crm/v2/phonebridge/ ] from a web forum. It makes a reply and error in case of missing arguments, but scope error is returned when all arguments are provided. Regards Devel Dev
      • How to charge Convenience fee OR payment gateway charges to the end client who is paying the invoice?

        Hello, I am creating this topic after having discussions with various sets of users and have understood that with people moving more and more to digital payments, it is important for the client to enable the "Convenience fee" kind of scenario. I have
      • Card payment surcharge?

        Hi, I would like to offer my customers the ability to pay invoices by card (using the PayPal integration). However, PayPal charges me around 5% to receive a card payment, and I would like to pass on this cost to my customer by way of a card payment surcharge. Is there any way for Zoho Invoice to be set up to automatically add a defined "card processing fee", say 5% of the invoice total, if the customer elects to pay by card? I don't want to add this on to invoice manually, since most of my clients
      • Automate Credit Card Surcharge

        Is there a way to create an automation that will add a 3.0% credit card surcharge to a subscription whenever a customer pays via credit card?
      • Zoho Books | Product updates | January 2026

        Hello users, We’ve rolled out new features and enhancements in Zoho Books. From e-filing Form 1099 directly with the IRS to corporation tax support, explore the updates designed to enhance your bookkeeping experience. E-File Form 1099 Directly With the
      • Notifications Feeds unread count?

        How do I reset the unread count on feeds notifications?  I've opened every notification in the list.  And the count never goes to zero.
      • Zoho POS App Hanging Issue – Sales Becoming Difficult

        The Zoho POS app frequently hangs and becomes unresponsive during billing, making it very difficult to complete sales smoothly. This commonly happens while adding items, during checkout, or at payment time, especially during peak hours. These issues cause
      • Tip #62- Exploring Technician Console: Send Ctrl + Alt + Del- 'Insider Insights'

        Hello Zoho Assist Community! Imagine you are a technician supporting a remote employee who cannot log into their system. The computer is stuck on the login screen after multiple attempts, and the user is unsure how to proceed. Instead of walking the user
      • SKUs for Invoices, POs, etc.

        It doesn't appear that one can enable SKU display on invoices, POs, etc. This is problematic, and I don't see a good reason why this shouldn't be an option. Some of our vendors and customers use this in their system. Every other identifier code is available
      • Introducing Bigin's Add-in for Microsoft Outlook

        Hello Everyone, Email is an important way to communicate with customers and prospects. If you use Outlook.com for emails and Bigin as your CRM, the Outlook Add-in helps you connect them easily so you can see your Bigin contact details right inside Outlook.com.
      • how to avoid duplicate customer

        How can i avoid to create a duplicate customer. I charged a same customer with two different plans and it showed up twice in my customer list and subsequently in Zoho books contacts. It creates confusion to have a same customer appears multiple times in customer or contact list. How can i avoid it.
      • RSC Connectivity Linkedin Recruiter RPS

        It seems there's a bit of a push from Linkedin Talent Solutions to keep integrations moving. My Account Manager confirmed that Zoho Recruit is a Certified Linkedin Linkedin Partner but does not have RSC as of yet., (we knew that :-) She encouraged me
      • im facing issue on generate the Estimate price

        i couldn't understand what is the issue , i cant generate Estimate price where is the issue
      • cannot be able to add user

        Dear team I tried to add a new user for sales team, but after entering the OTP its showing error message cannot add now
      • Changing an existing item to different accounts & inventory-tracked

        Hi everyone, I have an item in Zoho Books that was originally set up as a non-inventory item. Over time, I associated it with different sales and purchase accounts, and I now have many invoices, bills, and reports that use this item. My business process
      • New 2026 Application Themes

        Love the new themes - shame you can't get a little more granular with the colours, ie 3 different colours so one for the dropdown menu background. Also, I did have our logo above the application name but it appears you can't change logo placement position
      • How do I edit the Calendar Invite notifications for Interviews in Recruit?

        I'm setting up the Zoho Recruit Interview Calendar system but there's some notifications I don't have any control over. I've turned off all Workflows and Automations related to the Calendar Scheduling and it seems that it's the notification that is sent
      • Bookings duration - days

        Hi team, Is there any way to setup services/bookings that span multiple days? I am using Zoho Bookings for meeting room bookings. Clients may wish to book a room for more than one day, for up to a month.  If not, is there a plan to allow services to be setup with durations of Days as well as hours and minutes? Many thanks, Anna.
      • Empty folders are now appearing in the sidebar...

        ...and the folder list is now auto-collapsed by default with no way to change. Neither of these recent updates are useful or user-friendly. ==================== Powered by Haiku https://www.haiku.co.uk ====================
      • big 5 accounts

        how do you find what accounts are listed as Big 5 ?
      • Zoho recruit's blueprint configuration is not functioning as mapped

        Current Status: Zoho Blueprint is not functioning as configured. Issue: We are moving a Candidate status in Zoho Recruit "for active file" but we encountered: "Status cannot be changed for records involved in Blueprint." This happens to various client
      • Actual vs Minimum

        Hi all, I am sure I am not the only one having this need. We are implementing billing on a 30-minute increment, with a minimum of 30 minutes per ticket. My question is, is there a way to create a formula or function to track both the minimum bill vs the
      • Next Page