生存率使ったSaaSのCLV(顧客生涯価値)の計算を、AIにやらせたら一瞬で終わった

SaaSやサブスクリプション型のビジネスを運営していて、CLV（顧客生涯価値）の計算に頭を悩ませていませんか？

「詳しい計算方法がわからないんで、これまでの勘や経験で試算している」「リテンション率を使った計算方法があるのは知ってるけど正確性に疑問がある...」

そんな悩みを抱えている方に朗報です。データの加工、可視化、分析、レポーティングのためのUIツールの[Exploratory](https://exploratory.io/?utm_campaign=ai-clv&utm_medium=blog&utm_source=qiita)の「AI プロンプト」を使ったら、これが驚くほど簡単でした。

「AIプロンプト」を使うと、日本語で「生存分析用のデータを作成して」「月間の生存率を計算して」「ARPUが10000円のときのCLVを計算して」と指示するだけで簡単にCLVの計算ができたので、今回は実際に試した内容を紹介します。

# CLVとは

CLV（Customer Lifetime Value/顧客生涯価値）は、LTV（Lifetime Value）とも呼ばれSaaSを含むサブスクリプション・ビジネスにとって非常に重要な指標です。

例えば、毎月1万円のサービスを例に考えてみます。

最初の1ヶ月は顧客から1万円の収益しか得られませんが、この顧客がその後12ヶ月間サービスを継続した後にキャンセルした場合、この顧客からは通算で12万円の収益を得られます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/686f57d0-cc2a-4616-b59d-1436fc926c2d.png)

このように、顧客がサービスを利用開始してからキャンセルするまでの期間に得られる総収益を「CLV」と呼び、CLVを通して「一人の顧客が自分たちのビジネスにとってどれだけの価値があるか」を計ります。

CLVを理解できれば、新規顧客の獲得や既存顧客のリテンションにどれくらいの費用をかけられるかを決められるので、CLVを知ることは重要です。

またCLVをより正確に計算できれば費用のかけ方を最適化できるだけでなく、CLVが増えているのであれば、将来の収益の成長を見込めるため、経営陣やマーケティングチーム、プロダクトチーム、カスタマーサクセスチームは月次から年次の頻度で定期的にCLVを計算、モニターします。

# CLVを計算する3つの方法

CLVは以下の3つの方法で計算することができ、ここからはそれぞれの計算方法を簡単に紹介します。

## 1. 勘でCLVを見積もる

最も簡単な方法は経験則に基づく推測です。

例えば、顧客が平均12ヶ月間サービスを利用すると想定し、月額1万円のサービスであれば、12ヶ月 × 1万円 = 12万円と計算するアプローチです。

この方法は簡単ですが、実際には顧客のキャンセル（解約）の実態を考慮していないため現実的ではありません。

## 2. キャンセル率からCLVを推定する

計算の詳細の説明は省きますが、キャンセル率を使った計算方法では、まず`1 ÷ キャンセル率`で顧客の平均継続期間を求めます。

例えば月次のキャンセル率が10%の場合、平均継続期間は 1 ÷ 0.1 = 10ヶ月となり、顧客から得られる月間のARPU（顧客あたりの収益）が10万円の場合、CLVは 10ヶ月 × 1万円 = 10万円と計算できます。

ただし、この計算にも問題があります。実際のキャンセル率はそのときどきで変動するため、一定のキャンセル率を前提とした平均継続期間の計算は正確とは言えません。

## 3. 生存率からCLVを推定する

より正確なCLV計算方法は、顧客の生存率を使った推定です。

生存率とは、サービス開始から特定の期間が経過した時点ごとに、どの程度の顧客がまだサービスを利用しているかを示しており、利用期間ごとのリテンション率です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/304a36c0-c7bd-44a1-88c8-884c209e2908.png)

このアプローチが優れている理由は、単一のキャンセル率だけの計算では捉えられない、利用期間による生存率の変化を反映できるため、より実態に即したCLVを算出できる点にあります。

# 生存率を使ってCLVを計算する手順

例えば1行が1人の顧客の支払いを表す、よくある支払いデータが手元にある場合を例に考えてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/80750605-0b6c-42f2-998d-3a0e07ae050c.png)

このような支払いデータからCLVを計算するためには、以下の作業が必要です。（データは[こちら](https://exploratory.io/data/exploratory/TDY9Yyq0?utm_campaign=ai-cohort&utm_medium=blog&utm_source=qiita)からダウンロードいただけます。）

1. 生存分析用のデータを作成する
2. 月間の生存率を計算する
3. 生存率をもとにCLVを計算する

ここからは、それぞれの作業の手順を簡単に紹介します。

## 1. 生存分析用のデータを作成する

生存率を計算するための最も簡単な方法は、生存分析を行うことです。

また、生存分析を行うためのデータの持ち方はいくつかありますが、最も効率的なアプローチは、以下のように1行が1人の顧客を表し、「契約開始日」、「契約終了（予定）日」「キャンセルしているかどうか」の列をもったデータを用意することです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/1a218d19-c5b9-4010-85b7-6b6386812f91.png)

