
如果你手里的客户已经多到没法“一视同仁”恭喜你这本身就是个增长问题。很多运营朋友恰恰在第一步就卡住了资源有限、精力有限谁值得优先投入谁还在观望谁已经悄悄离开光靠“最近谁下了单”或“谁买得最多”这类单一指标很容易被表面数据带偏。这里的解法就是在CDA数据分析体系里反复出现的RFM模型——用最近一次消费时间间隔Recency、消费频率Frequency、消费金额Monetary三个维度交叉评估客户把“高价值客户”从几千几万人里精准挑出来。这篇内容不绕理论直接从实操角度讲清楚RFM怎么算、怎么打分、怎么分层、怎么制定后续策略无论你是做电商运营、会员体系、线下零售还是准备考CDA证书都应该能直接用上。1. 为什么要给客户“分三六九等”RFM解决的到底是什么问题1.1 单指标判断客户的致命伤我见过太多团队是这样运营客户的一看后台数据某位客户历史消费5万元立刻标记为“VIP重点客户”所有的新品测评、大额优惠券优先发给ta。然后呢这位客户已经有7个月没有打开过你们的小程序了。另一头一个刚注册两个月、累计消费800块的客户每个月都稳定复购却因为“金额不高”被无视。这种单指标客户分群的误区本质上把“历史贡献”和“未来潜力”混为一谈了。单看消费金额你只知道人家过去花了多少钱单看最近消费时间你又容易被“刚购买一笔小额订单”的活跃假象欺骗单看消费次数更是完全无法区分“买十次小东西”和“买一次大件”。所以RFM模型的关键价值在于它不是用一个指标去衡量客户而是把三个互相关联但各有侧重的指标叠在一起交叉生成立体画像。用生活化的说法R解决的是“这人还活着吗”F解决的是“这人是不是常客”M解决的是“这人出手阔不阔绰”。三个问题回答完你才算真正认识这位客户。1.2 为什么不是CLV、不是AARRR偏偏是RFM可能有人会问客户价值的衡量不是有更复杂的CLV客户终身价值模型吗还有AARRR漏斗模型、波士顿矩阵为什么偏偏要学RFM原因其实很务实。CLV模型要预测客户未来还能贡献多少利润需要大量历史交易数据、生命周期模型甚至机器学习方法很多中小团队根本没有那个数据基础。AARRR是流量和增长层面的框架它关注的是“拉新-激活-留存-变现-传播”漏斗而不是单个客户个体的价值分层。波士顿矩阵拿来给产品SKU做资源分配更合适。RFM恰恰站在“模型有效性”和“落地成本”的平衡点上。只要你的业务有成体系的订单表客户ID、下单时间、订单金额三行SQL就能把三个指标算出来。不需要高深算法不需要漫长建模周期同时它给出的分层结果重要价值客户、流失客户等又能直接翻译成运营动作。这也是为什么RFM能成为经典中的经典在CDA等各类数据分析认证考试中也是绕不开的考点。1.3 RFM的三个假设默认可行的前提RFM之所以成立有下面几个前提假设近期购买过的客户再次购买的概率更高消费频率高的客户忠诚度和消费习惯已经养成消费金额大的客户钱包份额更高价值体量更大。这几点放在大多数B2C商家对消费者场景下是成立的但也不是没有例外。比如建材、家装这类低频高客单行业客户一辈子可能只买一两次用“消费频率”去衡量价值就非常局促。如果你的业务天然就是低频大额就要在F维度上做调整比如把“频率”改成“购买品类数”或“参与活动次数”。这是很多新手第一次用RFM最容易踩中的行业适配问题后面我会专门展开讲。2. 进入RFM实操之前先把三个维度的口径吃透2.1 R维度Recency“最近一次消费”的三大定义问题R指的是客户最近一次下单日期距离分析截止日期的天数。天数越短代表客户最近越活跃。这个维度看似简单实际执行中至少有三个需要商量的地方。第一个问题是时间口径。如果今天是6月1日一位客户最后一次下单是5月28日R就是4天另一位客户是2024年11月下单R大约是180多天。这里的“分析截止日期”必须是统一切算的不能有的客户用今天、有的客户用上周否则整个分层就乱套了。第二个问题是统计周期。有些业务还要考虑是否只统计“有效订单”。退货、仅退款、取消的订单要不要剔除如果一位客户下单1000元然后立刻退款R被算成了“今天刚买过”这会让活跃度失真。一般建议至少剔除已取消和全额退款的订单。第三个问题是行业节奏。像生鲜、外卖这类高频业务R的差异以天甚至小时计超过7天没下单就已经是流失预警了而家具、汽车这类低频大额业务R的差异以月甚至季度计。直接在两个行业里套用“R30天以上算不活跃”这类经验值是行不通的。2.2 F维度消费频率的“一次”到底怎么数F统计的是分析周期内客户完成了多少次有效消费。这里最常被问到的就是一次下单买了三件商品算一次还是算三次按行业惯例F通常按“订单数”而不是“商品件数”来统计因为一次下单背后的决策、支付、履约是一整套闭环代表客户一次完整的购买意愿。对于同一订单购物车里的多件商品可以理解为一位客户单次需求集合而不应视为多次独立消费。但要注意的是不同业务对“一次”的定义完全可以不同。淘宝这类综合电商按订单数数F是合理的而一些会员电商或线下业态客户每次逛店都会产生连续小票这时候按“消费天数”去重反而更符合实际——今天去同一家店买了三次东西更应该算一次到访。2.3 M维度销售额、毛利、还是支付成功金额M维度代表客户在统计周期内消费的总金额。这个维度有三个口径建议用错会导致你判断“价值”出现偏差订单金额口径订单页面上的金额包含优惠前的原价最容易失真实付金额口径客户实际支付的钱扣除了优惠券、满减、会员折扣建议作为默认口径毛利口径实付金额减去商品成本最接近“客户给企业创造了多少利润”适合做高质量价值判断。实操中如果我只能跟团队说一条那就是默认用“已支付且未全额退款的实付金额”这是最稳妥的标准。等后续数据体系成熟了再往毛利口径升级。2.4 三维度放一起客户画像的“立体”才刚开始举一个具体例子。客户A和客户B都消费了1000元从总金额看两者是完全相同的。但A是上个月单笔消费999元B是一年内分成12次、每次八九十元的复购。两个人的RFM三个维度完全不同A的R很近但F1B的R适中且F12。如果只盯着M你会把这两个人归为一类看完RFM三个维度才能意识到A是“可转化大客户”、B是“稳定复购小客户”后续策略完全是两个方向。这就是RFM模型的真正价值它把客户从“纵向历史总结”升级成“横向多维比较”。也可以说RFM的意义不在于它有多高深而在于它逼着你从三个角度分别回答三个问题——这个客户还活跃吗这个客户依赖我们吗这个客户能带来多少收入3. 打分是RFM的灵魂评分标准怎么定才合理RFM分层的第一步不是算数而是给三个维度各自打分。很多人在这一步拍脑袋结果后面全部白做。打分标准不同客户分组的结果天差地别。下面按“从简到繁”的顺序讲四种打分方法。3.1 分位数法新手最推荐的上手方式分位数法是最常见、最简单的打分方案。做法很直接把所有客户按R值从小到大排序切分成N等份每份赋予一个分数。比如采用五分位组内排序R从小到大前20%客户得5分20%-40%得4分40%-60%得3分60%-80%得2分最后20%得1分。F和M是做升序排列后同样处理前20%得5分以此类推。这里的核心原则是R值越小距离分析日越近得分越高F和M值越大得分越高。为什么推荐分位数法因为它是数据驱动的不依赖主观经验且能保证每组客户数量大致均衡。你用pandas里的一行pd.qcut就能完成切分。但它的局限是切分点完全跟着当前客户分布走如果这段时间客户整体活跃度提升那么现阶段“5分”的门槛也会相应提高。每次打分得到的绝对数值在不同期之间不可直接对比。3.2 业务经验值法有数据积累之后的精细化分位数法适合第一次搭模型、没有太多业务判断依据的情况。但如果你已经知道“这家店90天以上不消费的客户二次触达成功率只有3%”再等分位数来切分就有点浪费业务信息了。经验值法的逻辑是根据业务经验直接设定分数区间。比如R维度0-7天5分8-30天4分31-60天3分61-90天2分91天以上1分F维度同样设置对应的订单数区间。这种方法的好处是各分数段含义明确、可解释性强时间窗口也贴合业务节奏。缺点是打分阈值靠人拍不同团队拍出来的结果很可能不同且如果客户分布发生变化比如某段时间新客大量涌入可能需要重新校准区间。一个折中方案先跑一遍分位数把切分点打出来看下业务上是否合理再根据业务经验微调形成“分位数起步经验值兜底”的混合式评分表。3.3 要不要加权三个维度不是完全平等的RFM的默认用法是三维度等权三者同样重要。但在实际业务里三个维度的重要性未必相同。比如同样面对一个促销活动一个高频低客单价客户与一个低频高客单价客户哪个更值得投入这类问题没有标准答案。如果你所在行业复购率本身较低R维度的价值就会放大如果你的客单价高但消费频次天然低M维度的权重就应该拉高。加权的做法通常是给三个维度的分数乘上权重系数后加总比如0.4×R 0.3×F 0.3×M。怎么定权重我个人建议不要拍脑袋可以用两个方法找一个初始值一是让运营团队对一批抽样客户进行人工价值排序再逆推各维度的贡献权重二是跑完分层后对比各层的实际GMV占比如果某一维度的区分对GMV贡献非常微弱就说明这个维度的权重可以下调。3.4 重要的前提统一时间窗口和口径打分之前还必须做好两件事。一是统一分析周期比如只统计过去365天的数据。二是把订单数据清洗到位剔除测试订单、已取消订单、全额退款订单同一客户跨设备、跨账号的订单尽量关联到统一ID平台有刷单嫌疑的订单建议人工剔除。很多团队在RFM模型上翻车不是打分算法的问题而是源头数据不干净测试订单混进来、退款订单没清洗掉、同一客户拆成两个ID都会让R和F出现大面积假象。大数据分析有一条铁律计算之前先确认数据是可信的计算之后再回头验证数据。4. 从三组分数到八个客户群分层逻辑与阈值设置4.1 八类客户是怎么切出来的打完分之后每位客户手上有了R_score, F_score, M_score三个分值接下来要做的是把这些分值翻译成业务上的客户类型。最经典的做法是以平均值为界限进行二分。分别计算所有客户R得分、F得分、M得分的均值然后将每个客户的三项得分与均值比较。高于均值记为“高”用H表示低于或等于平均值记为“低”用L表示。三个维度各自二分2×2×2就能组合出八种类型。比如一位客户R5、F4、M5三项全部高于均值就是典型的重要价值客户R1、F1、M1三项全部低于均值就是一般挽留客户。这里有个细节值得单独说清楚分界线到底用均值还是中位数业界两种都有。均值容易受极端大客户影响如果存在几个消费几十万的大客户M均值会被拉得很高一大波正常客户会被压到“M低”区间中位数更抗极端值在该场景下通常更稳。我的习惯是第一次跑用中位数同时把均值也打出来对比如果两者差异很大说明数据存在明显长尾以中位数为主并在报告里说明。4.2 八类客户特征速查表客户类型RFM典型特征价值判断重要价值客户高高高最近在买、经常买、花得多核心利润贡献者重要发展客户高低高最近在买、花得多、但买得少值得培养的高潜客户重要保持客户低高高花得多、买得勤、但有一阵没来需要唤醒的成熟客户重要挽留客户低低高花得多但很久没来且买得少要争取挽回的流失大户一般价值客户高高低常来、次数多、但单次金额不高高活跃但低客单一般发展客户高低低最近来了一次、金额不大新客或偶发客一般保持客户低高低买得不少但最近没来半休眠老客一般挽留客户低低低很久没来、买得少、花得少基本流失边缘这张表看起来简单但团队讨论客户策略时拿它去对号入座是最高效的。你一眼就能看出哪些客户应该进“重点召回池”哪些客户可以交给自动化流程处理。4.3 用三维度均值切分 vs 用总分切分除了直接用三维度与均值对比还有一种常见做法是把三项得分加总得到总分RFM_Score然后按总分高低把客户分几个档位比如60分以上为核心客户。这种做法胜在计算简单同样适合做客户分层展示。但它的缺点也很明显两个总分相同的人RFM维度可能截然相反。一个是“R低但F和M双高”另一个是“R高但F和M双低”前者的流失风险和后者的成长潜力完全不同一个总分看不出这种差异。所以如果是“精准识别高价值客户”这个目标我个人更推荐八类分组法而不是单纯总分法。总分法更偏向于做客户价值排名的粗筛八类法更偏向于做有策略差异的精细分群。两种手段可以叠加使用先按八类法分层再在同一层级内按总分排序确定资源投入的优先级。4.4 客户群的可视化呈现三维散点与四象限分层完成之后建议把结果可视化出来。最简单的方案是画一个三维散点图X轴是R、Y轴是F、Z轴是M点的大小可以代表客户金额。或者把M固定为点的大小/颜色画一个二维的R-F散点图再叠加四象限分割线。四象限图中右上角那块是高R高F客户高概率地集中着你最需要关注的高价值群体左下角的低R低F客户则基本处于沉睡区。我自己的习惯是多画一层把八类客户分别统计人数和GMV占比做成一个占比条形图。很多时候你会惊讶地发现少数重要价值客户贡献了超过一半的GMV这就是二八法则在客户分层里的直观呈现。这张图拿去做汇报比任何文字都更有说服力。5. 从零跑通一次RFM客户分层Python实操全流程前面几节讲原理和口径真正让人卡住的是代码怎么落地。下面这份脚本我尽量写得可以直接复制修改就上线用。以下用pandas实现RFM计算、打分、分层的完整流程数据量几千到几十万条都够用。5.1 准备数据最少只需要三列先模拟一份最小可用的订单数据。为了便于演示我用随机数据生成10000个订单客户数大约2000人。import pandas as pd import numpy as np from datetime import datetime, timedelta # 设置随机种子保证每次运行结果一致 np.random.seed(42) # 模拟客户ID与订单数据 n_orders 10000 customer_ids np.random.randint(1000, 3000, n_orders) # 约2000位客户 order_dates [datetime(2024, 1, 1) timedelta(daysint(np.random.rand()*540)) for _ in range(n_orders)] amounts np.round(np.random.exponential(scale200, sizen_orders), 2) df_orders pd.DataFrame({ customer_id: customer_ids, order_date: order_dates, amount: amounts }) df_orders df_orders.sort_values(order_date).reset_index(dropTrue)实际业务中你的订单表只需要有客户ID、下单时间、订单金额这三列其他字段一律不需要。如果有多平台、多店铺的数据先把它们合并成一张明细表并统一ID口径。5.2 三步算出R、F、M# 分析截止日期取订单表最大日期1天 analysis_date df_orders[order_date].max() timedelta(days1) # 1. 最近一次消费时间间隔R df_r df_orders.groupby(customer_id)[order_date].max().reset_index() df_r[R] (analysis_date - df_r[order_date]).dt.days # 2. 消费频率F df_f df_orders.groupby(customer_id)[order_date].count().reset_index() df_f.columns [customer_id, F] # 3. 消费金额M默认取实付金额口径 df_m df_orders.groupby(customer_id)[amount].sum().reset_index() df_m.columns [customer_id, M] # 合并三个结果 df_rfm df_r[[customer_id, R]].merge(df_f, oncustomer_id).merge(df_m, oncustomer_id) df_rfm.head()这里注意几点分析截止日期用订单表最大日期的次日即可不必强行取“今天”这样不同期之间口径一致更好解释如果订单表里有取消、退款状态要在这里预先过滤掉groupby之后的count是所有订单数如果你想按“消费天数”去重改成df_orders.groupby(customer_id)[order_date].nunique()。5.3 分位数打分与八类分层# 打分按五分位切分 def rfm_score_quintile(df): df df.copy() # R值越小越活跃分数越高 df[R_score] pd.qcut(df[R].rank(methodfirst), 5, labels[5,4,3,2,1], duplicatesdrop) df[F_score] pd.qcut(df[F].rank(methodfirst), 5, labels[1,2,3,4,5], duplicatesdrop) df[M_score] pd.qcut(df[M].rank(methodfirst), 5, labels[1,2,3,4,5], duplicatesdrop) df[[R_score,F_score,M_score]] df[[R_score,F_score,M_score]].astype(int) return df df_rfm rfm_score_quintile(df_rfm) # 分层与中位数比较高于取1否则取0 med_r df_rfm[R_score].median() med_f df_rfm[F_score].median() med_m df_rfm[M_score].median() df_rfm[R_level] np.where(df_rfm[R_score] med_r, 高, 低) df_rfm[F_level] np.where(df_rfm[F_score] med_f, 高, 低) df_rfm[M_level] np.where(df_rfm[M_score] med_m, 高, 低) # 用组合标签映射客户类型 def rfm_label(row): r, f, m row[R_level], row[F_level], row[M_level] mapping { (高,高,高): 重要价值客户, (高,低,高): 重要发展客户, (低,高,高): 重要保持客户, (低,低,高): 重要挽留客户, (高,高,低): 一般价值客户, (高,低,低): 一般发展客户, (低,高,低): 一般保持客户, (低,低,低): 一般挽留客户, } return mapping.get((r,f,m), 未知) df_rfm[customer_type] df_rfm.apply(rfm_label, axis1)提示上面打分逻辑里R、F、M都先做rank再qcut是因为F和M两个指标的分布通常是严重右偏的很多客户M值很低甚至为0F值为1直接qcut在重复值过多时会出现分箱边界重叠甚至报错。rank先给相同数值一个确定的名义排名就能让qcut稳定工作。R也统一用rank写法是为了避免极端情况下R值大量并列导致的分箱问题。5.4 结果检验各层客户人数和GMV占比# 各层人数 type_count df_rfm[customer_type].value_counts() print(type_count) # 各层GMV占比用原始M求和 gmv_by_type df_rfm.groupby(customer_type)[M].sum().sort_values(ascendingFalse) gmv_by_type_pct gmv_by_type / gmv_by_type.sum() * 100 print(gmv_by_type_pct)跑完这段你大概率会看到一个典型的分布重要价值客户人数占比不到20%GMV占比却可能接近一半。这正是RFM分层最直观的产出也是支撑后续运营资源分配的基石。如果跑出来各层人数过于均匀或者GMV占比完全平铺那就要回头检查打分阈值是不是定得太随意了。6. 识别完之后不是终点八类客户对应的运营策略很多同学学RFM模型是为了“分层”分层之后却没有动作模型沦为一张标签表。本节我直接把常见的运营动作逐层拆解你可以对照自己的业务微调。6.1 高价值客户重点维护别用“撒券”毁掉利润池重要价值客户高R高F高M是整个客户池的利润核心运营关键词是“少打扰、多关怀、给特权”。这些客户对产品和品牌已有深度信任此时再频繁推送促销反而可能让ta觉得烦。更合适的手段包括建立专属客服通道、设立会员等级权益新品优先体验权、延长售后周期以及节日问候等纯关系维护动作。记住一个原则对这类客户你要做的是提升终身价值而不是诱发短期客单。重要发展客户高R低F高M是典型的“有钱但还没养成习惯”的客户。ta最近买过、舍得花钱但次数还不多。运营重点是引导多买打“使用场景延伸”和“会员体系绑定”两张牌。比如某客户刚买过一台咖啡机你可以推送咖啡豆定期购的订阅方案或者发放“满3次升级”的金卡进度提醒。把单次大额消费者往高频复购方向带动。6.2 有流失风险的客户要“抢时间”重要保持客户低R高F高M的特征是曾经很值钱现在正在流失。这种客户打电话或者发信息的优先级应该排在所有客户的最前面。运营动作上建议用“专属召回”而不是公开撒券一张全场通用券对所有客户的效果几乎是均等的而一个“老会员回归礼包限时积分翻倍”的定向激活方案对唤醒沉睡老客更有效。重要挽留客户低R低F高M则是“走了但曾经有钱”的客户。M高说明他们钱包份额高过低R低F说明最近完全没活跃迹象。这类客户适合做最后介入的重度召回电话回访、专属客服邀请、乃至寄送实物小样都属于可以考虑的手段。用过之后如果仍无反应可以逐渐降低运营投入把成本转移到高价值客户身上。6.3 一般客户自动化优先人工精力往后放一般价值客户高R高F低M存在的问题很典型活跃度满分、忠诚度不错、但客单价太低。这类客户适合用组合销售和门槛升级来提升客单。比如买够98元免运费而ta目前平均客单只有60元。稍微推一把凑单就能抬升客单。值得注意这类客户往往人数众多一定要用自动化流程支撑为人工运营腾出精力。一般发展客户高R低F低M大多是注册不久的新客或偶发购买客户。这时候运营目标是“尽快促成第二次购买”因为多数业务的复购率拐点就出现在首单后30天内。可以发放短期有效的复购券也可以推“首次购买用户专享”的再次优惠把新客往高F方向拉。一般保持客户低R高F低M有一段时间没来但历史频次尚可。唤醒成本不宜过高一条Push推送、一封召回邮件就能覆盖。一般挽留客户低R低F低M各项指标全面触底建议只做最低成本的自动化触达比如每月一条品牌动态不要在这群人身上投入太多人工资源。6.4 一张策略速查表客户类型优先级核心动作手段示例重要价值客户P0维护增值专属客服、会员权益、新品体验重要发展客户P0提频交叉销售、订阅方案、升级引导重要保持客户P0激活老客召回礼包、限时积分翻倍重要挽留客户P1重度挽回电话回访、专属优惠、实物小样一般价值客户P1提客单满减凑单、捆绑套餐一般发展客户P1促复购短期复购券、首购专享一般保持客户P2低成本唤醒Push、邮件召回一般挽留客户P3低投入维持品牌动态推送、不做人工干预这张表看着简单但真正落实的时候你还要给每个策略配上触发条件、预算额度、效果回收口径。RFM只负责告诉你打谁怎么打打的力度多大需要你把它跟营销自动化流程结合起来。7. 做RFM模型最常见的五个坑以及我怎么绕开的最后这部分把我实际跑RFM过程中踩过的坑集中说一下。很多坑光看教材根本碰不到但只要跑真实数据就一定会遇到。7.1 统计数据口径不一致最常见的坑R用的是全量历史订单而F、M只取最近90天。你会发现有些客户R3天特别活跃但F0M0——这种人往往是被一个很久之前的活动“激活”的老客数据却怪得没法解释。更正确的做法是给R、F、M设置同一个统计窗口比如都取过去365天保持三方口径一致否则客户画像会自相矛盾。7.2 新客户被误判成“流失”一位客户昨天刚注册今天买了首单你会得到R非常近、F1、M可能100元。如果拿均值或中位数做分界线这位客户很容易被划进“一般发展客户”甚至“一般挽留客户”。这显然不合理——客户不是流失了而是才刚刚进入你的生命周期。我的处理方式把首次下单时间不足30天的新客户单独拎出来不参与RFM打分或者拍板一个规则注册首月的新客一律按“高R”处理单独进新客运营池。RFM描述的是“存量客户”的价值状态新客户天然不满足这个场景。7.3 两个维度高度相关时的“冗余”F和M两个维度在数学上往往高度相关消费次数多的人累积金额通常也更大。很多团队做出来发现R和M的相关系数接近0.6甚至更高开始怀疑模型的必要性。我的看法是相关性高不代表可以砍掉其中一个维度。F高M低的客户频繁小额购物和F低M高的客户低频大额购物是完全不同的两类消费者前者适合走量促销后者适合做专属大单跟进。只要这两类客户在业务上存在模型就值得保留。反过来如果你们的业务里全体客户都呈现“买得越多次花得越多”相关系数高到无法区分也可以考虑只用R和M简化模型省去F这要结合业务判断。7.4 静态快照RFM需要定期更新RFM模型天然是“当前状态”的快照。上个月重要的价值客户这个月没消费就可能掉级这个月的一般发展客户下个月也可能跃迁成重要发展客户。如果只在年度大促结束后跑一次然后那张标签表用一年结果基本上会失真。实操上我会把RFM计算做成每月定时任务。在每月月初跑一次全量分层输出当月客户分层报表并与上月做流转对比。哪部分客户升级了、哪部分客户降级了、哪部分流失了这些“流转”信息比单纯的静态分层更有运营价值。比如某个月重要保持客户数量突然变大说明有一批高价值老客正在整体沉默需要立即启动召回。7.5 行业适配RFM不是所有业务都适用的万能钥匙最后一条最容易被忽视。生鲜、外卖、快消品、电商零售这类高频消费行业RFM天然合适。但像装修建材、汽车销售、大型设备这类低频大额行业客户一年可能就买一次F几乎没有区分度再比如保险、理财这类强关系型业务更需要结合客户的生命周期阶段来做判断RFM只能作为辅助变量。如果你面临的恰好是上面的低频行业可以尝试RFM的改进版把F替换为客户参与互动的频次打开App、浏览页面、参与活动把M替换为当前在途合同金额或账户总资产。维度还是三个但指标定义跟着业务走。记住RFM是一种方法论不是一组固定的列名。用对了是利器用错了就是一张没有业务含义的标签表。在最终落地时我特别建议一件事在跑RFM之前先把运营团队拉在一起把“重要价值客户”的定义谈清楚。有的团队认为年消费5000以上就是重要客户有的团队认为高频复购才重要还有团队觉得拉新能力强才重要。这个定义没对齐后面所有的打分、分层、策略都会跑偏。RFM模型能帮你看清客户但前提是你们已经想清楚自己要看什么。至于模型本身它最让我喜欢的一点是真正做到“从理论到报表再到运营动作”的一次走通。每次给团队讲客户分层我都会强调分层不是用来给客户贴标签的而是用来做决策的。如果分层之后你不知道该给哪类客户发什么优惠、用哪个渠道触达、投入多少预算那这个模型就白跑了。这也是我希望这篇内容能帮你跨过的那道坎。