28、用户分层:RFM模型、用户生命周期价值(LTV)

用户分层这件事,说白了就是回答一个问题:谁才是你真正该花精力去维护的人?

我做了这么多年电商数据分析,见过太多团队把预算平均撒给所有用户。结果呢?高价值用户觉得被冷落,低价值用户薅完羊毛就跑。嗯,这其实是个资源错配的问题。

今天咱们聊聊两个最经典的分层工具:RFM模型用户生命周期价值(LTV)。这两个东西,一个帮你快速给用户贴标签,一个帮你算清楚每个用户到底值多少钱。

RFM模型:三个维度看透用户

RFM模型不是什么新概念,但好用。它从三个维度衡量用户:

  • R(Recency):最近一次购买时间。越近越好。
  • F(Frequency):购买频率。越频繁越好。
  • M(Monetary):消费金额。花得越多越好。

你想想看,一个用户昨天刚下单,一个月买了5次,累计花了2000块。另一个用户半年没来了,只买过一次,花了50块。谁更重要?一目了然。

核心逻辑:RFM模型把每个维度分成高/低两档(或者更多档),组合出不同的用户群体。比如R高、F高、M高的用户,就是你的“超级VIP”。

我在项目中遇到过一家美妆电商,他们用RFM模型把用户分成了8类。结果发现,有一类用户R低(很久没来)、F高(以前买得勤)、M高(花了不少钱)。这类用户其实是被遗忘的老客户,稍微发个优惠券就回来了。嗯,这就是RFM的价值——帮你发现那些“沉睡的金矿”

RFM打分实操

具体怎么做?我习惯用五分制打分。举个例子:

-- 假设我们有一张订单表 orders
-- 字段:user_id, order_date, amount

-- 1. 计算每个用户的R、F、M值
WITH user_rfm AS (
    SELECT 
        user_id,
        DATEDIFF('2024-01-01', MAX(order_date)) AS recency,  -- 距离今天的天数
        COUNT(DISTINCT order_id) AS frequency,
        SUM(amount) AS monetary
    FROM orders
    GROUP BY user_id
)

-- 2. 分位数打分(五分制)
SELECT 
    user_id,
    NTILE(5) OVER (ORDER BY recency ASC) AS r_score,  -- R越小分越高
    NTILE(5) OVER (ORDER BY frequency DESC) AS f_score,
    NTILE(5) OVER (ORDER BY monetary DESC) AS m_score
FROM user_rfm

小技巧:R值打分时要注意方向。最近购买的用户R值小,所以分数要高。别搞反了,我曾经犯过这个错,结果把活跃用户全打成了低分。

用户分层矩阵

打完分之后,把三个分数组合起来。我一般用这个规则:

用户类型 R分数 F分数 M分数 运营策略
重要价值用户 VIP维护,专属服务
重要发展用户 提升购买频次
重要保持用户 召回激活
一般价值用户 促销转化
流失用户 放弃或低成本召回

你看,不同用户对应不同策略。这就是分层的目的——把有限的资源花在刀刃上

用户生命周期价值(LTV):算清楚每个用户值多少钱

RFM模型告诉你用户现在怎么样,LTV告诉你用户未来能贡献多少。说白了,LTV就是一个用户从注册到流失,总共能给你带来多少利润

我刚开始做LTV时,觉得这东西太理论了。直到有一次,我们团队要决定花多少钱去拉一个新用户。如果LTV算出来是100块,那获客成本超过100块就是亏本的。你想想看,没有LTV,你连广告预算都不敢拍板。

LTV的三种计算方法

实际工作中,我常用这三种方式:

  1. 历史LTV:直接算用户过去的总消费。简单粗暴,适合短期分析。
  2. 预测LTV:用模型预测未来消费。适合做决策。
  3. 传统LTV公式:LTV = 平均客单价 × 购买频次 × 留存时长

举个例子,假设你的电商平台:

  • 平均客单价:200元
  • 月均购买频次:0.5次(每两个月买一次)
  • 平均留存时长:12个月

那么LTV = 200 × 0.5 × 12 = 1200元。也就是说,每个用户平均能给你带来1200块的收入。

注意:这个公式算的是收入,不是利润。如果要算净利润,还得扣掉商品成本、物流成本、营销成本等。我曾经见过有人把收入当利润算,结果获客预算超了3倍,差点出事。

用SQL计算LTV

实际工作中,我习惯按用户群组来算LTV。比如按注册月份分组:

-- 按注册月份计算用户群组的LTV
WITH user_cohort AS (
    SELECT 
        user_id,
        DATE_TRUNC('month', register_date) AS cohort_month,
        order_date,
        amount
    FROM orders
    JOIN users ON orders.user_id = users.user_id
)

SELECT 
    cohort_month,
    COUNT(DISTINCT user_id) AS user_count,
    SUM(amount) / COUNT(DISTINCT user_id) AS ltv_per_user
FROM user_cohort
GROUP BY cohort_month
ORDER BY cohort_month

这个查询会告诉你,每个注册月份的用户群,平均每人贡献了多少收入。你可以按月追踪,看看新用户的LTV是在上升还是下降。

RFM + LTV:组合拳打法

我个人习惯把RFM和LTV结合起来用。RFM负责分层,LTV负责量化。举个例子:

  • RFM分出的“重要价值用户”,他们的LTV可能高达5000元。
  • “一般价值用户”的LTV可能只有200元。

这时候你就知道,花100块去维护一个重要价值用户是值得的,但花100块去维护一个一般价值用户就亏了。

核心思路:用RFM做用户分类,用LTV做资源分配。两者结合,才能实现精细化运营。

避坑指南

最后分享几个我踩过的坑:

  • RFM的维度权重:不同行业权重不一样。奢侈品行业M更重要,快消品行业F更重要。别一刀切。
  • LTV的时间窗口:计算LTV时,时间窗口要统一。有人用12个月,有人用24个月。我建议至少覆盖一个完整的购买周期。
  • 数据口径:RFM和LTV的数据源要一致。我曾经因为订单表和用户表的时间戳不一致,算出来的结果完全对不上。

嗯,用户分层这件事,说到底就是把用户当人看。不同的人,不同的对待方式。RFM和LTV只是工具,真正重要的是你愿不愿意花时间去理解你的用户。

用户分层核心逻辑图 用户原始数据 RFM模型 R:最近一次购买 F:购买频率 M:消费金额 LTV计算 历史LTV 预测LTV 传统公式 用户分层标签 用户价值量化 精细化运营策略

无相订单流研究社 微信Lucian808555