見出し画像

商品分析の第一歩|商品カテゴリ別のLTV分析


商品分析で、各商品カテゴリのパフォーマンスを判明したいケースがあります。Tableauを使って、すばやく傾向を掴む手順について、紹介をしたいと思います。

本編は、以下の順番で説明をしていきます:

1.想定ケース・利用データセットの説明
2.分析のアウトプットイメージ
3.作り方

 

1.想定ケース・利用データセットの説明

 Tableauのデフォルトのデータセットの「Sample - Superstore」を使います。
このデータセットの中で、以下の指標を使います:

Customer Name:顧客の名前
※本来であれば、同じ名前を持つ顧客を区別できるよう、顧客のidを使うのが理想ですが、ここはデータセットの制限を受けるため、一旦名前を使います
Order ID:予約番号
Order Date:予約日
Sales:取扱額
Profit:利益
※利益=取扱額*(1- discount率)-コスト
Sub-Category:商品のカテゴリ
 

実際の現場では、17種の商品カテゴリを扱う売り場の責任者が、
これから投資の最適化をするために、既存の商品カテゴリの中で、どのカテゴリに注力すべきかについて知りたがっています。

分析者として、それを以下のinputを受けました:

商品が売れるよう、クーポンを付与して、discountをして販売をしていました。
クーポンに対する考え方:クーポンを付与することによって、リピート率を上げたい。そのために、初回購入のときに、利益がマイナスでも、その後の購買で作ったtotal利益がプラスであれば良い。
 

2.分析のアウトプットイメージ

商品カテゴリ別の取扱額&売上額

ここでは、商品カテゴリのごとに、取扱額・利益額・平均取扱額・平均利益額の分布を確認するのが目的です。

・BindersとArtは取扱額も、売上額も高い。そのうち、Artの平均取扱額と平均売上額は全カテゴリにおいて2位となる
・利益がマイナスなのはLabels


商品カテゴリ別の取扱額&売上額

ここまでは、通常の分析となにも変わりません。
ここからのLTV分析が肝です。

ここでは、リピート(何回まで購入し、いくら取扱額・利益額を作った)の実態を把握するのが目的です。
Life Timeを何日にしたほうが適切なのかは分からないので、最初に分析したときには、色々な日数を試しながら、あとは現場にいる責任者と話し合いで最終的に日数を決めます。

※横軸:顧客がLTV内における購入回数

この売場では、600日をLife Timeとした場合:
・約8割の人が4回まで購入し、97%の人は6回まで購入した
・7回目以降の利益が下がった

 ここでは、商品カテゴリ別で見て、特定のカテゴリが特にリピート率(=1-1回購入の顧客割合)とLTV内の取扱額・売上額が特に高い・低いものはないかを確認するのが目的です。

先程の全体傾向の確認で、わかったのは、6回まで購入するのが全体の97%で、以下は各カテゴリにおいて、6回まで購入した顧客のデータをみていきます。

※横軸:顧客がLTV内における購入回数 

ここで分かるインサイトが様々で、例えば:

Appliancesは、一回しか買わない人の利益がマイナスだが、商品自体のリピート率は93%(=1-7%)でカテゴリの中では高く、また、3回まで購入した人が6割で、三回購入した人の利益額が$415で、全カテゴリの三回目に比べて最も高い
→Appliancesに初回クーポンをつけることで、一時的に利益がマイナスとなるが、その後の購買に繋がり、最終的に高い利益を生み出すことができる商材であることが分かった

 これを分かりやすくするために、散布図にしたら、こうなります:

3.作り方

LTVの集計で最も肝心なのは、集計上でLTVに対する定義をしっかり反映させることです。つまり:

・Life Timeを変更できるように、予めパラメーターとして設定すること
・顧客の初回の購買日から今日までの日数がLife Timeより長いこと
・顧客の初回の購買日から、Life Timeの日数までのレコードしか集計しないこと
という内容をTableauで計算フィルドを作るときに心がけることです。

 

Life Timeのパラメーター

これは簡単です。説明を略します。

 顧客最後の日から今日までの日数のフィルター

まずは個々の顧客の初回の購買日を特定する「顧客のfirst予約」を作ります。

{ FIXED [Customer Name]:
MIN([Order Date])}

そして、「LTV除外」フィルター条件を作ります。フィルターにかける際に、TRUEを選びます。

DATEDIFF("day",[顧客のfirst予約],TODAY())>=[LTV日数] 

顧客の初回の購入日から集計するレコード

「LTV内予約」フィルター条件を作ります。フィルターにかける際に、TRUEを選びます。

DATEDIFF("day",[顧客のfirst予約],[Order Date])<=[LTV日数]


その他の計算フィルド

LTVの場合、カテゴリや取扱額・利益額を、LTV用のディメンションとメトリックスを作る必要があります。

こちらはディメンションの初回購入の商品カテゴリ「LTV内初回予約category」です。

{ FIXED [Customer Name]:
MIN(
IF [Order Date]=[顧客のfirst予約]
THEN [Sub-Category] END)}

こちらはディメンションの購入回数「LTV内予約回数」です。

{ FIXED [Customer Name],[LTV内予約],[LTV除外]:
COUNTD([Order ID])}

これからはメトリックスです。取扱額「LTV内sales」と売上額「LTV内profit」の作り方は同じです。

{ FIXED [Customer Name],[LTV内予約],[LTV除外]:
SUM([Sales])}

{ FIXED [Customer Name],[LTV内予約],[LTV除外]:
SUM([Profit])}

散布図に使うメトリックスのリピート率「LTV内リピート率」です。

COUNTD(
IF [LTV内予約回数]>1 THEN [Customer Name] ELSE NULL END)
/
COUNTD([Customer Name])

詳細は、TableauのPublicからダウンロードしてみてください〜!


この記事が気に入ったらサポートをしてみませんか?