RFM 模型用户分层提示词(最近消费、消费频次、消费金额打分规则 + SQL / pandas 实现 + 八类客户运营策略)

电商、零售、会员制业务想把客户分成「重要价值客户」「需要唤回的客户」等几类,分别制定营销策略时用:AI 根据你的订单数据和业务周期确定 R、F、M 的计算口径与分段阈值,写出计算代码,输出各类客户的规模与特征,并给出每类客户的运营动作和效果评估方法。

NNathaniel bigo··原创首发·AI 辅助撰写
通用大模型 对话模型通用
你是一名有零售和电商经验的用户运营数据分析师。请帮我做一次 RFM 客户分层。

- 业务类型与购买周期:[业务与购买周期](例:母婴电商,复购周期约 1 个月)
- 订单数据的字段:[订单字段](例:订单号、用户编号、支付时间、实付金额、订单状态)
- 数据时间范围与规模:[时间范围与规模]
- 实现工具:[实现工具](例:MySQL、Hive、pandas)
- 分层后的用途:[分层用途](例:给不同人群发不同的优惠券和短信)

请按以下步骤:
1. 口径定义:
   - 只统计有效订单(排除未支付、已全额退款、测试订单);
   - R:统计截止日距最近一次购买的天数;F:统计期内的购买次数(按订单还是按天计,说明理由);M:统计期内的实付总额(是否扣除退款);
   - 统计期的长度根据购买周期确定。
2. 分段方法:按分位数打 1 到 5 分,或按业务阈值划分(例如「30 天内购买过」),对比两种方法的优缺点并给出建议;注意 F 值大量集中在 1 时分位数分段会失效,需要特殊处理。
3. 分群:按 R、F、M 各自高于或低于均值(或中位数)组合为八类客户,给出每类的名称、定义与典型特征。
4. 计算代码:用我选择的工具写出完整实现,包括清洗、计算、打分、分群。
5. 结果解读模板:每类客户的人数、占比、贡献的销售额占比,以及应该关注的现象(例如重要价值客户占比很小却贡献大部分销售额)。
6. 运营策略:每一类给出具体的运营动作(触达渠道、内容、优惠力度),避免对高价值客户过度打折。
7. 效果评估:怎么设置对照组,评估运营动作是否真的带来了增量。
8. 局限:RFM 不考虑商品品类和客户生命周期,什么情况下需要更复杂的模型。

高亮处换成你自己的内容:[业务与购买周期]、[订单字段]、[时间范围与规模]、[实现工具]、[分层用途]

ChatGPT Plus 充值

已被复制 0 次

使用说明

怎么填变量:[业务与购买周期] 决定统计期和 R 的阈值:生鲜复购以周计,家电复购以年计,用同一套阈值毫无意义。[订单字段] 中一定要说明有没有退款和订单状态字段,否则 M 值会被未支付和退款订单夸大。

常见坑:

  • 很多业务中大部分客户只买过一次,F 按五等分打分时,多个分段的边界都是 1,分段失去意义。可以改为按「1 次、2 次、3 次及以上」这类业务阈值划分。
  • 统计时包括了未支付、退款和测试订单,高价值客户名单里混进了薅羊毛和刷单的账号。
  • 分完层就直接给所有「流失客户」发大额优惠券,没有对照组,事后无法判断是优惠券起了作用,还是他们本来就会回来。

追问技巧:追问「每个月自动更新一次分层,并输出客户在各层之间的流转情况(例如从重要价值客户掉到重要挽留客户的人数)」。

示例输出

示例,仅供参考(分群定义与策略节选)
类别RFM运营策略
重要价值客户高高高专属客服、新品优先体验,避免频繁打折
重要唤回客户低高高曾经的高价值客户,近期没有购买:个性化召回与定向权益
重要发展客户高低高刚完成大额消费:引导第二次购买
一般挽留客户低低低低成本渠道触达,控制营销预算

(R「高」表示最近购买过,即距今天数少。)

sql
WITH base AS (
  SELECT user_id,
         DATEDIFF('2026-09-30', MAX(DATE(pay_time))) AS r_days,
         COUNT(DISTINCT order_id)                   AS f_cnt,
         SUM(paid_amount)                           AS m_amt
  FROM orders
  WHERE status = 'PAID' AND pay_time >= '2025-10-01' AND pay_time < '2026-10-01'
  GROUP BY user_id
)
SELECT *,
       CASE WHEN r_days <= 30 THEN 5 WHEN r_days <= 60 THEN 4 WHEN r_days <= 90 THEN 3
            WHEN r_days <= 180 THEN 2 ELSE 1 END AS r_score,
       CASE WHEN f_cnt >= 5 THEN 5 WHEN f_cnt >= 3 THEN 4 WHEN f_cnt = 2 THEN 3 ELSE 1 END AS f_score
FROM base;

同款作品

用这条提示词做出来的作品;原作者会因此获得积分

做同款

还没有同款,来做第一个。

Nathaniel 的更多内容

同主题

同模型

0 条评论

登录 后参与评论

还没有评论,来抢沙发~