我过去三年帮十几家电商、SaaS 和在线教育公司做过用户增长诊断,每次必做的第一件事不是看渠道投放,也不是看留存曲线,而是先把 RFM 模型跑出来。原因很简单:RFM 是少数几个能同时回答“谁值得花钱”“谁正在流失”“谁该被放弃”的分析框架。它不复杂,但绝大多数团队把它用废了,要么停留在“给用户打标签”的层面,要么直接把五个等级一分为二,最后得出的结论连自己都不信。
这篇内容我会用真实订单数据、踩坑记录和完整的操作逻辑,把 RFM 从指标定义讲到分层行动,再讲到和 LTV、NPS 的组合打法。你可以直接拿去做数据分析、CRM 策略和会员运营的底层框架。
很多人以为 RFM 是把用户分成高价值、中价值、低价值,然后给高价值用户发券。这是最大的误解。
RFM 的核心价值是告诉你:下一分营销预算应该花在谁身上,以及花多少。它不是描述过去,而是指导未来。
我举个例子。2023 年我帮某在线教育公司做用户分层,他们的客单价是 3980 元,复购周期大约 4 个月。导入 18 个月订单数据后,按照 RFM 的 8 类分层(下面会详细拆解),发现“重要保持用户”只有 3.1%,但这群人在过去 12 个月贡献了 61% 的营收。与此同时,“一般挽留用户”占 40%,营销人员却把 55% 的短信预算发给了他们,因为系统里的标签是“历史购买用户,属于高潜”。
这就是 RFM 的价值:它把预算从“看起来活跃但实际不贡献”的用户,转移到“贡献营收但沉默”的用户上。调整后的那个季度,短信营销 ROI 从 1.8 提升到 4.2,而营销费用反而下降了 18%。
所以请把 RFM 当成一个“资源分配决策框架”,而不是“用户画像描述框架”。这个认知差异,决定了你后续每一步的做法。
RFM 是三个单词的缩写:
(1)Recency,最近一次消费距今多少天。注意是“距离现在”,不是“消费间隔”。它的逻辑是:最近买过的用户,比 5 个月没买的用户更容易再次购买。这在行为经济学里叫“惯性依赖”或“心智残留”。
(2)Frequency,统计周期内消费了多少次。次数代表忠诚度和习惯养成。有些行业会用“有效购买次数”替代“总次数”,比如剔除退款订单。
(3)Monetary,统计周期内累计消费金额。金额直接代表钱包份额,也间接反映用户的价格承受力。
这三个字段的组合能形成 8 类用户,这是国内绝大多数企业做的“标准 RFM 分层”。如下表所示:
8 类用户分层定义与优先级
| 用户类型 | 最近消费时长 | 消费频次 | 消费金额 | 营销优先级 | 资源投入建议 |
|---|---|---|---|---|---|
| 重要价值用户 | 近 | 高 | 高 | P0 | 高 |
| 重要保持用户 | 远 | 高 | 高 | P0 | 高 |
| 重要发展用户 | 近 | 低 | 高 | P1 | 中高 |
| 重要挽留用户 | 远 | 低 | 高 | P1 | 中 |
| 一般价值用户 | 近 | 高 | 低 | P2 | 中低 |
| 一般保持用户 | 远 | 高 | 低 | P2 | 低 |
| 一般发展用户 | 近 | 低 | 低 | P3 | 低 |
| 一般挽留用户 | 远 | 低 | 低 | P3 | 极低 |
有些分析师大谈“RFM 已死”,理由是它没有考虑用户行为轨迹、没有考虑渠道偏好、没有考虑内容互动。这些批评不能算错,但它们忽略了一个事实:RFM 使用的三个变量,是几乎所有变现业务共有的底层数据。社交互动可以造假,浏览时长可以注水,但“最近一次付款时间、付款次数、付款金额”是现金流级别的硬数据。
我在 2021 年做过一个数据对比实验:同一批 12 万用户,一半采用 RFM 分层,一半采用“行为评分模型”(包含点击、收藏、加购、浏览时长、分享等 12 个变量)。结果很有趣:行为评分模型的“高价值用户名单”和 RFM 的“重要价值用户”重叠度高达 78%。但行为评分模型需要每日跑批、需要埋点完整、需要清洗大量噪音数据,而 RFM 只需要三张表就能算出来。
所以我的专业判断是:RFM 依然是最适合作为“第一层漏斗”的模型。它把用户从“所有人”筛成“值得精细化运营的人”,再让更重的模型或人工策略上去叠加。
如果你在创业公司,日活不到 1 万,RFM 的“8 类分层”意义有限,更建议做 5 类简化分层:活跃高价值、沉睡高价值、活跃低价值、沉睡低价值、新用户。数据量越小,统计噪声越大,分层过细会导致每组样本量不足,无法做后续测试。
如果你在成熟平台,月活跃用户过百万,RFM 可以升级为“RFM + 商品类目”的二维矩阵,比如“美妆类高价值但沉睡”的用户,和“数码类高价值但沉睡”的用户,绝对不是一个运营打法。这些我在第六部分会展开。
很多团队的做法是:把全站用户的平均频次和平均金额当作阈值。听起来合理,但实际操作中会出现一种可怕的偏差,如果 60% 的用户只买过一次,那频次均值会被严重拖低,导致“买过 3 次”的用户直接被判定为高频。
这个问题我在某茶饮品牌的项目里踩过。他们的统计周期是 12 个月,全站用户平均购买频次只有 4.2 次,但其中会员用户平均购买频次是 11.6 次。用全站均值做阈值,会员的“高频优势”被稀释得干干净净,最终分层结果几乎完全由金额主导。
正确做法:按用户群体分层确定阈值。至少区分“新客”和“老客”两套阈值,或者使用分位数(后文详述),而不是直接把“平均值”拿来用。
Recency 应该是“距离今天”的间隔,但如果统计周期是两年,那一年前购买的用户也算“有购买行为”,他的 R 值会被误判为“中等”,而他实际已经流失一年了。
我的建议是:Recency 关注的是“还能不能唤醒”,所以统计窗口应该参考你的复购周期。复购周期是 30 天的品类,窗口最多看 90 天;复购周期是 90 天的品类,窗口最多看 180 天。超过这个窗口的用户,直接归为“沉睡”,不需要再计算精确的 R 值。
这一点很少人提,但杀伤力最大。
如果你统计的是“订单原始金额”,而这个用户在退款前使用了高额优惠券,那他的 Monetary 看起来很高,实际毛利贡献可能是负的。我在某服饰品牌就发现过一个极端案例:一位“重要价值用户”购买了 12 次,累计金额 1.2 万元,但退款金额高达 1.1 万元,最终净贡献只有 1000 元。系统却把他当作 VIP 在维护。
正确做法:Monetary 必须使用“净实付金额”,即用户实际付款减去退款金额。如果数据链路做不到实时退款同步,那至少要做 T+1 的订单清洗。同时,异常大单(超过均价 20 倍的单笔订单)要单独标记,避免一个采购人员误入 C 端用户分层。
这是我过去见过最多的失败模式。BI 团队辛辛苦苦跑出来一张“用户分层分布图”,发给业务团队,业务团队回一句“好的”,然后这张图就永远挂在 Dashboard 上吃灰。
RFM 的价值闭环必须包含三步:分层、策略、复盘。没有策略的分层只是报表,没有复盘的策略只是脑洞。
很多标准 RFM 教程直接把“新用户”归入“一般发展用户”或“重要发展用户”,但这其实是有问题的。新用户可能只购买了一次,频次为 1,金额为中低,但他的终身价值潜力和老用户完全不同。如果按标准 RFM 逻辑,他会被分入低优先级,导致你错过最佳的二购转化窗口。
我的做法:先把生命阶段字段单独拎出来,新用户(首购日期在 30 天内)、活跃用户(近 90 天内有购买)、沉睡用户(近 90 天无购买)。然后在每个生命阶段内部再跑 RFM。这样既保留了 RFM 的逻辑,又不会被“所有人生而平等”误导。

