こんにちは、廣本です👑。今回はサンプルスーパーストアの顧客を、ロイヤリティに基づくセグメントに分けて分析してみたいと思います。
顧客ロイヤリティセグメントとは?
顧客ロイヤリティセグメントとは、企業が顧客を購買行動や関与度に基づいて分類する手法のことです。これにより、各顧客グループの特性を理解し、それぞれに最適なマーケティング戦略を展開することができます。
一般的に、顧客ロイヤリティセグメントは以下のような軸で分類されます:
- 購買頻度:どれくらいの頻度で商品やサービスを購入しているか
- 購買金額:一定期間内の累計購入金額や平均購入単価
- 最終購買日:最後に購入してからの経過期間
- 購買期間:初回購入から現在までの顧客としての継続期間
今回はサンプルスーパーストアのデータを使って、顧客ロイヤリティセグメントを作成してみました。
顧客ロイヤリティセグメントのつくり方
顧客ロイヤリティセグメントを作成するにあたり、今回は以下の定義で12種類のセグメントを定義しました。直近(=データ内日付の最大値から遡った期間)の購入があったかどうかと、期間内の累計購入金額をもとにセグメントを作成します。
では、それぞれに該当する顧客が何人いるのかを可視化してみましょう。
| | 休眠 直近1年以上購入なし | ライト 直近6ヶ月~1年以内に購入あり | アクティブ 直近3ヶ月~6ヶ月以内に購入あり | ロイヤル 直近3ヶ月以内(3ヶ月含む)に 購入あり | | --- | --- | --- | --- | --- | | プレミアム 累計購入金額 20万円以上 | プレミアム・休眠 | プレミアム・ライト | プレミアム・アクティブ | プレミアム・ロイヤル | | レギュラー 累計購入金額 10万円以上20万円未満 | レギュラー・休眠 | レギュラー・ライト | レギュラー・アクティブ | レギュラー・ロイヤル | | エントリー 累計購入金額 10万円未満 | エントリー・休眠 | エントリー・ライト | エントリー・アクティブ | エントリー・ロイヤル |
セグメントを判別するにあたり、LOD計算を使った計算式を作成します。
顧客別:最終購入日からの経過日数
DATEDIFF("month", {FIXED [顧客名]:MAX([オーダー日])},{MAX([オーダー日])})
//顧客ごとの最終オーダー日と、データ内最終オーダー日の差分月数を計算します。
//省略して書いていますが、{MAX([オーダー日])}は{FIXED:MAX([オーダー日])}と同義で、データ内全体の集計を行います。
セグメント_購入期間
IF [顧客別:最終購入日からの経過日数]<=3 THEN "ロイヤル"
ELSEIF [顧客別:最終購入日からの経過日数]<=6 THEN "アクティブ"
ELSEIF [顧客別:最終購入日からの経過日数]<=12 THEN "ライト"
ELSE "休眠"
END
//[顧客別:最終購入日からの経過日数]の値にもとづき、顧客のセグメントを分類します。
顧客別:累計購入金額
{FIXED [顧客名]:SUM(売上)}
//顧客別の合計売上=購入金額を計算します。
セグメント_購入期間
IF [顧客別:最終購入日からの経過日数]<=3 THEN "ロイヤル"
ELSEIF [顧客別:最終購入日からの経過日数]<=6 THEN "アクティブ"
ELSEIF [顧客別:最終購入日からの経過日数]<=12 THEN "ライト"
ELSE "休眠"
END
//[顧客別:最終購入日からの経過日数]の値にもとづき、顧客のセグメントを分類します。
フィルターを使うときの注意点
今回セグメント作成に使用したLOD計算では、FIXED関数を使用しています。通常のフィルターがかかるよりも先に計算されるため、フィルターを適用する場合は注意が必要です。

もしフィルターを適用させ、その条件下でセグメントを定義したい場合は、フィルターを「コンテキストフィルター」として定義するようにしましょう。

まとめ
今回はLOD計算を使った顧客ロイヤリティセグメントを作成してみました。ぜひ分析してみてください!