🏠 首页 / 📂 13-技能库

📄 13.03-用户RFM模型实战应用

📅 日期: 2026-06-04🏷️ 标签: [技能 · RFM · 用户分层 · 精准营销]

13.03 用户RFM模型实战应用

一、问题

痛点: 运营每天面对几十万用户,不知道哪些该花精力维护。发优惠券一视同仁——大客觉得被打扰,羊毛党薅完就走。营销费用不少花,复购率就是不动。 典型场景:
  • 大促前要做用户触达,该优先联系谁?
  • 新品上线想找种子用户,从哪里找?
  • 老客复购率持续下滑,找不到核心目标人群
  • 营销费用ROI<1:3,总监要求精准投放
核心矛盾: 运营资源有限×用户价值差异巨大——必须做分层。

二、学习:RFM模型核心概念

RFM三要素定义

| 维度 | 含义 | 电商场景 | 计算公式 |

|------|------|----------|----------|

| R (Recency) | 最近一次购买距今天数 | 越短越好,用户活跃 | 当前日期 - 最近订单日期 |

| F (Frequency) | 一定周期内购买次数 | 越高越好,用户忠诚 | 统计周期内订单总数 |

| M (Monetary) | 一定周期内消费金额 | 越高越好,购买力强 | 统计周期内消费总额 |

2026年分层标准

统计周期选择(按品类):
  • 高频消费品(生鲜、日化、母婴消耗品):近90天
  • 中频消费品(服饰、美妆、零食):近180天
  • 低频消费品(家电、3C、家具):近365天
  • 直播电商:近30天(复购窗口极短,依赖直播间场景)
评分分箱标准(5分制,以中频消费品为例):

| 分数 | R(最近一次购买) | F(购买次数) | M(消费金额) |

|------|-----------------|-------------|-------------|

| 5分 | 1-7天内 | ≥6次 | >2000元 |

| 4分 | 8-30天 | 4-5次 | 500-2000元 |

| 3分 | 31-90天 | 2-3次 | 100-500元 |

| 2分 | 91-180天 | 1次 | 50-100元 |

| 1分 | >180天 | 0次 | <50元 |

8种典型用户类型

| 编码 | R | F | M | 类型 | 占比(参考) | 策略 |

|------|---|---|---|------|-------------|------|

| 555 | 5 | 5 | 5 | 🌟重要价值 | 2-5% | VIP专属维护,1v1服务 |

| 554 | 5 | 5 | 4 | 💎重要发展 | 3-5% | 引导升级消费 |

| 545 | 5 | 4 | 5 | 🎯重要保持 | 3-8% | 提高复购频次 |

| 455 | 4 | 5 | 5 | 🔄重要挽留 | 1-3% | 召回+关系修复 |

| 511 | 5 | 1 | 1 | 🆕新用户 | 15-25% | 促进二次购买 |

| 111 | 1 | 1 | 1 | 💤流失用户 | 30-50% | 低成本召回或放弃 |

| 其他 | - | - | - | 一般用户 | 余量 | 自动化维护 |

三、分析:案例数据拆解

某食品品牌2026年Q1数据

`

总用户数:150,000人(近180天有交易)

分析结果:

重要价值用户(555/554/545):

- 人数:6,000人(4%)

- 贡献GMV:630万/月(42%)

- 人均月消费:1,050元

- 复购率:78%

- 营销投入:50元/人/月 → ROI 1:21

重要挽留用户(455):

- 人数:3,000人(2%)

- 贡献GMV:180万/月(12%)

- 近来过但频次已下降

- 召回成本:30元/人 → 召回率35% → 召回后月均消费450元

新用户(511):

- 人数:37,500人(25%)

- 刚买过一次,还没复购

- 策略:下单后7天推送"第二件半价"

- 二次转化率从18%提升到34%

流失用户(111/112):

- 人数:60,000人(40%)

- 已超过180天无购买

- 不主动投入,仅做系统触达

- 双11等大促发一次短信,ROI 1:0.5(聊胜于无)

`

四、理解:RFM的底层逻辑

RFM本质是用3个维度给用户的"价值"做量化评分

