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
Explore Your Support Reach with Zoho Assist’s Geo Insights
Understanding where your remote support sessions are happening can help you make smarter decisions, allocate resources effectively, and improve overall customer satisfaction. In this week's Zoho Assist's community post we will be exploring Geo Insights
Direct Integration Between Zoho Cliq Meetings and Google Calendar
Dear Zoho Team, We’d like to submit the following feature request based on our current use case and the challenges we’re facing: 🎯 Feature Request: Enable meetings scheduled in Zoho Cliq to be automatically added to the host's Google Calendar, not just
Formatting of text pasted into Zoho documents
Howdy, I'm a newbie and finding Zoho an improvement to MS Word. Consider yourself hugged. High on my wish list would be plain text cut-and-paste. When pasting text from the web to Zoho, presently Zoho imports the formatting along with the text. This means that every cut-and-paste operation brings in text in a different font, size, or style. Can we have at least the option of importing plain text without formatting (or better yet, is this option already out there?) ... Thanks Helen
Add additional features to Zoho Tables
Zoho Tables is a really great tool, why not add features like diagramming capability into the tool from applications like Draw.io which I believe is open source, you should be able to do wireframes, process flow diagrams, network design, etc. Please note
Zoho sheet
Unable to share zoho sheet with anyone on internet with editer option only view option is show
The Social Wall: August 2025
Hello everyone, As summer ends, Zoho Social is gearing up for some exciting, bigger updates lined up for the months ahead. While those are in the works, we rolled out a few handy feature updates in August to keep your social media management running smoothly.
The Social Wall: July 2025
Hello everyone! July has brought some exciting new updates to Zoho Social. From powerful enhancements in the Social Toolkit to new capabilities in the mobile app, we’ve packed this month with features designed to help you level up your social media presence.
Use Zoho Creator as a source for merge templates in Zoho Writer
Hello all! We're excited to share that we've enhanced Zoho Creator's integration with Zoho Writer to make this combination even more powerful. You can now use Zoho Creator as a data source for mail merge templates in Zoho Writer. Making more data from
Tagged problem !!!
Damn it, we're one of dozens of construction companies in Africa, but we can't link purchasing invoices to projects. Why isn't this feature available?
Enable Password Import option in ulaa browser
Dear Ulaa Team, I noticed that the Ulaa Password Manager currently offers an option to export passwords, but not to import them. This limitation poses a challenge for users like me who have stored numerous credentials in browsers like Chrome. Manually
Limited review (/questions) for Bookings 2.0
Hi all, I'm writing this review of Bookings 2.0 for two reasons: 1) it may be of interest to others, and 2) I'd like to be corrected if I'm wrong on any points. It's a very limited review, i.e. the things that have stood out as relevant, and particularly
Syntax for URLs in HTML Snippets
What are some best practices for inserting a URL in an HTML snippet? I've looked at Zoho Help articles on navigation-based and functional-based URLs, but I'm still unclear on how to incorporate them in an HTML snippet. For example, 1. How do I link to
The Social Wall: June 2025
Hello everyone, We’re back with June Zoho Social highlights. This month brought some exciting feature updates—especially within the Social Toolkit—to enhance your social media presence. We engaged with several MSME companies through community meet-ups
Make panel configuration interface wider
Hi there, The same way you changed the custom function editor's interface wider, it would be nice to be able to edit panels in pages using the full width of the screen rather than the currently max-width: 1368px. Is there a reason for having the configuration panel not taking the full width? Its impossible at this width to edit panels that have a lot of elements. Please change it to 100% so we can better edit the layouts. Thanks! B.
Tip 7: How to fetch data from another application?
Hi everyone, Following our Zoho Creator - Tips and Tricks series every fortnight, we are back today with a tip based on one of the most popular questions asked in our forum. This tip would help you fetch data from another application(App B) and use it
The Social Wall: May 2025
Hey everyone, We're excited to share some powerful updates for the month of May! Let's take a look! Reply to your Instagram and Facebook comments privately through direct messages Are you tired of cluttered comment threads or exposing customer queries
Sub-Form Fields as Filters for Reports
Hi, I would like to use the Sub-Form Fields as Filters in Reports just like we do for Main Page Fields. Thanks Dan
How to change the format for phone numbers?
Mobile phone numbers are currently formatted (###) ###-####. How can I change this to a more appropriate forms for Australia being either #### ### ### or (#)### ### ###?
Zoho CRM Formula - Current Time minus Date/Time field
Hello, I am trying to prevent duplicate emails going to clients when more than 1 deal is being updated. To do this, I would like to create a formula to identify if a date/time field is >= 2 hours ago. Can someone please help me write this formula? Example:
Per Level Approval for admins
We need Process admins like Zoho CRM in Zoho Books for per stage approval Currently in books, admins only have the option for Final Approval But for example, in cases like when an employee is on leave, we can't just approval one level we only have option
Default Sorting on Related Lists
Is it possible to set the default sorting options on the related lists. For example on the Contact Details view I have related lists for activities, emails, products cases, notes etc... currently: Activities 'created date' newest first Emails - 'created
Billing Management: #7 Usage Billing in Telecom & Internet Service Provider
Telecom and Internet Service Providers operate in markets where usage varies drastically from one customer to another. While flexible, usage-based models align revenue directly with consumption, they also introduce operational challenges like real-time
Zoho Sprints - Q3 updates for 2025
The updates for the third quarter of 2025 are out. A few significant features and enhancements have been rolled out to improve user experience and product capabilities. The following are the updates: Manage tags and cluster tags Record and maintain project
Kaizen #208 - Answering your Questions | Functions, AI and Extensions
Hello Developers! Welcome back to a fresh week of Kaizen! We are grateful for your active participation in sharing feedback and queries for our 200th milestone. This week, we will answer the queries related to Functions and Extensions in Zoho CRM. 1.
Zoho Projects Webhook fails with HTTP Error 0
Hello Zoho Community, I am pulling my hair out over this one. I have setup a very basic http(s) server that always responds "ok" and code 200 to incoming GET requests. It will accept any parameters, and any path. Really, all it does is say "ok," and log
Zoho CRM still doesn't let you manage timezones (yearly reminder)
This is something I have asked repeatedly. I'll ask once again. Suppose that you work in France. Next month you have a trip to Guatemala. You call a contact there, close a meeting, record that meeting in CRM. On the phone, your contact said: "meet me
Creating Restaurant Inventory Management on Zoho
Hi, We run a small cloud kitchen and are interested to use Zoho for Inventory and Composite Item tracking for our food served and supplied procured to make food items. Our model is basically like subway where the customer can choose breads, veggies,
To Zoho customers and partners: how do you use Linked Workspaces?
Hello, I'm exploring how we can set up and use Linked Workspaces and would like to hear from customers and partners about your use cases and experience with them. I have a Zoho ticket open, because my workspace creation fails. In the meantime, how is
Zoho Forms to Zoho CRM : First/Last Name to just Name ?
When integrating a Zoho Form into the Accounts menu of the CRM I'm having trouble with how names are formatted ; In Forms the data is available as First Name or Last Name In the CRM there is only one field called Name How can I ensure that "John" "Smith"
Enhancements to the formula field in Zoho CRM: Auto-refresh formulas with the "Now" function, stop formula executions based on criteria, and include formulas within formulas
Dear Customers, We hope you're well! By their nature, modern businesses rely every day on computations, whether it's to calculate the price of a product, assess ROI, evaluate the lifetime value of a customer, or even determine the age of a record. With
This festive season, offer discounts with coupon code support in Stripe Checkout
Hello form builders! It’s the festive season, the perfect time to spread joy and great deals! Now, with Zoho Forms’ latest enhancement for Stripe Checkout, you can do exactly that with coupon codes! Your payment forms integrated with Stripe Checkout can
Cómo creo una factura negativa o de abono?
NEcesito anular una factura y crear una nueva igual pero en negativo. El sistema no me lo permite
Power of Automation::Streamline log hours to work hours upon task completion.
Hello Everyone, A Custom Function is a user-written set of code to achieve a specific requirement. Set the required conditions needed as to when to trigger using the Workflow rules (be it Tasks / Project) and associate the custom function to it. Requirement:-
Is CRM On Premise available
Hi Zoho team, Can you please let me know that CRM Zoho is available for On Premise as well? Thanks, Devashish
Last activity time is acting like last modified time
When i edit the description or any field in the potential, account, contact and lead, the Last Activity Time is being updated like the Modified Time. This is messing all workflows and reports and we are unable to track real last time of activities like
CRM : Function to add user name to text field
I have a lookup field in a module that is linked to the CRM users so we can assign a Project Lead to the customer. Sadly Zoho Marketing Automation doesn't sync Lookup fields so I need to extract information from the lookup to text fields: Lookup field
Zoho CRM - Restrict Login based on work hours
Hi there, I'm wondering if we can restrict users to login during works - For example the users would be able to login from 8am to 5pm. I have seen the IP address restriction - the only downfall is what if the customer has dynamic IP. thanks Jiri
Tips and Tricks #46: Customize themes and templates using Show's Master View
Hi All! Let's say you want to revamp your presentation and make changes to its visual design. You can do this easily using the Master Slide and its associated layouts. The Master Slide stores information about all the layouts used in the presentation.
Currency abbreviations
Hello, Im stuck, and need help. I need the currency fields for example, opportunity value, or total revenue, to be abbreviated, lets say for 1,000 - 1K, 1,000,000 - 1M, and so on, how should I do this?
Sheet View in CRM portal
Hi, When will it be possible for my CRM portal users to edit/add records with Sheet View? George
Next Page