RFM 分群
RFM 分群用三個維度衡量使用者的價值:Recency(最近一次互動是多久前)、Frequency(互動的頻率)、Monetary(互動的金額或價值)。三個維度各自獨立評分,組合成使用者的 RFM profile,驅動差異化的營運策略。
三個維度
Recency:最近一次互動的時間距離
計算使用者最後一次有意義的互動到現在的天數。「有意義的互動」取決於業務定義 — 電商是最後一次購買,SaaS 是最後一次登入,媒體是最後一次內容消費。
Recency 的價值在於「最近互動的使用者比很久沒來的使用者更可能再次互動」。Recency 高(最近才來)的使用者是活躍群體,Recency 低(很久沒來)的使用者是流失風險群體。
Frequency:互動的頻率
計算使用者在特定時間窗口內的互動次數。時間窗口取決於業務節奏 — 日用品電商看近 90 天的購買次數,SaaS 看近 30 天的登入次數。
Frequency 區分「偶爾來的使用者」和「常客」。高頻使用者是產品的核心用戶群,他們的行為和需求代表產品的核心價值。
Monetary:互動的價值
計算使用者在特定時間窗口內貢獻的總金額。適用於有直接收入的業務(電商、訂閱服務)。
沒有直接收入的產品可以用替代指標:內容平台用消費的內容數量,社群平台用產生的內容數量,工具類產品用使用的功能數量。替代指標的選擇依據是「哪個行為最能代表使用者的投入程度」。
RFM 分數計算
每個維度獨立評分,通常用 1-5 分。評分方式有兩種:
等距分割
把每個維度的值域等分成 5 段。Recency 0-6 天 = 5 分、7-13 天 = 4 分、依此類推。
優點是簡單直覺;缺點是不考慮使用者分佈 — 如果大部分使用者的 Recency 在 0-6 天,5 分的群體佔大多數,分群的鑑別度低。
等量分割(分位數)
用分位數確保每個分數段的使用者數量大致相等。前 20% 的 Recency = 5 分、次 20% = 4 分。
優點是每個分數段有足夠的使用者數量做分析;缺點是分數的業務意義不固定 — 5 分代表的天數取決於使用者分佈,不是固定的閾值。
RFM 群體定義
三個維度各 5 分,組合出 125 種 RFM profile(5 × 5 × 5)。實務上不需要 125 種策略,通常歸納成 5-8 個有業務意義的群體:
| 群體 | RFM 特徵 | 描述 | 策略方向 |
|---|---|---|---|
| 冠軍客戶 | R5 F5 M5 | 最近才來、經常來、消費高 | 維持關係、VIP 待遇 |
| 忠實客戶 | R4-5 F4-5 M3-5 | 經常來、消費中到高 | 交叉銷售、推薦 |
| 潛力客戶 | R4-5 F1-2 M1-2 | 最近才來、但頻率和消費低 | 引導更多互動 |
| 沉睡客戶 | R1-2 F3-5 M3-5 | 曾經活躍但很久沒來 | 挽回活動 |
| 流失客戶 | R1 F1 M1 | 很久沒來、頻率低、消費低 | 評估挽回成本效益 |
工程實作
RFM 計算的輸入是使用者的行為事件。從 collector 的 JSONL 資料計算 RFM:
- 擷取:篩選目標事件(購買、登入、使用功能),按 user_id 分群
- 計算 R:每個 user_id 的最新事件時間到現在的天數
- 計算 F:每個 user_id 在時間窗口內的事件數量
- 計算 M:每個 user_id 在時間窗口內的 monetary 屬性加總
- 評分:對 R/F/M 各自用分位數或等距分割評分
- 分群:根據 RFM 分數組合定義群體
這個計算可以用 SQL(如果資料在資料庫)或 Python pandas(如果資料在 JSONL 檔案)完成。定期重算(每天或每週),產出使用者群體標籤。
RFM 分群需要的資料可以從自架 collector 提取 — 從 collector 資料做基礎 funnel 分析展示了 grep + jq 在自架環境中的分析能力和邊界。RFM 分出的群體還可以用 Cohort analysis 追蹤留存趨勢,兩種分析互補。分群和分析的前提是正確的行為事件設計 — 事件的屬性決定了 R/F/M 能否被計算。
#monitoring #analytics #rfm #segmentation #retention #marketing