第259話|CLTV(顧客生涯価値)を算出するなら顧客別CLTV(Individual CLTV)

第259話|CLTV(顧客生涯価値)を算出するなら顧客別CLTV(Individual CLTV)

CLTV(顧客生涯価値)には全体レベル(集計レベル)個人レベル(個々の顧客レベル)のものがあります。

全体レベル(集計レベル)CLTV(顧客生涯価値)である(Aggregate CLTV)は、多くの場合驚くほどの予測精度ですが、顧客別の状況が見えません。全体レベルCLTV(Aggregate CLTV)をベースに顧客別CLTV(Individual CLTV)を計算すると、驚くほどに不正確になります。

経営レベルの指標としては全体レベルCLTV(Aggregate CLTV)で良いかもしれませんが、マーケターや営業の現場で活用するときの指標としては顧客別CLTV(Individual CLTV)がいいでしょう。

全体レベルCLTV(Aggregate CLTV)は、顧客別CLTV(Individual CLTV)を集計すれば求めることができるわけですから、CLTV(顧客生涯価値)を算出するなら最初から顧客別CLTV(Individual CLTV)が良いかと思います。

今回は、「CLTV(顧客生涯価値)を算出するなら顧客別CLTV(Individual CLTV)」というお話をします。

全体レベルCLTV(Aggregate CLTV)の計算式

先ず、全体レベルCLTV(Aggregate CLTV)の計算方法を述べます。

大雑把な式で示します。

  • T:注文回数/月
  • OV:注文金額/回
  • GM:粗利率
  • LT:顧客期間(月数)
  • CR:離反率
  • CB:月初既存顧客
  • CE:月末継続顧客数(CBの中で月末まで離反せず残った顧客数)

T(注文回数)OV(注文金額/回)GM(粗利率)過去数カ月間の既存顧客全体(全取引)の平均です。CB(月初既存顧客)CE(月末継続顧客)は対象月の既存顧客数です。新規顧客のCLTVは別途計算します。

LT(顧客期間)CR(離反率)から計算します。

LT = \cfrac{1}{CR}

CR(離反率)CB(月初既存顧客)CE(月末継続顧客)から計算します。

CR = \cfrac{CB-CE}{CB}

CLTV(1既存顧客あたり)は、以下の式で求められます。

CLTV = \cfrac{T \times OV \times GM \times LT}{CE}

当月に顧客になった新規顧客は、前月もしくは過去の同月のデータを元に別途CRを計算し、CLTVを求めます。

全体レベルCLTV(Aggregate CLTV)の計算例

あるカタログ通販会社の例です。

既存顧客に対し、ある月の月末に、過去1年間の平均(月当たり)を計算したら以下のようになりました。

  • T:注文回数/月 → 156,294回
  • OV:注文金額/回 → 8,498円
  • GM:粗利率 → 27.4%

その月の既存顧客数です。

  • CB:月初既存顧客数 → 82,762人
  • CE:月末継続顧客数 → 78,147人

その月の既存顧客のCR(離反率)を計算します。

CR = \cfrac{CB-CE}{CB}= \cfrac{82,762-78,147}{82,762}=0.05576

LT(顧客期間)を計算します。

LT = \cfrac{1}{CR}= \cfrac{1}{0.05576}=17.934ヶ月

CLTV(1既存顧客あたり)を計算します。

CLTV = \cfrac{T \times OV \times GM \times LT}{CE} = \cfrac{156,294 \times 8,498 \times 0.274 \times 17.934}{78,147} \fallingdotseq 83,517円

全体レベルCLTV(Aggregate CLTV)の予測

全体レベルCLTV(Aggregate CLTV)を予測するときは、以下の数値を予測することで求められます。

  • T:購入回数/月
  • OV:購入金額/回
  • GM:粗利率/回
  • LT:顧客期間(月数)
  • CR:離反率
  • CB:月初顧客数(既存顧客)
  • CE:CBの中で月末まで残った顧客数(継続顧客)

個々に時系列モデルを構築することで、それぞれの予測モデルを構築できます。

それぞれの予測モデルから算出された予測値を用いれば、全体レベルCLTV(Aggregate CLTV)の予測値が算出されます。

この予測値は、それなりの精度で、予測値と実測値の誤差は数%レベルで収まると思います(絶対ではないですが……)。

ただ、経営レベルの指標としては全体レベルCLTV(Aggregate CLTV)で良いかもしれませんが、マーケターや営業の現場で活用するときの指標としては顧客別CLTV(Individual CLTV)が欲しいところです。