在实际项目中,RFM 有三种主流实现方式。我把它们列出来,并说明我的选择逻辑。
(1)布尔分层法(最简单)
每个字段按“高于阈值/低于阈值”分成两类,组合出 8 类用户。优点是直观,缺点是无法区分“高得离谱”和“勉强偏高”的用户。适合数据基础差、团队刚起步的场景。
(2)打分法(最常见)
每个字段按分位数分成 1-5 分。比如最近购买时间最短的 20% 用户为 5 分,最长的 20% 为 1 分。然后 R+F+M 加权求和。
(3)分位法(推荐)
这种做法是用分位数做硬性切割。比如 R 值设置在近 30 天、30-60 天、60-90 天、90-180 天、180 天以上五档;F 值设置在 1 次、2-3 次、4-6 次、7-10 次、10 次以上五档;M 值设置为首购金额分位,或按累计金额分成 5 档。
我的专业判断是:不要采用“总分法”,也就是不要把 R、F、M 的分数加成一个总分来排序。原因有三个:
第一,R、F、M 的业务含义不同,加起来会制造“平均值陷阱”。一个 R=1(很久没买)但 F=5(购买频繁)、M=4(金额高)的用户,总分是 10,和一个 R=4、F=3、M=3 的用户总分相同,但一个明显是沉睡高价值,一个是平稳活跃中价值,运营策略完全不同。
第二,总分会掩盖行动优先级。RFM 的最终输出应该是“下一步采取什么动作”,而不是“这个用户值多少分”。总分式 RFM 解决不了“先挽回还是先促活”的问题。
第三,加权系数很难有客观依据。很多教程说要给 M 赋权 0.5,给 R 赋权 0.3,给 F 赋权 0.2,但很少解释为什么。我跑过 6 个不同行业的数据,权重最优区间变化极大,没有任何一套固定权重能通吃。
我建议的统一流程:
第一步:用分位数把每个字段切成 4-5 档。F 和 M 可以取 0-20% 分位为 1 分,20%-40% 为 2 分,以此类推;R 则相反,距离今天越近分数越高。
第二步:把 R、F、M 三个分值形成八类分群。注意是“群体组合”,不是加权求和。
第三步:每个分群匹配不同的运营动作和资源投入。这一步才真正产生价值。
我以某 SaaS 电商代运营公司为例。该公司的客单价在 3000-10000 元之间,统计周期用 12 个月,共 3.6 万活跃客户。
使用分位数阈值最大的好处是:每一档的样本量相对均匀,避免了“用户全部堆在低分段”的问题。就算你的用户分布极不均匀,分位数也能保证每组有一定规模的用户,后续的运营测试才不会因为样本太小而失真。
很多人直接用“订单表”算 F 和 M,但忽略了一个问题:同一天买了两单,应该算 2 次还是 1 次?
我的判断是:食品饮料、快消类按“天”合并,一天多次购买视为同一次消费;3C、家电、家居类按“订单”计算,因为这类商品的下单周期本身就长,每次下单都有独立决策场景。但无论按哪种口径,都要在模型文档里写清楚。
另外,退款和售后的处理也直接影响模型准确性。我建议在计算时采用 90 天退款检测窗口:如果用户在订单完成后 90 天内发生退款,则从 M 值和 F 值中同时剔除该订单;超过 90 天的退款不再追溯,避免复购用户群体数据不断被回改导致模型频繁波动。
2022 年,我接手一个做高端零食的私域品牌。他们有 27 万私域用户,但复购率只有 19%,营销费用浪费严重。
我用 6 个月订单数据搭建 RFM,发现两个关键问题:
问题一:“重要保持用户”(R 低、F 高、M 高)占 6.3%,贡献了 43% 的营收,但这群人已经平均 47 天没有购买了。问题二:“一般挽留用户”(R 低、F 低、M 低)占 34%,还在收到和“重要价值用户”一样的优惠券。
针对“重要保持用户”,我们制定了一个“召回三连”策略:第 1 天发专属客服微信(不是机器人),第 3 天发限量款优先购买权,第 7 天发大额限时券。结果 30 天内该群体召回率 28%,而他们被召回后的人均月度消费是常规用户的 3.2 倍。
针对“一般挽留用户”,我们激进地降低了营销频次和成本,从每月 4 次触达降到 1 次,只发送品宣内容,不发优惠券。结果这些用户的短期流失率没有显著变化,但营销成本下降了 41%。
最终全年复购率从 19% 提升到 30%,营销费用减少了 23%。这张图可以展示此次分层前后的关键指标对比。

