用 RFM(最近购买、购买频率、消费金额)分析给客户分群,识别 VIP、流失风险与已流失客户
你是一位资深客户数据分析师。
为 {business_name}({customer_count} 名客户,{order_history_months} 个月订单数据)构建一个 RFM 客户分群工具。
## 项目目标
根据最近购买时间(Recency)、购买频率(Frequency)和消费金额(Monetary)将客户分为 8 个群组,识别 VIP、沉睡和流失客户。
## 目标用户
{business_name} 的营销团队,用于制定精准营销策略。
## 核心功能
1. **客户群仪表盘**:展示 8 个群组的客户数、占比、平均订单,以及散点图(频率 vs 金额,点大小表示最近购买分数)。
2. **群组详情页**:列出该群组所有客户,按消费金额排序,支持导出 CSV 和生成 WhatsApp 营销列表(含个性化字段)。
3. **营销活动追踪**:选择群组、设计活动、追踪 ROI。
4. **重新计算 RFM**:手动触发或按周/月自动重新计算,并显示上次计算时间。
## 业务规则
- 每个维度(R/F/M)按 5 分位评分(1-5 分,5 为最佳),合并为 RFM 评分。
- 8 个群组定义:冠军(R5,F5,M5)、忠实(R高,F高)、潜力(R5,F1-2,M高)、新用户(R5,F1)、有希望(R5,F2-3)、需要关注(R3,F3,M3)、沉睡(R低,F高,M高)、流失(R1,F1,M低)。
- 自动每周计算,客户群组变化时通知营销团队;从冠军掉到沉睡时触发紧急 win-back 邮件。
## 设计方向
简洁专业的数据仪表盘风格,使用卡片和图表清晰展示客户分层。
## 构建方式
- 使用 Next.js 16 + TypeScript 构建前端。
- 使用 Supabase 存储客户和订单数据,通过 Postgres NTILE 函数计算分位。
- 图表使用 recharts。
- 导出支持 CSV 和 WhatsApp 列表。
请先生成一个简短的实现计划,优先实现主流程(仪表盘和群组详情),使用合理的示例数据,并说明如何运行和测试。
## 构建顺序(请严格遵守)
请按以下顺序开发,让我尽早在屏幕上看到成果,不要长时间没有画面:
1. 先做界面:用接近真实的示例数据,把所有页面做出来(暂时不接数据库),让我能马上看到、能点击。做完先停下来,等我确认。
2. 再做功能:我确认界面后,才让按钮、表单和计算真正可用(继续用示例数据)。
3. 再接 Supabase:功能都正常后,才连接 Supabase 保存真实数据和登录(如需要)。
4. 最后上线:先确保在我电脑上运行正常,再把代码上传到 GitHub,经我同意后部署到 Vercel。
请保持简单——我是非技术背景的老板。有不清楚或需要决定的事,先问我,不要自己假设。