More in Product analytics
- Autocapture and the AI event inbox
- Build a funnel that explains drop-off
- Identify users across web, app and mini-programs
- What is autocapture, and how does it work?
- How do I review and accept events in the inbox?
- What are unplanned events, and how do I manage them?
- When should I use a funnel instead of a goal or path?
- How do I build a funnel?
- How do I read where a funnel drops off?
- What is identified mode, and should I turn it on?
- How do I call login to identify a user?
- How is one person merged across devices?
- How does identity work on apps and mini-programs?
- How do I track clicks on outbound links?
- How do I track file downloads?
- How do I track form submissions?
- How do I track custom events?
- How do I track button clicks?
- How do I create a heatmap?
- How do I track scroll depth?
- How do I track ecommerce purchases and revenue?
- How do I set up goals and track conversions?
- How do I query my data with SQL?
- How do I create a custom metric?
- How do I analyze accounts with groups?
- How do I connect AI agents with MCP?
- How do I ask the AI assistant about my data?
- How do I create user segments?
- How do I record and watch session replays?
- How do I analyze user paths?
- How do I build a retention report?
- How do I analyze how an event is distributed?
- How do I create a tracking plan?
- How do I view a user’s profile and activity?
- How do I read the lifecycle report (new, returning, resurrecting, dormant)?
- How do I compare attribution models for a conversion?
- All guides in this category
Still have a question?
Could not find it? A person reads every message, usually within a few hours on business days.
Chat with usShort answer
Once purchases reach the order ledger, open All-platform analytics › Business › Commerce & revenue › RFM segments. TapCub scores every buyer from the last 365 days on recency, frequency and monetary value (1 to 5 each, by quintile) and places them in 11 segments, from champions to hibernating, with the change versus 30 days ago. To use RFM groups in funnels or campaigns, create a segment of type RFM under Users › Segments & tags.
RFM stands for recency (how recently someone bought), frequency (how often) and monetary value (how much they spent).
Before you start
Send purchases so they land on the order ledger, with an order id and amount. See track ecommerce purchases. Without orders the RFM grid is empty. People with no purchase are left out of RFM; they are not scored as 1.
How scoring works
Buyers are ranked on each dimension and cut into five equal bands (quintiles), scored 1 to 5. A more recent purchase scores higher on recency.
Example with 1,000 buyers (sample data): each band holds about 200 people. A customer whose last order was 5 days ago is among the 200 most recent, so R = 5. With 2 orders they fall in the middle band for frequency, F = 3. Having spent $180, in the second-highest spending band, M = 4.
Because scores are relative, a "5" means "top fifth of your buyers", not a fixed threshold. When your customer base changes, the cut-offs move.
Read the 11 commerce segments
The grid plots recency score against frequency score, with headcounts at the end of the selected range.
| Segment | Typical meaning | What to do |
|---|---|---|
| Champions | Bought recently, often, and spend a lot | Reward, ask for reviews and referrals |
| Loyal | Buy regularly | Offer upgrades, loyalty perks |
| Big spenders | High monetary value | Personal service, premium offers |
| New | First purchase recently | Onboarding, second-purchase incentive |
| Potential loyalists | Recent, a few orders | Membership, bundles |
| Promising | Recent, low frequency so far | Build habit with relevant follow-ups |
| Need attention | Average across the board, slipping | Limited-time, personalized offers |
| About to sleep | Below average recency and frequency | Reactivation with popular products |
| Cannot lose | Used to buy often and a lot, not lately | Win-back with high-value outreach |
| At risk | Were good customers, long time since last order | Reconnect, ask what changed |
| Hibernating | Low on all three | Low-cost reminders, or let go |
Read the headcount and change for each segment first, then the moves table, which lists the largest movements between segments versus 30 days ago. Someone who was in a segment 30 days ago and has no purchase in the current lookback appears as churned in the moves; it is not a segment you can open.
Create an RFM segment for funnels and campaigns
- Go to All-platform analytics › Users › Segments & tags and create a segment of type RFM. Creating one needs an owner, admin or analyst role.
- Choose the purchase event, the amount property (leave it empty to score on counts) and the lookback.
- Save. The segment has 10 buckets, compares recency with the average of the frequency and monetary scores, and is recomputed daily with moves stored.
- Open a bucket to see members, or use the segment in a funnel, retention analysis or export. See create user segments.
The 10 segment buckets and the 11 commerce segments use different data and edges. Do not add their headcounts together.
Where the product engagement score is
The same documentation page covers the product engagement score (PES), which measures adoption, stickiness and growth for products without purchases. Find it under All-platform analytics › Business › Product engagement; configure core events on the PES tab of Configuration › Business settings.
FAQ
Why do the commerce page and my segment show different headcounts? The commerce page uses ledger purchases from the last year and has a big-spender segment. Your segment uses your own event, amount property and lookback, and the bucket edges differ.
Are amounts converted to one currency? On the commerce page, yes: it uses the converted base currency on each order. A segment that sums an event property uses the raw value.
Related
Did this answer your question?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.