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:

  1. 擷取:篩選目標事件(購買、登入、使用功能),按 user_id 分群
  2. 計算 R:每個 user_id 的最新事件時間到現在的天數
  3. 計算 F:每個 user_id 在時間窗口內的事件數量
  4. 計算 M:每個 user_id 在時間窗口內的 monetary 屬性加總
  5. 評分:對 R/F/M 各自用分位數或等距分割評分
  6. 分群:根據 RFM 分數組合定義群體

這個計算可以用 SQL(如果資料在資料庫)或 Python pandas(如果資料在 JSONL 檔案)完成。定期重算(每天或每週),產出使用者群體標籤。

RFM 分群需要的資料可以從自架 collector 提取 — 從 collector 資料做基礎 funnel 分析展示了 grep + jq 在自架環境中的分析能力和邊界。RFM 分出的群體還可以用 Cohort analysis 追蹤留存趨勢,兩種分析互補。分群和分析的前提是正確的行為事件設計 — 事件的屬性決定了 R/F/M 能否被計算。