底层逻辑拆解:

  • R测量的是当下:最近来过=现在还在意这品牌。行为心理学中的"近期曝光效应"——越近接触,越可能再次购买
  • F测量的是过去:多次购买=已经形成习惯。神经科学证明重复行为会形成"习惯回路",F高的用户复购成本更低
  • M测量的是能力:愿意花多少钱=对品牌的支付意愿上限
  • > 三者关系:R是快照(现在在哪)、F是历史(来过多少次)、M是潜力(能花多少)。只看任何单一维度都会误判。

    常见误判:
    • 只看R:最近来的不一定是大客(可能只是领了免费券)
    • 只看F:经常买的可能都是低客单价(薅羊毛专业户)
    • 只看M:买过一次高价品但不复购(一次性冲动消费)

    五、内化:我自己怎么理解RFM

    一句话: RFM是给每个用户画三根柱子——R柱有多新、F柱有多频、M柱有多壕。三根都高的用户是最肥的韭菜。 实战口诀:
    • 555用户:不要发券,要送"专属感"(VIP邀请、新品内测)
    • 511用户:不要等着他自己回来,要推"第二单福利"
    • 155用户:不要放弃,要"大促激活+专属折扣"
    • 111用户:不要硬拉,发条短信就行,回不回来随缘

    六、类比:RFM像投资组合管理

    RFM跟投资组合管理的逻辑一模一样:

    | RFM层级 | 投资组合类比 | 运营策略 |

    |---------|-------------|---------|

    | 555(重要价值) | 蓝筹股(茅台) | 长期持有,不折腾 |

    | 455(重要挽留) | 优质股但近期走弱 | 补仓(召回动作) |

    | 511(新用户) | 新股打新 | 观察期,控制仓位 |

    | 111(流失用户) | 垃圾股 | 果断卖出或放弃 |

    | 一般用户 | 指数基金 | 自动化定投(优惠券自动发放) |

    好的基金经理不会在垃圾股上耗费研究精力——好的运营不应该在流失用户身上花太多预算。

    七、迁移:从电商RFM到其他领域

    应用到内容创作者/自媒体

    • R:最近一次互动时间(点赞/评论/转发)
    • F:月互动次数
    • M:打赏金额/会员订阅金额
    • 策略:高RFM→评论区互动、私信感谢;高R低F→推爆款内容

    应用到SaaS/B2B客户管理

    • R:最近一次登录产品
    • F:月活跃天数
    • M:付费等级(免费/专业版/企业版)
    • 策略:高RFM→1v1客户成功;高R低M→促升级

    应用到线下实体店

    • R:最近一次到店时间
    • F:月到店次数
    • M:客单价+年消费额
    • 策略:高频低价→推会员储值;低频高价→做重要节日触达

    八、实践:动手实现RFM

    方案A:Excel实现(数据量<5万行)

    `

    Step 1:准备数据表

    列:用户ID | 订单日期 | 订单金额 | 订单状态

    筛除:退款订单、测试订单

    Step 2:计算R值(假设基准日为2026-06-01)

    公式:=基准日期 - MAXIFS(订单日期, 用户ID范围, 用户ID)

    解释:取每个用户最近一次下单距今天数

    Step 3:计算F值

    公式:=COUNTIFS(用户ID范围, 用户ID, 订单日期范围, ">=基准日期-180天")

    解释:统计近180天每个用户下了多少单

    Step 4:计算M值

    公式:=SUMIFS(订单金额范围, 用户ID范围, 用户ID, 订单日期范围, ">=基准日期-180天")

    解释:统计近180天每个用户花了多少钱

    Step 5:分箱打分

    用 PERCENTILE 函数分5段:

    R评分:=MATCH(R值, PERCENTILE(R列, {0,0.2,0.4,0.6,0.8,1}), 1)

    F评分:=MATCH(F值, PERCENTILE(F列, {0,0.2,0.4,0.6,0.8,1}), 1)

    M评分:=MATCH(M值, PERCENTILE(M列, {0,0.2,0.4,0.6,0.8,1}), 1)

    Step 6:合并标签

    公式:=R评分 & F评分 & M评分 → 如"555"、"311"

    Step 7:分类

    用IF嵌套或VLOOKUP对照表输出"重要价值"等中文标签

    `

    方案B:Python自动化(数据量>10万行)

    `python

    import pandas as pd

    import datetime as dt

    读取订单数据

    df = pd.read_excel('orders.xlsx')

    设定基准日期

    snapshot_date = dt.datetime(2026, 6, 1)

    数据清洗:只取已完成订单

    df = df[df['订单状态'] == '已完成']

    计算RFM值

    rfm = df.groupby('用户ID').agg({

    '订单日期': lambda x: (snapshot_date - x.max()).days, # R值

    '订单ID': 'count', # F值

    '订单金额': 'sum' # M值

    }).rename(columns={

    '订单日期': 'Recency',

    '订单ID': 'Frequency',

    '订单金额': 'Monetary'

    })

    5分制分箱(用分位数)

    rfm['R_Score'] = pd.qcut(rfm['Recency'], 5, labels=[5,4,3,2,1])

    rfm['F_Score'] = pd.qcut(rfm['Frequency'].rank(method='first'), 5, labels=[1,2,3,4,5])

    rfm['M_Score'] = pd.qcut(rfm['Monetary'].rank(method='first'), 5, labels=[1,2,3,4,5])

    合并标签

    rfm['Segment_Code'] = rfm['R_Score'].astype(str) + rfm['F_Score'].astype(str) + rfm['M_Score'].astype(str)

    用户分类逻辑

    def classify(row):

    r, f, m = int(row['R_Score']), int(row['F_Score']), int(row['M_Score'])

    if r>=4 and f>=4 and m>=4: return '重要价值'

    if r>=4 and f>=4 and m>=3: return '重要发展'

    if r>=4 and f>=3 and m>=4: return '重要保持'

    if r>=3 and f>=4 and m>=4: return '重要挽留'

    if r>=4 and f>=2 and m>=2: return '一般价值'

    if r>=3 and f>=3: return '一般发展'

    if r<=2 and f<=2: return '流失用户'

    return '普通用户'

    rfm['用户类型'] = rfm.apply(classify, axis=1)

    输出结果

    rfm.to_excel('rfm_result.xlsx')

    print(rfm['用户类型'].value_counts())

    `

    工具推荐

    | 方案 | 数据量 | 难度 | 费用 | 推荐场景 |

    |------|--------|------|------|---------|

    | Excel | ≤5万行 | ★☆☆ | 0 | 初创团队快速分析 |

    | Python | 任意 | ★★★ | 0 | 有技术团队 |

    | FineBI | ≤100万行 | ★★☆ | 免费版 | 中型电商日常维护 |

    | 阿里云PAI | 海量 | ★★☆ | 按量付费 | 大型电商+实时RFM |

    | 神策/SDK | 用户行为+交易 | ★★☆ | 商业版 | 需要行为数据联动 |

    九、调整:常见错误及修正

    错题本

    | 错误 | 后果 | 正确做法 |

    |------|------|---------|

    | 使用全量历史数据 | 老用户R被刷低,新客R过高 | 只取近365天数据,逐年滚动 |

    | 退款单计入F | F虚高,误判"退款党"为高价值 | 只统计"已完成"订单 |

    | 不分品类周期 | 低频行业用30天窗口导致大量用户被标"流失" | 按行业平均复购周期×1.5设定 |

    | 忽略节假日效应 | 618/双11后R值异常 | 取淡季数据+旺季数据分开建模 |

    | 用金额绝对值而非分位数 | M值被大客拉偏,普通用户全是低分 | 始终用分位数(Percentile)分箱 |

    | 分层太细 | 27类用户(3×3×3)根本无法执行 | 8-10类足够了 |

    | 只做一次不更新 | 用户状态是动态的 | 高频品类每周重算,中频每月 |

    优化技巧

  • 加权RFM:如果复购率特别重要,给F加权1.5;如果客单价重要,给M加权1.5
  • RFM+行为:加入"近7天浏览次数>5"标记为"高意向",联合RFM使用
  • 计算新客和老客分开:注册<30天的用户用"新客RFM"(只算R+M,F天然低)
  • 动态阈值:不用固定分位数,用行业分位数动态调整
  • 十、成事:实战效果

    案例:某母婴品牌RFM落地

    `

    背景:年GMV 1.2亿,营销费120万/年,复购率22%

    实施前:

    • 群体发券:所有用户发满199-30,ROI 1:1.7
    • 老客流失率:月均8%

    实施RFM分层后(6个月效果):

    • 重点投入555/554用户(5%),ROI提升到1:8.3
    • 511用户(25%)给"第二件半价",复购从18%→35%
    • 111用户(35%)仅大促发短信,费用降60%
    • 整体营销费从120万降至75万,ROI从1:1.7升至1:4.2
    • 月流失率从8%降至3.2%

    总监评价:"省了45万,多赚了180万。"

    `

    RFM的长期价值

    • 首次实现后,每月维护成本<2人天
    • 每次大促触达前跑一次RFM,触达ROI提升2-3倍
    • 可用于商品推荐、客服分级、物流差异化等多场景
    • RFM+LTV结合,可以预测未来3-6个月的收入
    RFM不是做一个分析,而是一个持续运行的运营系统。

    ---

    关联笔记:
    🧠

    我要使用此技能

    开启智囊 · 即学即用

    ¥9.9

    13.03-用户RFM模型实战应用

    ¥9.9

    扫码赞赏后获取下载码

    将军微信

    将军微信

    微信赞赏

    微信赞赏