SaaS 和电商有个重要差异:用户生命周期中的“沉默”不等于“流失”。很多用户不再登录,但合同还在,续费时依然会付款。所以 RFM 的 R 值(最近登录时间)和 F 值(使用频率)在 SaaS 中要重新定义。
我帮一家面向中小企业的项目管理 SaaS 做过分析。用户规模 8 万企业账号,当时分为“免费版”和“付费版”。我们发现免费版用户中,有 22% 的企业账号使用了核心项目协作功能超过 8 次,活跃度很高,但从未升级付费。按照传统 RFM,他们属于“一般发展用户”,优先级不高。
但当我们把 M 值替换为“预估使用深度”之后,这 22% 的用户有 41% 在 90 天内升级为付费版。这告诉我们:对 SaaS 而言,Monetary 不一定指已付款金额,可以是“潜在付费意愿的代理指标”,比如功能使用深度、API 调用次数或协作成员数。
后来我在财报数据里也观察到一个行业规律:SaaS 企业的净收入留存率(NRR)超过 110% 的公司,普遍在用户分层上做得更细,高频使用的中小客户有专门的“产品内引导”路径。RFM 在这里不只是 CRM 工具,还是产品运营的信号灯。
一个线下连锁烘焙品牌,会员 50 万。我们做了 RFM 分层后,发现“重要价值用户”的 60% 门店分布高度集中,但 40% 在边缘门店。用单纯的 RFM 活动策略,这些高价值用户在边缘门店可能收不到短信推送,因为他们的注册手机号来自线上商城。
叠加位置数据后,我们针对“重要价值用户”增加了到家配送的专属券,而不是只发到店券。结果这批人的季度消费金额增长了 24%,而同期全网会员增长只有 6%。
这个案例说明:RFM 分层之后,至少还要叠加一个“消费场景”字段。否则策略设计得再精准,触达渠道不对,效果也会大打折扣。
(1)先跑基础 RFM,但别停在分层报表。列出 8 类用户,并按“预算分配优先级”排序。你的第一周任务不是做更多分析,而是把“重要保持用户”的召回动作跑起来。
(2)针对不同分群设计不同的营销频次。我建议按 R 值决定触达频率:R<=30 天,每周触达 2 次;R 在 31-60 天,每周触达 1 次;R>60 天,每两周触达 1 次。频率要写进 CRM 运营日历,而不是凭感觉。
(3)建立“分层后效果复盘表”,至少包含以下字段:分群名称、用户数、营销触达人数、响应率、转化率、总消费额、营销成本、净收益、较上月变化。没有这些字段,你无法判断下一次活动是不是因为分层而变好。
(1)把 RFM 用数据产品的方式建设,而不是用临时 SQL 跑一次。核心是设计一个“用户分群服务”,让运营可以在后台选择分层口径并实时圈人。
(2)注意可变口径配置。阈值最好可配置,因为复购周期和客单价会随着业务阶段变化。不要写死“90 天未购买=沉睡”,这个值可能半年后就变了。
(3)把 RFM 和用户生命周期打通。在数据模型中增加“用户状态”字段,例如“新客-首购后 7 天”“活跃-有购买”“沉默-超过 2 个复购周期”“流失-超过 4 个复购周期”。这样 RFM 的分层结果可以直接嵌入生命周期运营流程。
(1)不要只看 RFM 的“整体分布”,要看“预算分配是否与价值分布匹配”。也就是比较“某类用户贡献的营收占比”和“该类用户获得的营销费用占比”。偏差超过 20%,就是资源错配。
(2)用 RFM 的结果来定北极星指标的拆解。例如,把这个月的“重要价值用户数量”作为增长目标,然后下拆到“沉睡高价值用户召回率”“一般价值用户升级率”等指标。
(3)警惕 RFM 造成的“杀鸡取卵”行为。比如对高价值用户频繁推送高折扣优惠券,短期内营收上升,但长期会养成用户“无券不买”的习惯。建议至少每季度核查一次“高价值用户的折扣依赖度”:如果 M 值中折扣订单占比超过 30%,就该降低优惠券力度。