顧客別CLTV(Individual CLTV)が分かれば、顧客別に対応を変えたり色々なことができます。

全体レベルCLTV(Aggregate CLTV)をベースに顧客別CLTV(Individual CLTV)を計算

全体レベルCLTV(Aggregate CLTV)をベースに顧客別CLTV(Individual CLTV)を計算するとき、以下の数値を顧客別に算出することになります。

  • T:注文回数/月
  • OV:注文金額/回
  • GM:粗利率/回
  • LT:顧客期間(月数)

例えば、顧客別にCR(離反率)を計算し、その値を使って顧客別にLT(顧客期間)を計算するという感じです。

先程述べたように、全体レベルCLTV(Aggregate CLTV)の予測値は、時系列モデルを構築することで求めることができます。

最も簡単なのは、顧客属性などで似たような顧客でグルーピングし、その顧客グループごとに時系列モデルを構築することで、顧客グループ別のCLTVの予測値を求めることができます。

もしくは、顧客属性などを説明変数X(特徴量)とした予測モデルを構築する方法です。

顧客別CLTV(Individual CLTV)の数理モデル

幸運なことに、顧客別CLTV(Individual CLTV)モデルは存在します。RPythonに、そのためのパッケージもあります。

有名なのはPareto/NBDモデル(Pareto/Negative Binomial Distribution)やBG/NBDモデル(Beta Geometric/Negative Binomial Distribution)などです。注文回数を予測することができます。注文金額はGGモデル(Gamma-Gamma model)です。

Rですと、以下のBTYDパッケージです。

BTYD

Pyhtonですと、以下のLifetimesパッケージです。

Lifetimes

別の機会に、パッケージの使い方を含め解説しようとは思いますが、気になる方は使って見てください。さらに、最近ではデープラーニング系のモデルも開発されています。こちらも、別の機会にお話しします。

今回のまとめ

今回は、「CLTV(顧客生涯価値)を算出するなら顧客別CLTV(Individual CLTV)」というお話をしました。

CLTV(顧客生涯価値)には全体レベル(集計レベル)個人レベル(個々の顧客レベル)のものがあります。

全体レベル(集計レベル)CLTV(顧客生涯価値)である(Aggregate CLTV)は、多くの場合驚くほどの予測精度ですが、顧客別の状況が見えません。全体レベルCLTV(Aggregate CLTV)をベースに顧客別CLTV(Individual CLTV)を計算すると、驚くほどに不正確になります。

経営レベルの指標としては全体レベルCLTV(Aggregate CLTV)で良いかもしれませんが、マーケターや営業の現場で活用するときの指標としては顧客別CLTV(Individual CLTV)がいいでしょう。

全体レベルCLTV(Aggregate CLTV)は、顧客別CLTV(Individual CLTV)を集計すれば求めることができるわけですから、CLTV(顧客生涯価値)を算出するなら最初から顧客別CLTV(Individual CLTV)が良いかと思います。

全体レベルCLTV(Aggregate CLTV)の予測値は、時系列モデルを構築することで求めることができます。

顧客別CLTV(Individual CLTV)を計算する最も簡単な方法は、顧客属性などで似たような顧客でグルーピングし、その顧客グループごとに時系列モデルを構築することで、顧客グループ別のCLTVの予測値を求めることができます。もしくは、顧客属性などを説明変数X(特徴量)とした予測モデルを構築する方法です。

経営レベルの指標としては全体レベルCLTV(Aggregate CLTV)で良いかもしれませんが、マーケターや営業の現場で活用するときの指標としては顧客別CLTV(Individual CLTV)がいいでしょう。

全体レベルCLTV(Aggregate CLTV)は、顧客別CLTV(Individual CLTV)を集計すれば求めることができるわけですから、CLTV(顧客生涯価値)を算出するなら最初から顧客別CLTV(Individual CLTV)が良いかと思います。

幸運なことに、顧客別CLTV(Individual CLTV)モデルは存在します。RPythonに、そのためのパッケージもあります。

別の機会に、パッケージの使い方を含め解説しようとは思いますが、気になる方は使って見てください。さらに、最近ではデープラーニング系のモデルも開発されています。こちらも、別の機会にお話しします。

顧客別CLTV(顧客生涯価値)モデルを Python Lifetimes でサクッと作る方法を事例で学ぶ