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,
- Click the Create New icon and choose New chart from the drop-down menu.
- Add the columns to the chart shelf as shown below,
- X-axis: Customer Name
- Y-axis: Monetary Value with Sum function.
- Click Generate Graph and change the chart type to bar chart.

- Click the Analysis icon and select Cluster Analysis > Add Clusters.
- The Model is chosen automatically based on the columns dropped in the shelves.
- 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.

- The number of clusters is determined automatically but can be adjusted based on business needs and specific customer segmentation goals to ensure optimal categorization.
- 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.
- 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.
- Click the New icon on the side navigation panel and choose New Table/ Import Data.
- Select files and choose the Clusters Table to import and click Next.
- 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
- Access the cluster table (imported data) and click the new icon > chart view.
- Drag and drop the columns as given below:
- X-axis - Clusters
- Y-axis - Monetary Value with the Count function.
- 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.
Recent Topics
Ghost email notification on a form
Hello, We have recently encountered an error where I can not see a email notification set up for a form which I am currently the owner, although neither the form nor the notification were created by me. However, neither can the Super Admin access the
bulk edit records and run internal logic
hi there is few logics in manner "it this than that" logics work well when i edit entry openning it one by one (via workflow "on add/edit - on success" , for custom field "on update/on user input") but when i try bulk edit records - logic does not work. how can i turn on logic to work as programmed - for mass editing records via bulk edit?
Limitations on editing a message in Cliq
Hi I've checked the documentations and there's no mention of how many times a message can be edited. When trying with code, I get various numbers such as ~1000 edits or so. Please mention if there's a limit on how many times one can change a message via
email address autocomplete
Is there a way to eliminate certain addresses from showing up in auto complete when entering an address? Many old and unused addresses currently show up, many of which I would like to get rid of. Thanks
How to use MAIL without Dashboard?
Whenever I open Mail, it opens Dashboard. This makes Mail area very small and also I cannot manage Folders (like delete/rename) etc. I want to know if there is any way to open only Mail apps and not the Dashboard.
How can i download and secure all my mails from the archive folders?
Hi, i would like to download all my mails from my archive folders and secure it on my external HDD. Is this possible? Thx. amir
How to open filtered report in popup using Zoho Creator Deluge?
First report: There is so many records in Report, If I click one record, pop up is occur. Second report (Pop up): there is also so many record data, and this pop up is also Report, not Form. First report: It has got "Sales Order" field. when I click any
Can you default reports/charts to report the current week?
Our data table maintains two years of data. Management wants certain report to automatically filter the report to the latest calendar week. I know I can do this manually with filters but I want the report to automatically default to the latest calendar
Rendering PDF to view on page
My company upload lots of PDF files onto Zoho. But every time we open it, it downloads the file instead of viewing it on the web page. Does Zoho allow uploaded PDF files to be rendered to view on web page yet? I've been trying to use <embed> or <object> but it cannot be loaded. (similar thread: https://help.zoho.com/portal/community/topic/how-to-open-a-pdf-file-of-a-view-in-preview-mode)
Overlapping Reports in Dashboards
It's rare, but occasionally it would be a good feature if I were able to overlap reports, either fully or partially in the Dashboards. Also, then having the ability to move objects to the front or rear, or make them transparent/translucent would be good
Feature request - pin or flag note
Hi, It would be great if you could either pin or flag one or more notes so that they remain visible when there are a bunch of notes and some get hidden in the list. Sometimes you are looking for a particular name that gets lost in a bunch of less important
Admin guide: Handling Mailbox Settings for better user management
Managing day-to-day email scenarios, such as supporting users with multiple email addresses, ensuring uninterrupted email access during employee absences, enabling secure mailbox sharing, and enforcing organizational security and compliance, can be challenging
Cisco Webex Calling Intergration
Hi Guys, Our organisation is looking at a move from Salesforce to Zoho. We have found there is no support for Cisco Webex Calling however? Is there a way to enable this or are there any apps which can provide this? Thanks!
Designing a practical Zoho setup for a small business: lessons from a real implementation
I recently finished setting up a Zoho-based operating system for a small but growing consumer beauty business (GlowAtHomeBeauty), and I wanted to share a practical takeaway for other founders and implementers. The business wasn’t failing because of lack
DKIM (Marketing emails) UNVERIFIED (Zoho One)
I'm having a problem with Zoho One verifying my Marketing Email DKIM Record for MYFINISHERPHOTOS.COM. I have removed and re-entered the ownership, DKIM (Transactional emails), SPF and Marketing DKIM and all of them come back verified except the DKIM (Marketing
Zoho Recruit Community Meet-up - India
Namaste, India. 🙏🏼 The Zoho Recruit team is hitting the road—and we 're absolutely excited behind the scenes. Join us for the Zoho Recruit India Meet-up 2026, a morning designed to make your recruiting life easier (and a lot more effective). Date City
Generate a Zoho Sign link
From time to time I get a response "I never received your you e-document for electronic signature" is there a way to generate a Zoho Sign link to share.
Is it possible to create a word cloud chart in ZoHo Analystics?
Hi there, I have a volume of transaction text that I would like to analyse using word cloud (or other approcah to detect and present word frequency in a dataset). For example, I have 50,000 records describing menu items in restaurants. I want to be able
How to Fix the Corrupted Outlook 2019 .pst file on Windows safely?
There are multiple reasons to get corrupted PST files (due to a power failure, system crash, or forced shutdown) and several other reasons. If You are using this ScanePST.EXE Microsoft inbuilt recovery tool, it only supports the minor corruption issue
[Webinar] A recap of Zoho Writer in 2025
Hi Zoho Writer users, We're excited to announce Zoho Writer's webinar for January 2026: A recap of Zoho Writer in 2025. This webinar will provide a recap of the features and enhancements we added in 2025 to enhance your productivity. Choose your preferred
How to drag row(s) or column(s)?
Hi. Selecting a row or column and then dragging it to a new position does not seem to work. Am i missing something or this is just not possible in Zoho Sheet? Cheers, Jay
Building Toppings #5 - Creating and configuring custom service connections in Bigin Toppings
Hello Biginners, Integrating Bigin with external applications extends its capabilities and enables customized functionalities. In our last post, we saw how to create a default service connection. Today, we'll see how to create a custom service connection
Optimising CRM-Projects workflows to manage requests, using Forms as an intermediary
Is it possible to create a workflow between three apps with traceability between them all? We send information from Zoho CRM Deals over to Zoho Projects for project management and execution. We have used a lookup of sorts to create tasks in the past,
Marketing Tip #15: Rank better with keyword-rich URLs for product pages
Your product page URL is a small detail that can make a surprisingly big difference. Clean, readable URLs help in two ways: They’re easier for customers to trust and remember (no one likes clicking a link that looks messy or random). They help search
Conditional fields when converting a Lead and creating a Deal
Hi, On my Deal page I have a field which has a rule against it. Depending on the value entered, depends on which further fields are displayed. When I convert a Lead and select for a Deal to be created as well, all fields are shown, regardless of the value
ATE Session on Payment Gateways: Our experts are live now. Post your questions now!
Hello everyone, Our experts are all excited to answer all your questions related to payment workflows. Please feel free to join this session and learn more about this topic. If you have a query at anytime, please post them here.
Upload data deleted all Zoho form data that we manage
Good morning. Let me introduce myself, I'm Iky from Indonesia. I'm experiencing an error or problem using Zoho Forms. I manage Zoho Forms, but I previously encountered an error when I misclicked the delete button in the upload format. It apparently deleted
ZOHO FORMにURL表示ができない
初心者です。 ZOHO FORM で宿泊者名簿を作っています。 ゲストが、URLをクリックするとStripeで支払いができるようにURLを表示をしたいのですが、 上手くできません。 やり方が分かる方、ぜひ教えてください。
Custom module - change from autonumber to name
I fear I know the answer to this already, but thought I'd ask the question. I created a custom module and instead of having a name as being the primary field, I changed it to an auto-number. I didn't realise that all searches would only show this reference.
No Automatic Spacing on the Notebook App?
When I'm adding to notes on the app, I have to add spaces between words myself, rather than it automatically doing it. All my other apps add spacing, so it must be something with Zoho. Is there a setting I need to change, or something else I can do so
Holidays - Cannot Enter Two Holidays on Same Day
I have a fairly common setup, where part-time employees receive 1/2 day's pay on a holiday and full-time employees receive a full day's pay. Historically, I've been able to accommodate this by entering two separate holidays, one that covers full-time
Campaigns set up and execution assistance
Hello Community, Can someone recommend a professional who can assist with the completion of my set up and deployment of Campaigns? Looking for a person or company that is not going to ask for big dollars up-front without a guarantee of performance to
Zobot with Plugs
Hello, I am having a problem with Zobot using Plugs. Here is my current flow: When I run the flow, I should immediately see the messages from the initial cards (Send Message cards), then after running the plug, and finally, see the messages after the
Kaizen #223 - File Manager in CRM Widget Using ZRC Methods
Hello, CRM Wizards! Here is what we are improving this week with Kaizen. we will explore the new ZRC (Zoho Request Client) introduced in Widget SDK v1.5, and learn how to use it to build a Related List Widget that integrates with Zoho WorkDrive. It helps
Remove Powered by Zoho at the footer
Hi, I've read two past tickets regarding this but it seems that the instructions given are outdated. I assume the layout keeps on changing, which makes it frustrating for me to search high and low. Please let me know how exactly do I do this now? Th
Error AS101 when adding new email alias
Hi, I am trying to add apple@(mydomain).com The error AS101 is shown while I try to add the alias.
No Need To Fix Something That Is Working
Zoho Books is a great financial tool which helps businesses to become more efficient and productive with day-to-day operations. As such, every change, upgrade, improvement needs to be carefully thought before implemented in the software and I'm sure Zoho
Using email "importance" as workflow-criteria
I'd like to set up a workflow that triggers if an incoming email has been flagged as "high importance" but I'm not seeing any way to do that. Hopefully I'm just missing something obvious...?
This domain is not allowed to add. Please contact support-as@zohocorp.com for further details
I am trying to setup the free version of Zoho Mail. When I tried to add my domain, theselfreunion.com I got the error message that is the subject of this Topic. I've read your other community forum topics, and this is NOT a free domain. So what is the
What is Resolution Time in Business Hours
HI, What is the formula used to find the total time spent by an agent on a particular ticket? How is Resolution Time in Business Hours calculated in Zohodesk? As we need to find out the time spent on the ticket's solution by an agent we seek your assistance
Next Page