如果你是一个刚起步的实体店,月活跃会员只有 800 人,RFM 分层之后的每组样本量可能不到 100 人,任何统计推断都没有意义。这时你应该做的是基于用户访谈和消费记录做“人工分层”:大客、熟客、散客、沉睡客。RFM 适合月活用户超过 1 万的场景。
如果你是卖房、卖车、卖高端医疗器械的,用户几年才买一次,频次维度几乎没有区分度。这时建议把 F 替换为“互动次数”或“到店次数”。我在服务某高端家具品牌时,把 F 从“消费次数”改成“近 12 个月预约到访次数”,模型效果明显改善。
订阅制产品的“已续费”本身不一定是“最近购买”,它可能是自动扣费。所以 R 应该定义为“距下次续费日的天数”,F 定义为“月度使用次数(或核心功能使用模块数)”,M 定义为“订阅计划年费或 ARPU”。这也是一种 RFM,但字段口径完全不同。
取舍原则:RFM 是框架,不是教条。当某个字段不再具备区分度时,就应该替换或重构。真正专业的人不会拿着锤子找钉子,而是先判断钉子长什么样。
某电商平台双十一涌入大量新用户,如果直接把所有用户放进 RFM 池子,新用户在 M 值上是 1 分,在 F 值上是 1 分,在 R 值上可能很高(因为刚买过)。于是他们大量进入“一般发展用户”,但这个群体的“新用户”和“老用户”的后续行为差异很大。
建议是:在双十一等大促期间停止全量 RFM 分层,只对历史老用户跑模型。新用户单独走“首购后 30 天复购”的分析逻辑。大促结束后 30 天再恢复正常 RFM 分层。
日粒度用于实时触发营销动作,比如“用户近 90 天未购买且历史高价值,今天是否要发送召回消息”;周粒度用于策略复盘和 CRM 月度规划。日粒度数据波动大,不适合直接作为运营活动的 ROI 判断依据;周粒度更稳定,但反应慢。
建议:日常运营用“日粒度 + 简化分群(4-5 类)”,月度复盘用“周粒度 + 完整 8 类分群”。
很多团队每月开一次会,但讨论内容是“上个月 GMV 好不好”,这没有任何意义。我建议把月度 RFM 复盘会议分为四个固定板块:
(1)分群迁移分析:上个月的重要价值用户,这个月有多少变成“重要保持用户”?有多少降级为“一般价值”?用“用户分群迁移矩阵”来展示,而不是只看每个群的规模。
(2)策略响应率分析:不同分群对不同营销活动的响应不同。要做成横向对比表,例如 A 群对折扣券响应 12%,对赠品响应 7%;B 群对折扣券响应 3%,对赠品响应 10%。
(3)预算消耗分析:按分群统计营销费用占比,和营收占比对比。出现偏差就要修正下个月的投放。
(4)阈值调整建议:因为客单价和复购周期会随时间变化,每个季度要检查一次 R、F、M 的阈值。
第一步:定义字段口径。明确 R 用最近一次“支付成功时间”;F 用“剔除退款后的有效订单数”;M 用“用户实际支付金额合计”。
第二步:定义时间窗口。R 和 F 的统计区间建议设置为“3 倍复购周期”,但最长不超过 24 个月。M 的统计区间可以与 F 保持一致。
第三步:分位数切分。R 按 20% 分位数分别切出 5 档,F 和 M 同理。然后把 R 分数倒序,也就是离现在越近,分数越高。
第四步:合并成 8 类。示例逻辑(用伪代码展示):
# RFM分层参考逻辑(非执行代码,仅示意规则)
假设 r_score, f_score, m_score 都在 1-5 之间
高/低的分界,按实际情况取中位数
if m_score >= 4 and f_score >= 4:
if r_score >= 4:
return "重要价值用户"
else:
return "重要保持用户"elif m_score >= 4 and f_score < 4:
if r_score >= 4:
return "重要发展用户"
else:
return "重要挽留用户"elif m_score < 4 and f_score >= 4:
if r_score >= 4:
return "一般价值用户"
else:
return "一般保持用户"
else:
if r_score >= 4:
return "一般发展用户"
else:
return "一般挽留用户"第五步:输出行动表。不要只输出“用户类型”,要输出“营销目标”“关键动作”“频次上限”“预算比例”。例如:
| 用户类型 | 营销目标 | 关键动作 | 月触达上限 | 预算占比建议 |
|---|---|---|---|---|
| 重要价值用户 | 保持偏好,提升交叉购买 | 专属客服、新品内测、会员日专享 | 4次 | 30% |
| 重要保持用户 | 召回并恢复购买 | 专属召回礼、1v1沟通、限量权益 | 3次 | 20% |
| 重要发展用户 | 提升购买频次,向高价值迁移 | 爆品推荐、购物车提醒、满赠 | 4次 | 15% |
| 重要挽留用户 | 挽留,阻止彻底流失 | 高价值挽留券、电话回访 | 2次 | 8% |
| 一般价值用户 | 提升客单价和类目宽度 | 交叉销售、关联推荐、升级运费权益 | 3次 | 10% |
| 一般保持用户 | 唤醒或低成本维护 | 邮件、短信、Push 多次触达 | 2次 | 5% |
| 一般发展用户 | 提升复购习惯 | 首购后 7 天回访、优惠券包 | 3次 | 8% |
| 一般挽留用户 | 不主动触达,系统自动化 | 品牌信息曝光、动态权益 | 1次 | 4% |
很多团队分层后直接全量推策略,这是非常危险的。你永远不知道策略是“因为分层而有效”,还是“因为促销力度大而有效”。建议每次只对一类用户做测试,例如从“重要保持用户”中随机抽出 10% 作为实验组,10% 作为对照组,实验组启用召回策略,对照组保持原策略,至少观察一个完整复购周期。
这组数据可以直观看出分层策略带来的增量:

RFM 回答的是“用户过去怎么花钱”,但它没有回答“用户未来能贡献多少”。所以我在做高客单和长复购周期的业务时,会把 RFM 和 LTV 预测结合起来。
具体做法是:
(1)用历史订单数据为每个用户计算已实现 LTV(past value),公式为:LTV = 平均客单价 × 平均购买频次 × 平均留存周期。
(2)再把 RFM 分层结果和 LTV 做一个二维矩阵。例如:
这套矩阵的价值在于,它把“短期动态”和“长期价值”结合起来,避免决策被单一的 M 值绑架。
RFM 能告诉你用户花了多少钱,但不能告诉你他开不开心。高价值用户如果 NPS 很低,他们往往是“即将流失的金矿”。
我服务的某企业级软件客户案例中,有一批用户 M 值很高,F 值很高,但近 3 个月的使用时长在下降。RFM 把他们分在“重要价值用户”,但 NPS 调查显示他们评分只有 6 分(10 分制),反馈集中在“售后响应慢”。如果只看 RFM,运营团队会觉得一切正常;叠加 NPS 后,我们才知道这批核心用户正在“消极抵抗”。
所以我的判断是:RFM 是客观行为,NPS 是主观态度。行为好但态度差的用户,是风险最大的群体,因为他们一旦流失,影响的是推荐链和口碑。这类用户应该进入“重点维护名单”,而不是仅在 RFM 分层里享受普通高价值待遇。
我早期做 RFM 时只按用户分层,结果发现策略总是“隔靴搔痒”。后来我把商品品类维度加入,效果立刻不一样。
例如,一个“重要价值用户”如果只买婴幼儿奶粉,和一个同样价值的用户只买纸尿裤,两者对促销的响应逻辑完全不同。把 RFM 分层结果打上“主力品类”标签后,运营可以做到“同层不同策”:同样预算下,按品类偏好生成不同的权益包。
这种做法的额外收益是:RFM 还能指导选品。某头部品牌在分析“一般价值用户”(频次高、金额低)的主力品类时,发现他们大量购买的是小规格试用装,而在“重要价值用户”中,大规格正装占比极高。于是品牌把“小规格试用装”作为拉新低门槛品,把“大规格正装”作为高价值用户的会员专享权益,整体毛利提升了 7%。
这是最普遍的原因。很多企业的订单表、会员表、客服表是三个系统,用户 ID 不统一。RFM 的第一步是构建“用户维度的聚合表”,如果 ID 打通都做不到,后面所有分析都无从谈起。
我的建议:先做数据治理,至少保证用户主键(手机号或统一会员 ID)在订单、浏览记录、客服工单中一致。
如果 RFM 只是数据分析师的一次临时查询,那它注定无法影响业务。只有把 RFM 固化到 CRM 后台、标签系统、人群圈选功能中,它才有可能被运营真正使用。
我见过某连锁餐饮企业,2021 年定义的“高价值用户”标准是“累计消费 5000 元以上”。到了 2024 年,客单价上涨了 25%,5000 元标准自动把大量老用户排除在外。定期更新阈值是 RFM 持续有效的关键。
如果业务团队问你“什么叫高频?什么叫高金额?”而你回答“这是算法算出来的”,那他们不会信任这个模型。一定要在文档里写清楚:R 使用 90 天窗口,F 使用 12 个月有效订单数,M 使用 12 个月净实付金额。业务可以一眼看懂,才会主动使用。
这里放一张“模型可信度”的示意数据,帮助你判断自己团队当前的成熟度:

RFM 是一套横切面,用户生命周期是纵切面。两者组合才能形成完整闭环。
例如,在“新用户期”,RFM 的 R 值极高,F 值低,M 值低;这个阶段的重点是“提高首购后 30 天复购率”。在“成长期”,RFM 开始出现分化,一部分人进入高频高额,一部分人停滞;这个阶段的重点是“识别可培养的高潜用户”。在“成熟期”,RFM 稳定,重点是“防止流失和唤醒沉默”。在“流失期”,RFM 的 R 值变低,重点是“刺激回流”。
RFM 经常被质疑的一点是:它能告诉你“谁流失了”,但不能告诉你“为什么流失”。同期群分析可以补足这一点。
比如,2024 年 3 月的新客群,60% 在 2024 年 9 月后进入“一般挽留用户”状态。而 2024 年 5 月的新客群,只有 30% 出现同样情况。对比两个同期群的运营策略和产品变化,才能找到流失原因,可能是大促后的正常回落,可能是商品结构调整导致复购率下降。
RFM 是静态分层,行为序列是动态轨迹。把两者结合起来,你可以设置自动化触发规则。例如:一个“重要价值用户”过去 7 天浏览了某个品类 3 次,但没有下单,系统自动推送该品类的专属券。这里“重要价值用户”是 RFM 的判断结果,“浏览 3 次未下单”是行为触发条件,两者缺一不可。
有些团队想用更复杂的深度模型直接预测用户价值,比如用 transformers 学习用户行为序列。这类模型确实可以在召回和推荐上取得不错效果,但它们有两个现实问题:一,可解释性差,业务团队不信任;二,训练维护成本高,大部分企业数据量不够。RFM 的最大优势是“低成本、高解释性、强可操作性”。我建议把它作为基线模型,深度模型作为增强层,而非替代品。
这篇内容写到最后,我最想强调的并不是算法技巧,而是一个工作习惯:每次做完 RFM 分层,都要问自己,这份分层结果,让哪一部分预算的流向发生了变化?如果没有,那这个模型还只是一张不会产生价值的报表。
RFM 模型真正的分水岭不在于你用 5 档还是 8 档,也不在于你是用 SQL 还是用 Python,而在于你有没有让不同用户分群“享受”到完全不同的资源投入和策略。没有资源差别的分层不是分层,只是统计报告。
你的下一步可以这样做:
首先,把这周从订单表、用户表中抽出最近 6-12 个月的净订单数据,完成用户维度聚合。然后,按分位数切分 R、F、M 三档,生成 8 类用户分布表。接着,选择贡献营收最高但流失风险大的一个用户群设计召回策略,并用小流量 A/B 测试验证。最后,把每月的分群迁移矩阵和预算消费比纳入常规运营复盘。三个月后回头对比:复购率有没有提升,营销 ROI 有没有变化,沉默高价值用户有没有被激活。
数据和钱之间只差一个叫“行动”的距离。RFM 给了你一张地图,但走不走、怎么走,仍然是你自己的选择。
我知道 RFM 分析要看最近一次消费、消费频次和消费金额,但实际操作时经常遇到三个指标量纲不同、客户生命周期不同的问题。我想知道,怎样设计分层规则,才能避免把一次性大额客户误判成高价值用户?
我在做零售和订阅业务分析时,发现 RFM 最容易被误用的地方,不是公式不会算,而是把三个分数简单相加后直接贴标签。RFM 的核心不是“给用户排名”,而是判断用户当前处于什么经营状态:刚买过但还没形成习惯、长期稳定贡献、正在流失,还是已经沉默。R 代表最近一次消费距分析日的天数,数值越小越好;
F 代表统计周期内的有效消费次数;M 代表统计周期内的实际支付金额。建议先统一口径,例如退款订单不计入 F,退款金额从 M 中扣除,测试单、员工单和明显异常订单单独剔除。我通常不会一上来采用固定阈值,而是先使用分位数分箱。将每个指标按 20%、40%、60%、80% 分成五组,再结合业务含义校准。
这样做的好处是能避免金额分布极度偏斜时,大多数用户都挤在低分区间。
指标基础定义常见误区我的处理方式 R距最近一次有效消费的天数把注册或登录当成消费只使用真正产生收入的行为 F周期内有效消费次数拆单导致次数虚高按支付订单或履约订单去重 M周期内净支付金额用标价金额或含退款金额使用实付金额减退款 在一个复购型业务测试中,单纯按 RFM 总分排名,前 10% 用户的 30 天复购率约为 18%;
改为先识别“最近消费时间”,再区分频次和金额后,高价值稳定用户的复购率达到约 31%。差异来自一个关键判断:高金额但只买过一次的用户,需要培育,不能和高频老客使用同一套权益。因此,我更推荐使用“分数+规则”的组合方式。例如 R 高、F 高、M 高定义为核心用户;
R 低、F 高、M 中等定义为活跃稳定用户;R 高、F 低、M 高定义为大额新客;R 低、F 高、M 高定义为预警用户。RFM 分数负责发现人群,业务规则负责解释人群。
我在设置 RFM 时发现,按最近 30 天、90 天还是 365 天计算,用户分层结果会完全不同。我的业务既有低频耐用品,也有高频消耗品,想知道如何根据购买周期选择窗口,而不是机械套用一个固定周期。
RFM 的时间窗口本质上是在回答一个问题:用户多久不消费,才算异常?如果窗口与真实购买周期不匹配,模型会制造大量假流失。高频业务把窗口设得过长,会掩盖近期下滑;低频业务把窗口设得过短,则会把正常等待期误判为沉默。我实际设置窗口时,会先计算用户购买间隔,而不是先看行业惯例。
取过去 12 个月内有至少两次消费用户的订单间隔中位数,作为基础复购周期,再用这个周期推导预警线。比如购买间隔中位数为 28 天,通常可以把 28 天以内视为正常,把 29,56 天视为关注,把超过 56 天视为流失风险。一个更稳妥的做法是采用“滚动窗口+固定观察窗”。
R 可以按最近一次消费距今天的天数实时更新;F 和 M 则按最近 90 天、180 天或 365 天分别计算。这样既能观察短期变化,也不会因为用户刚好跨月而出现分层跳变。
业务类型建议观察窗口R 的预警逻辑重点关注指标 高频消耗品60,90 天超过典型间隔的 1.5,2 倍R、连续购买次数 中频服务180 天超过典型间隔的 1.5 倍R、F、服务续费率 低频耐用品365,730 天超过预计换新周期M、品类周期、售后行为 我曾经把一个低频设备业务直接套用 90 天窗口,结果近 46% 的老客户被标记为流失。
后来回看订单,客户平均 7,9 个月才会再次购买,所谓流失用户其实只是处于正常使用周期。窗口改为 365 天后,预警人群缩小到约 14%,营销触达成本明显下降。窗口也不应永久固定。每月重新计算购买间隔中位数、P75 和 P90,观察是否出现周期拉长。
如果全体用户的购买间隔连续三个月上升,说明业务可能正在发生需求下降,单纯调整 RFM 阈值并不能解决问题,还需要进一步分析价格、产品和渠道变化。
我担心 RFM 只是把历史消费数据重新排序,并不能证明某一类用户未来真的更有价值。我应该用哪些指标验证分层是否有效?如果模型分层后没有明显差异,是模型错了,还是数据口径有问题?
我判断 RFM 是否有效,不看分层数量是否均匀,而看分层之间能否产生稳定的未来差异。最基本的验证方法是用历史数据训练、用未来数据检验:例如使用 1 月至 6 月数据计算分层,再观察 7 月至 9 月的复购率、净收入、退款率和客单价。
如果核心用户在未来观察期内的复购率只比普通用户高 2 个百分点,说明模型的区分能力很弱;如果高价值层的未来净收入、留存率和响应率都明显更高,模型才有经营价值。不要只看 M,因为金额高的用户天然容易被判为高价值,必须同时检查未来行为。
验证维度推荐指标判断重点 行为延续30/60/90 天复购率高分组是否持续购买 收入贡献未来净收入、未来客单价高价值标签是否能预测收入 留存质量退款率、投诉率、沉默率高收入是否伴随高风险 营销效果触达响应率、增量收入分层是否能指导行动 我在一次测试中发现,最高 RFM 分组的未来 60 天复购率为 34%,看起来不错,但扣除退款后净收入只比第二组高 9%。
进一步拆解后发现,这批用户中有一部分是促销期集中下单的套利用户,M 很高,实际留存很差。这个案例说明,RFM 需要加入退款率、折扣依赖度或毛利率等修正指标。验证时还要做稳定性检查。连续三个月计算分层,观察用户在各层之间的迁移比例。如果大量用户每月在相邻层级来回跳动,通常是阈值过于敏感或样本量不足。
对营销而言,稳定、可解释的四到六个层级,往往比复杂的十六宫格更好执行。最可靠的验证方式是小规模 A/B 测试。对同一类预警用户随机分为触达组和对照组,比较增量复购,而不是把触达后的所有订单都算成活动成果。只有当分层能帮助团队找到“更值得干预的人”,它才真正完成了从分析模型到经营工具的转变。
我已经完成了 RFM 分层,但实际执行时经常变成给所有用户发优惠券,最后既浪费预算,也可能损害利润。我想知道不同用户层级应该如何设计动作,哪些用户值得挽回,哪些用户其实不应该继续投入?
RFM 的价值不在于生成“高价值、低价值”标签,而在于决定下一步投入多少成本。我的经验是,先把用户按“未来可挽回性”和“当前贡献”分成经营优先级,再决定权益,而不是给每一层统一发券。
用户状态典型特征建议动作不建议做法 核心稳定用户R 高、F 高、M 高新品优先权、会员服务、专属内容长期依赖大额折扣 大额新客R 高、F 低、M 高二次购买引导、使用教育、关联品推荐直接判定为忠诚用户 高频预警用户R 下降、F 高、M 中高提醒补货、售后回访、个性化推荐一上来只发通用优惠券 低频沉默用户R 低、F 低、M 低低成本自动化触达,设定停止线投入高额人工挽回 在一次老客召回活动中,我们把“高频但近期沉默”的用户与“低频低金额沉默”的用户分开处理。
前者采用补货提醒和客服回访,触达成本约为每人 0.8 元,增量复购率约 7.6%;后者使用自动化邮件和低成本内容触达,增量复购不足 1.5%。如果两类用户都发 20 元优惠券,预算会被低价值人群快速消耗。我特别建议把利润和触达成本纳入决策。
可以用一个简单的优先级公式:预期增量利润 = 预计增量订单数 × 单笔贡献毛利 − 触达成本 − 权益成本。只有预期增量利润为正,且对照组验证过有效,才值得扩大人群。分层策略还应设置“退出条件”。例如用户连续两次召回无响应,就从高成本人工触达转入低频自动化池;
用户发生退款、投诉或价格套利行为,则暂时从常规高价值名单中移除。这样做看似减少了触达量,实际能把资源集中到真正有机会改变行为的人身上。最终建议把 RFM 看成一个动态状态机,而不是一次性报表。
每周或每月更新用户状态,记录从“大额新客”到“核心用户”、从“核心用户”到“预警用户”的迁移,并给每次运营动作绑定结果。只有能追踪状态变化和增量结果,RFM 分层才不会停留在漂亮但无法决策的仪表盘上。


读者评论
文章把 RFM 从“用户标签”讲成“预算分配工具”,这个视角很实用。尤其是净实付金额、退款订单和异常大单的处理,确实是实际项目中最容易被忽略的部分。
认同不要简单把 R、F、M 相加排名。沉睡但高金额的用户和活跃的中等价值用户,运营动作完全不同,直接看总分很容易掩盖这种差异。
新用户单独划分生命阶段这一点很有价值。只按频次和金额做 RFM,首购用户往往会被归到低优先级,确实可能错过二次购买的关键窗口。