<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Rfm on Tarragon</title><link>https://tarrragon.github.io/blog/tags/rfm/</link><description>Recent content in Rfm on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Fri, 19 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/rfm/index.xml" rel="self" type="application/rss+xml"/><item><title>RFM</title><link>https://tarrragon.github.io/blog/monitoring/knowledge-cards/rfm/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/monitoring/knowledge-cards/rfm/</guid><description>&lt;p>RFM 的核心概念是「用 Recency（最近活躍度）、Frequency（使用頻率）、Monetary（貢獻價值）三個維度把使用者分成可操作的群組」。每個維度獨立評分後組合，識別出忠實客戶、潛在流失、新使用者、休眠使用者等群組。可先對照 &lt;a href="https://tarrragon.github.io/blog/monitoring/knowledge-cards/cohort-analysis/" data-link-title="Cohort Analysis" data-link-desc="說明把使用者按共同特徵分群、比較不同群組行為差異的分析方法">cohort analysis&lt;/a>（按共同特徵分群）和 &lt;a href="https://tarrragon.github.io/blog/monitoring/knowledge-cards/funnel-analysis/" data-link-title="Funnel Analysis" data-link-desc="說明追蹤使用者在多步驟流程中每一步的轉換率和流失率的分析方法">funnel analysis&lt;/a>（追蹤流程轉換率）。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>RFM 位在行為資料累積到一定量之後。它需要每個使用者的 session 歷史（計算 Recency 和 Frequency）和交易歷史（計算 Monetary）。免費產品可以用替代指標取代 Monetary — 產生的內容數量、邀請的使用者數、完成的關鍵操作數。RFM 的前提和 cohort analysis 相同：去識別化（&lt;a href="https://tarrragon.github.io/blog/monitoring/knowledge-cards/redaction/" data-link-title="Redaction" data-link-desc="說明在事件資料離開 client 之前把敏感欄位的值替換成遮罩或移除的機制">redaction&lt;/a>）已完成。&lt;/p>
&lt;h2 id="可觀察訊號與例子">可觀察訊號與例子&lt;/h2>
&lt;p>產品需要 RFM 的訊號是「需要對不同行為模式的使用者採取不同策略」。高 R 高 F 高 M 的忠實客戶需要維護關係，低 R 高 F 高 M 的潛在流失客戶需要挽留，高 R 低 F 低 M 的新使用者需要引導降低入門門檻。&lt;/p>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>RFM 要定義每個維度的計算方式（Recency 用天數還是週數、Frequency 的時間窗口多長、Monetary 用什麼指標）、分位數（五等分還是三等分）、群組歸納（125 種 profile 歸納成幾個可操作群組）、以及重新計算的頻率（每週還是每月）。分群結果是動態的 — 使用者行為改變時群組會變。&lt;/p></description><content:encoded><![CDATA[<p>RFM 的核心概念是「用 Recency（最近活躍度）、Frequency（使用頻率）、Monetary（貢獻價值）三個維度把使用者分成可操作的群組」。每個維度獨立評分後組合，識別出忠實客戶、潛在流失、新使用者、休眠使用者等群組。可先對照 <a href="/blog/monitoring/knowledge-cards/cohort-analysis/" data-link-title="Cohort Analysis" data-link-desc="說明把使用者按共同特徵分群、比較不同群組行為差異的分析方法">cohort analysis</a>（按共同特徵分群）和 <a href="/blog/monitoring/knowledge-cards/funnel-analysis/" data-link-title="Funnel Analysis" data-link-desc="說明追蹤使用者在多步驟流程中每一步的轉換率和流失率的分析方法">funnel analysis</a>（追蹤流程轉換率）。</p>
<h2 id="概念位置">概念位置</h2>
<p>RFM 位在行為資料累積到一定量之後。它需要每個使用者的 session 歷史（計算 Recency 和 Frequency）和交易歷史（計算 Monetary）。免費產品可以用替代指標取代 Monetary — 產生的內容數量、邀請的使用者數、完成的關鍵操作數。RFM 的前提和 cohort analysis 相同：去識別化（<a href="/blog/monitoring/knowledge-cards/redaction/" data-link-title="Redaction" data-link-desc="說明在事件資料離開 client 之前把敏感欄位的值替換成遮罩或移除的機制">redaction</a>）已完成。</p>
<h2 id="可觀察訊號與例子">可觀察訊號與例子</h2>
<p>產品需要 RFM 的訊號是「需要對不同行為模式的使用者採取不同策略」。高 R 高 F 高 M 的忠實客戶需要維護關係，低 R 高 F 高 M 的潛在流失客戶需要挽留，高 R 低 F 低 M 的新使用者需要引導降低入門門檻。</p>
<h2 id="設計責任">設計責任</h2>
<p>RFM 要定義每個維度的計算方式（Recency 用天數還是週數、Frequency 的時間窗口多長、Monetary 用什麼指標）、分位數（五等分還是三等分）、群組歸納（125 種 profile 歸納成幾個可操作群組）、以及重新計算的頻率（每週還是每月）。分群結果是動態的 — 使用者行為改變時群組會變。</p>
]]></content:encoded></item><item><title>RFM 分群</title><link>https://tarrragon.github.io/blog/monitoring/08-business-analytics/rfm-segmentation/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/monitoring/08-business-analytics/rfm-segmentation/</guid><description>&lt;p>&lt;a href="https://tarrragon.github.io/blog/monitoring/knowledge-cards/rfm/" data-link-title="RFM" data-link-desc="說明用 Recency / Frequency / Monetary 三個維度把使用者分成可操作群組的分群方法">RFM&lt;/a> 分群用三個維度衡量使用者的價值：Recency（最近一次互動是多久前）、Frequency（互動的頻率）、Monetary（互動的金額或價值）。三個維度各自獨立評分，組合成使用者的 RFM profile，驅動差異化的營運策略。&lt;/p>
&lt;h2 id="三個維度">三個維度&lt;/h2>
&lt;h3 id="recency最近一次互動的時間距離">Recency：最近一次互動的時間距離&lt;/h3>
&lt;p>計算使用者最後一次有意義的互動到現在的天數。「有意義的互動」取決於業務定義 — 電商是最後一次購買，SaaS 是最後一次登入，媒體是最後一次內容消費。&lt;/p>
&lt;p>Recency 的價值在於「最近互動的使用者比很久沒來的使用者更可能再次互動」。Recency 高（最近才來）的使用者是活躍群體，Recency 低（很久沒來）的使用者是流失風險群體。&lt;/p>
&lt;h3 id="frequency互動的頻率">Frequency：互動的頻率&lt;/h3>
&lt;p>計算使用者在特定時間窗口內的互動次數。時間窗口取決於業務節奏 — 日用品電商看近 90 天的購買次數，SaaS 看近 30 天的登入次數。&lt;/p>
&lt;p>Frequency 區分「偶爾來的使用者」和「常客」。高頻使用者是產品的核心用戶群，他們的行為和需求代表產品的核心價值。&lt;/p>
&lt;h3 id="monetary互動的價值">Monetary：互動的價值&lt;/h3>
&lt;p>計算使用者在特定時間窗口內貢獻的總金額。適用於有直接收入的業務（電商、訂閱服務）。&lt;/p>
&lt;p>沒有直接收入的產品可以用替代指標：內容平台用消費的內容數量，社群平台用產生的內容數量，工具類產品用使用的功能數量。替代指標的選擇依據是「哪個行為最能代表使用者的投入程度」。&lt;/p>
&lt;h2 id="rfm-分數計算">RFM 分數計算&lt;/h2>
&lt;p>每個維度獨立評分，通常用 1-5 分。評分方式有兩種：&lt;/p>
&lt;h3 id="等距分割">等距分割&lt;/h3>
&lt;p>把每個維度的值域等分成 5 段。Recency 0-6 天 = 5 分、7-13 天 = 4 分、依此類推。&lt;/p>
&lt;p>優點是簡單直覺；缺點是不考慮使用者分佈 — 如果大部分使用者的 Recency 在 0-6 天，5 分的群體佔大多數，分群的鑑別度低。&lt;/p>
&lt;h3 id="等量分割分位數">等量分割（分位數）&lt;/h3>
&lt;p>用分位數確保每個分數段的使用者數量大致相等。前 20% 的 Recency = 5 分、次 20% = 4 分。&lt;/p>
&lt;p>優點是每個分數段有足夠的使用者數量做分析；缺點是分數的業務意義不固定 — 5 分代表的天數取決於使用者分佈，不是固定的閾值。&lt;/p>
&lt;h2 id="rfm-群體定義">RFM 群體定義&lt;/h2>
&lt;p>三個維度各 5 分，組合出 125 種 RFM profile（5 × 5 × 5）。實務上不需要 125 種策略，通常歸納成 5-8 個有業務意義的群體：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>群體&lt;/th>
 &lt;th>RFM 特徵&lt;/th>
 &lt;th>描述&lt;/th>
 &lt;th>策略方向&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>冠軍客戶&lt;/td>
 &lt;td>R5 F5 M5&lt;/td>
 &lt;td>最近才來、經常來、消費高&lt;/td>
 &lt;td>維持關係、VIP 待遇&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>忠實客戶&lt;/td>
 &lt;td>R4-5 F4-5 M3-5&lt;/td>
 &lt;td>經常來、消費中到高&lt;/td>
 &lt;td>交叉銷售、推薦&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>潛力客戶&lt;/td>
 &lt;td>R4-5 F1-2 M1-2&lt;/td>
 &lt;td>最近才來、但頻率和消費低&lt;/td>
 &lt;td>引導更多互動&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>沉睡客戶&lt;/td>
 &lt;td>R1-2 F3-5 M3-5&lt;/td>
 &lt;td>曾經活躍但很久沒來&lt;/td>
 &lt;td>挽回活動&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>流失客戶&lt;/td>
 &lt;td>R1 F1 M1&lt;/td>
 &lt;td>很久沒來、頻率低、消費低&lt;/td>
 &lt;td>評估挽回成本效益&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="工程實作">工程實作&lt;/h2>