この時点で、頭を抱えたくなる方もいるかと思いますが、このようなデータを用意するには以下の工程が必要です。

1. 顧客ごとの支払い履歴データを収集する
2. 顧客ごとにデータをグループ化する
3. 顧客ごとに最初の支払い日と最後の支払い日を集計する
4. 最後の支払い日をもとに契約終了日を計算する（最後の支払い日が契約終了日ではないため）
5. 契約終了日とデータ上の最後の日付を比べて、契約終了日がデータ上の最後の日付より未来でない場合はキャンセルのフラグをつける

「え、こんなに手順が多いの！？」と驚くかもしれませんが、これが現実です。

大量の支払いデータから顧客ごとの最初と最後の支払日を抽出する作業は、Excelのピボット機能では限界があります。

また、日付の計算にも思わぬ落とし穴があり、例えば「1月31日の1ヶ月後」をどう扱うかなど、細かな考慮が必要になります。

そのため、この一連の手順を完了させるには、SQL、Python、Rなどのプログラミングスキル、あるいはデータ加工の専門知識がない担当者にとっては大きな障壁となります。

## 2. 月間の生存率を計算する

また何とか生存分析用のデータを作成したとしても、次に問題になるのが、生存率の計算です。

生存率の計算には、一般的にカプランマイヤー法と呼ばれる統計手法が使われます。このカプランマイヤー法を使った処理はExcelでは実現が難しく、RやPythonなどの統計解析用のプログラミング言語を使って実装するのが一般的です。

もちろん、カプランマイヤー法を使わずに、各ユーザーをサービスの利用開始時期ごとにグループに分けて、グループごとにサービスの利用期間ごとのリテンション率をそれぞれ求めていくことはできなくもありません。

しかし、それは非常に手間のかかる作業で、効率的な計算にはSQLなどのプログラミングスキルが必要になります。

## 3. 生存率をもとにCLVを計算する

生存率を計算できたら、以下の手順でCLVを計算します。

1. 各期間の期待収益を算出: 生存率 × ARPU（顧客あたりの収益）で各期間の期待収益を計算します。 例：1ヶ月後の生存率80％ × 月額1万円 = 1ヶ月後の期待収益8,000円

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/97c65691-be6b-422a-a74e-17ac47136f01.png)

2. 全期間の期待収益を合算してCLVを計算: すべての期間の期待収益を足してCLVを求めます。 CLV = 1ヶ月目 + 2ヶ月目 + 3ヶ月目 + ... + n月目

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a7a65c76-2499-433c-910b-5f62aadb4035.png)

これらの計算自体はシンプルですが、そもそも正確な生存率を計算するまでのプロセスが技術的に非常に複雑です。

生存分析用のデータ作成からカプラン・マイヤー法による生存率の算出まで、専門的な統計知識やプログラミングスキルが必要となるため、多くの企業では「重要性はわかっているけれど、実装が難しい」という理由で正確なCLV計算を諦めてしまうケースも少なくありません。

# AIプロンプトでCLVを計算する

Exploratoryの「AIプロンプト」機能を使えば、このような複雑な処理がたったの3回の指示で完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f5cd2b48-c33b-4adf-a0da-b7d9723330e2.png)

支払いデータが手元にあれば、AIプロンプトに「生存分析用のデータを作成して」とタイプするだけで、必要なデータ処理のステップを、データ分析のための専用言語であるRのコードとして自動的に生成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a44e8d92-cd1f-47d7-85e8-5569c94ac211.png)

これだけで、生存分析を行うためのデータを作成するためのコードがステップとして追加されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/e3ae261c-abf6-474a-9891-d332cc3c0ec8.png)

続いて「月間の生存率を計算して」と指示すると、必要なデータ処理のステップを、データ分析のための専用言語であるRのコードとして自動的に生成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/6f6ca45d-83fd-464c-8da1-2defc11b1ce0.png)

先ほどと同じように、AIが出力したコードがステップとして追加され、カプラン・マイヤー法を利用した月間の生存率の計算（生存分析）が完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/59e780cf-f675-4edb-b8aa-2334be0c5ed8.png)

最後に「ARPU（顧客あたりの平均収益）が10000円のときのCLVを計算して」と指示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/329b21f0-6b96-49af-a3e5-b0d4fe56af04.png)

すると生存率をもとにしたCLVの計算コードが追加され、CLVの計算が完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/674b4f65-643e-42af-b593-c4e3ea66431c.png)

# 自分のデータで今すぐ試してみたい！

今回はAIプロンプトを使って、CLVを計算する方法を紹介しました。

これまで専門知識がないと難しかったデータ加工や分析が、たった一行の日本語入力で完了します。そのため、専門知識がなくても、データサイエンティストやプログラマーを雇わなくても、自身の手でSaaS指標の作成や分析が可能になります。

Exploratoryでは30日間の無料トライアルをご用意しているので、気になった方は、ぜひお試しください！

https://exploratory.io/?utm_campaign=ai-clv&utm_medium=blog&utm_source=qiita