ecom-rfm-analysis について
購買時期、購入頻度、支出額で取引データを採点する顧客セグメント分析スキルです。マーケティング担当者が行動別に顧客を分類し、施策を立てるための手順と手法の限界を示します。
主な機能
- 01R・F・M の五分位スコア
- 02名称付き顧客セグメント
- 03セグメント別マーケティング施策
- 04Python スコアリングスクリプトと検証テスト
- 05RFM の限界に関する説明
活用シーン
- 01高価値・優良・離反リスク顧客の特定
- 02新規顧客の導入と二回目購入の促進
- 03休眠顧客の再獲得施策の設計
- 04セグメント分析前の取引データ確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ asgard-ai-platform/ skills --skill ecom-rfm-analysisインストール後、Claude Code で/ecom-rfm-analysisを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/sample_input.jsonreferences/clv-prediction.mdrfm-implementation.mdscripts/rfm_score.py詳細
RFM分析
概要
RFMは、顧客を3つの行動指標で分類します。Recency(最後に購入した時期)、Frequency(購入頻度)、Monetary(購入金額)です。生の取引データを、ターゲットを絞ったマーケティングに活用できる顧客セグメントに変換します。
フレームワーク
IRON LAW: RFM Uses ACTUAL Behavior, Not Demographics
RFM is behavioral segmentation — it classifies by what customers DO,
not who they ARE. A 25-year-old and a 65-year-old in the same RFM segment
should receive the same treatment. Never mix RFM with demographic
assumptions.
3つの指標
| 指標 | 測定内容 | 計算方法 |
|---|---|---|
| Recency(R) | 最終購入からの日数 | 今日 - 最終購入日 |
| Frequency(F) | 期間内の購入回数 | 個別の取引数をカウント |
| Monetary(M) | 期間内の合計購入金額 | 取引金額の合計 |
スコアリング方法(五分位ベース)
- 各指標について、すべての顧客を順位付けし、5つの同じ規模のグループ(五分位)に分けます
- 5(最良)から1(最悪)までのスコアを付けます。R=5は最も最近の購入、F=5は最も高い購入頻度、M=5は最も高い購入金額を意味します
- 3桁のRFMスコアにまとめます(例:R5-F4-M5 = 最近購入し、購入頻度が高く、購入金額も高い)
注:Recencyでは、日数が少ないほどスコアが高くなります(購入時期が最近であるほど良い)。
主なセグメント
| セグメント | RFMパターン | 説明 | 戦略 |
|---|---|---|---|
| Champions | R5, F5, M5 | 購入時期が最近で、購入頻度と購入金額が高い最優良顧客 | 特典、ロイヤルティプログラム、先行アクセス |
| Loyal | R4-5, F4-5, M3-5 | 安定して購入する顧客 | アップセル、クロスセル、紹介プログラム |
| Potential Loyalists | R4-5, F2-3, M2-3 | 購入時期が最近で、購入頻度は中程度 | 購入頻度を高めるために育成 |
| At Risk | R2-3, F3-5, M3-5 | 以前は購入頻度または購入金額が高かったが、最近は購入していない顧客 | 呼び戻しキャンペーン、特別オファー |
| Hibernating | R1-2, F1-2, M1-2 | 長期間休眠状態で、購入金額も低い顧客 | 低コストで再活性化するか、対象から外す |
| New Customers | R5, F1, M1-2 | 初回購入を済ませたばかりの顧客 | オンボーディング、2回目の購入特典 |
実施手順
フェーズ1:データの準備
- 必須項目:顧客ID、取引日、取引金額
- データの整理:返金、テスト注文、社内注文を除外
- 分析期間を設定(通常12~24か月)
フェーズ2:RFMスコアの算出
- 各顧客のR、F、Mを算出
- 各指標に五分位スコア(1~5)を割り当て
- セグメントにまとめる
フェーズ3:セグメント化と施策の実行
- 各顧客を名前付きのセグメント(Champions、At Riskなど)に分類
- セグメントごとにターゲットを絞った施策を設計
- 結果を測定:ターゲットにした顧客の行動に違いがあったか?
出力形式
# RFM Analysis: {Business}
## Data Summary
- Customers analyzed: {N}
- Analysis window: {start} to {end}
- Transactions: {N}
## Segment Distribution
| Segment | Count | % | Avg R (days) | Avg F | Avg M |
|---------|-------|---|-------------|-------|-------|
| Champions | {N} | {%} | {days} | {count} | ${X} |
| At Risk | {N} | {%} | ... | ... | ... |
| ... | ... | ... | ... | ... | ... |
## Key Findings
- Top 20% customers contribute {X%} of revenue
- {N} customers at risk of churning (were high-value, now dormant)
- {N} new customers need second-purchase nurturing
## Recommended Actions
| Segment | Action | Channel | Expected Impact |
|---------|--------|---------|----------------|
| Champions | {loyalty reward} | {email/app} | Increase AOV by X% |
| At Risk | {win-back offer} | {email/SMS} | Recover X% of dormant revenue |
注意点
- RFMは過去を振り返る指標です:顧客が何をしたかは分かりますが、これから何をするかは分かりません。将来を見通すインサイトを得るには、予測モデル(CLV予測)と組み合わせてください。
- 五分位を均等に分けても意味がない場合があります:顧客の80%が1回しか購入していない場合、五分位の1~4はすべて「単発購入者」になります。ビジネスの状況に応じて、独自の区切り値を検討してください。
- サブスクリプションではMonetaryが誤解を招く場合があります:全員が同じサブスクリプション料金を支払う場合、Mの指標からは情報が得られません。これを除外して、RFのみを使用してください。
- B2BとB2Cでは購入頻度の基準が異なります:四半期ごとに購入するB2B顧客は「高頻度」と見なされますが、四半期ごとに購入するB2C顧客は「リスクあり」と見なされることがあります。ビジネスの状況に合わせて調整してください。
- At Riskの顧客にメッセージを送りすぎないでください:休眠顧客にメールを大量に送ると、配信停止が増える可能性があります。毎週メールを送るより、よく練られた呼び戻しキャンペーンを1回実施する方が効果的です。
スクリプト
| スクリプト | 説明 | 使用方法 |
|---|---|---|
scripts/rfm_score.py | R/F/Mに基づいて顧客をスコアリングし、セグメントラベルを割り当てます | python scripts/rfm_score.py --help |
python scripts/rfm_score.py --verifyを実行すると、組み込みのサニティテストを実行できます。
参考資料
- Python/SQLの実装コードについては、
references/rfm-implementation.mdを参照してください - RFMを拡張したCLV予測については、
references/clv-prediction.mdを参照してください
コメント
Markdown 対応