&lt;p>RFM 計算的輸入是使用者的行為事件。從 collector 的 JSONL 資料計算 RFM：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>擷取&lt;/strong>：篩選目標事件（購買、登入、使用功能），按 user_id 分群&lt;/li>
&lt;li>&lt;strong>計算 R&lt;/strong>：每個 user_id 的最新事件時間到現在的天數&lt;/li>
&lt;li>&lt;strong>計算 F&lt;/strong>：每個 user_id 在時間窗口內的事件數量&lt;/li>
&lt;li>&lt;strong>計算 M&lt;/strong>：每個 user_id 在時間窗口內的 monetary 屬性加總&lt;/li>
&lt;li>&lt;strong>評分&lt;/strong>：對 R/F/M 各自用分位數或等距分割評分&lt;/li>
&lt;li>&lt;strong>分群&lt;/strong>：根據 RFM 分數組合定義群體&lt;/li>
&lt;/ol>
&lt;p>這個計算可以用 SQL（如果資料在資料庫）或 Python pandas（如果資料在 JSONL 檔案）完成。定期重算（每天或每週），產出使用者群體標籤。&lt;/p>
&lt;p>RFM 分群需要的資料可以從自架 collector 提取 — &lt;a href="https://tarrragon.github.io/blog/monitoring/08-business-analytics/self-hosted-funnel/" data-link-title="從 collector 資料做基礎 funnel 分析" data-link-desc="SQLite 層能做什麼程度的 funnel、PostgreSQL 層提供什麼進階能力、JSONL 匯出後的臨時分析">從 collector 資料做基礎 funnel 分析&lt;/a>展示了 grep + jq 在自架環境中的分析能力和邊界。RFM 分出的群體還可以用 &lt;a href="https://tarrragon.github.io/blog/monitoring/08-business-analytics/cohort-analysis/" data-link-title="Cohort Analysis" data-link-desc="按共同特徵分群、比較不同群體的留存率和行為差異 — 從「平均值」到「誰在用、誰離開了」">Cohort analysis&lt;/a> 追蹤留存趨勢，兩種分析互補。分群和分析的前提是正確的&lt;a href="https://tarrragon.github.io/blog/monitoring/08-business-analytics/behavior-event-design/" data-link-title="行為事件設計" data-link-desc="事件命名規範、屬性設計、funnel 定義 — 行為分析的品質取決於事件設計的品質">行為事件設計&lt;/a> — 事件的屬性決定了 R/F/M 能否被計算。&lt;/p></description><content:encoded><![CDATA[<p><a href="/blog/monitoring/knowledge-cards/rfm/" data-link-title="RFM" data-link-desc="說明用 Recency / Frequency / Monetary 三個維度把使用者分成可操作群組的分群方法">RFM</a> 分群用三個維度衡量使用者的價值：Recency（最近一次互動是多久前）、Frequency（互動的頻率）、Monetary（互動的金額或價值）。三個維度各自獨立評分，組合成使用者的 RFM profile，驅動差異化的營運策略。</p>
<h2 id="三個維度">三個維度</h2>
<h3 id="recency最近一次互動的時間距離">Recency：最近一次互動的時間距離</h3>
<p>計算使用者最後一次有意義的互動到現在的天數。「有意義的互動」取決於業務定義 — 電商是最後一次購買，SaaS 是最後一次登入，媒體是最後一次內容消費。</p>
<p>Recency 的價值在於「最近互動的使用者比很久沒來的使用者更可能再次互動」。Recency 高（最近才來）的使用者是活躍群體，Recency 低（很久沒來）的使用者是流失風險群體。</p>
<h3 id="frequency互動的頻率">Frequency：互動的頻率</h3>
<p>計算使用者在特定時間窗口內的互動次數。時間窗口取決於業務節奏 — 日用品電商看近 90 天的購買次數，SaaS 看近 30 天的登入次數。</p>
<p>Frequency 區分「偶爾來的使用者」和「常客」。高頻使用者是產品的核心用戶群，他們的行為和需求代表產品的核心價值。</p>
<h3 id="monetary互動的價值">Monetary：互動的價值</h3>
<p>計算使用者在特定時間窗口內貢獻的總金額。適用於有直接收入的業務（電商、訂閱服務）。</p>
<p>沒有直接收入的產品可以用替代指標：內容平台用消費的內容數量，社群平台用產生的內容數量，工具類產品用使用的功能數量。替代指標的選擇依據是「哪個行為最能代表使用者的投入程度」。</p>
<h2 id="rfm-分數計算">RFM 分數計算</h2>
<p>每個維度獨立評分，通常用 1-5 分。評分方式有兩種：</p>
<h3 id="等距分割">等距分割</h3>
<p>把每個維度的值域等分成 5 段。Recency 0-6 天 = 5 分、7-13 天 = 4 分、依此類推。</p>
<p>優點是簡單直覺；缺點是不考慮使用者分佈 — 如果大部分使用者的 Recency 在 0-6 天，5 分的群體佔大多數，分群的鑑別度低。</p>
<h3 id="等量分割分位數">等量分割（分位數）</h3>
<p>用分位數確保每個分數段的使用者數量大致相等。前 20% 的 Recency = 5 分、次 20% = 4 分。</p>
<p>優點是每個分數段有足夠的使用者數量做分析；缺點是分數的業務意義不固定 — 5 分代表的天數取決於使用者分佈，不是固定的閾值。</p>
<h2 id="rfm-群體定義">RFM 群體定義</h2>
<p>三個維度各 5 分，組合出 125 種 RFM profile（5 × 5 × 5）。實務上不需要 125 種策略，通常歸納成 5-8 個有業務意義的群體：</p>
<table>
  <thead>
      <tr>
          <th>群體</th>
          <th>RFM 特徵</th>
          <th>描述</th>
          <th>策略方向</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>冠軍客戶</td>
          <td>R5 F5 M5</td>
          <td>最近才來、經常來、消費高</td>
          <td>維持關係、VIP 待遇</td>
      </tr>
      <tr>
          <td>忠實客戶</td>
          <td>R4-5 F4-5 M3-5</td>
          <td>經常來、消費中到高</td>
          <td>交叉銷售、推薦</td>
      </tr>
      <tr>
          <td>潛力客戶</td>
          <td>R4-5 F1-2 M1-2</td>
          <td>最近才來、但頻率和消費低</td>
          <td>引導更多互動</td>
      </tr>
      <tr>
          <td>沉睡客戶</td>
          <td>R1-2 F3-5 M3-5</td>
          <td>曾經活躍但很久沒來</td>
          <td>挽回活動</td>
      </tr>
      <tr>
          <td>流失客戶</td>
          <td>R1 F1 M1</td>
          <td>很久沒來、頻率低、消費低</td>
          <td>評估挽回成本效益</td>
      </tr>
  </tbody>
</table>
<h2 id="工程實作">工程實作</h2>
<p>RFM 計算的輸入是使用者的行為事件。從 collector 的 JSONL 資料計算 RFM：</p>
<ol>
<li><strong>擷取</strong>：篩選目標事件（購買、登入、使用功能），按 user_id 分群</li>
<li><strong>計算 R</strong>：每個 user_id 的最新事件時間到現在的天數</li>
<li><strong>計算 F</strong>：每個 user_id 在時間窗口內的事件數量</li>
<li><strong>計算 M</strong>：每個 user_id 在時間窗口內的 monetary 屬性加總</li>
<li><strong>評分</strong>：對 R/F/M 各自用分位數或等距分割評分</li>
<li><strong>分群</strong>：根據 RFM 分數組合定義群體</li>
</ol>
<p>這個計算可以用 SQL（如果資料在資料庫）或 Python pandas（如果資料在 JSONL 檔案）完成。定期重算（每天或每週），產出使用者群體標籤。</p>
<p>RFM 分群需要的資料可以從自架 collector 提取 — <a href="/blog/monitoring/08-business-analytics/self-hosted-funnel/" data-link-title="從 collector 資料做基礎 funnel 分析" data-link-desc="SQLite 層能做什麼程度的 funnel、PostgreSQL 層提供什麼進階能力、JSONL 匯出後的臨時分析">從 collector 資料做基礎 funnel 分析</a>展示了 grep + jq 在自架環境中的分析能力和邊界。RFM 分出的群體還可以用 <a href="/blog/monitoring/08-business-analytics/cohort-analysis/" data-link-title="Cohort Analysis" data-link-desc="按共同特徵分群、比較不同群體的留存率和行為差異 — 從「平均值」到「誰在用、誰離開了」">Cohort analysis</a> 追蹤留存趨勢，兩種分析互補。分群和分析的前提是正確的<a href="/blog/monitoring/08-business-analytics/behavior-event-design/" data-link-title="行為事件設計" data-link-desc="事件命名規範、屬性設計、funnel 定義 — 行為分析的品質取決於事件設計的品質">行為事件設計</a> — 事件的屬性決定了 R/F/M 能否被計算。</p>
]]></content:encoded></item></channel></rss>