ペイバックピリオドは、顧客獲得にかけた費用を平均して何ヶ月で回収できるかを表した指標で、投資判断や事業戦略を立てる際に欠かせない指標となります。
特にSaaS企業やサブスクリプションビジネスにおいて、新規顧客の獲得に投じた資金がどれだけ効率的に回収できているかを評価する際に活用されます。
この指標は、特にCFOをはじめとする経営陣や、事業責任者、そしてマーケティング部門のリーダーにとって重要な判断材料となり、定期的な事業レビューや予算策定時に注目されます。
ペイバックピリオドCAC(顧客獲得コスト)を1人の顧客から得られる平均的な月間粗利益で割ることで求めることができます。
なお1人の顧客から得られる平均的な月間粗利益はARPU(1ユーザーあたりのMRR)に粗利益率を掛けることで計算が可能です。
ここからは、実際のデータを使ってペイバック・ピリオドの計算方法を紹介します。
今回は2つのデータを使ってペイバック・ピリオドを計算します。
1つ目のデータは以下のように1行が1件の支払い情報を表し、顧客ID、支払い日、支払い金額などの情報を含むサブスクリプション型のビジネスの支払いデータです。(データはこちらのページからダウンロードできます)
2つ目のデータは、1行がとある月のビジネスのコストに関するデータです。列には製造原価、販売管理費、新規顧客の獲得コストなどの情報があります。(データはこちらのページからダウンロードできます)
なおExploratoryでは、指標を作成するときに2つの方法があります。
AIプロンプト:自然言語でデータを処理する機能で指標を作成する
UIメニュー:UIからアクセス可能なメニューでデータを加工して指標を作成する
こちらのノートではそれぞれの方法を紹介します。
「AIプロンプト」は Businessプラン や Personalプラン といった有料ライセンス、またはそれらのプランを トライアル中のユーザー のみご利用いただけます。
また、AIプロンプトはデバイスがインターネットに接続されている場合のみ利用可能です。
上記のプランをご利用でない場合、またはインターネットに接続されていないデバイスをご利用の場合は、「UIでペイバック・ピリオドを計算する」のセクションに進んでください。
こちらのセクションでは、AI プロンプトを使った指標の作成方法を紹介します。(AIプロンプトの詳細については、こちらをご覧ください。
まず、「AI データ加工」ボタンをクリックして、AI プロンプトのダイアログが表示されたら、以下のようなテキストを入力し、実行します
月ごとにMRR、顧客数、新規顧客の数を集計して
すると、月ごとのMRR、顧客数、新規顧客数を集計するためのコードが生成されるので、結果を確認し、「ステップとして実行」ボタンをクリックします。
ステップが追加され、月ごとの基本指標を計算できました。
次に、コストのデータを結合するため、再度「AI データ加工」ボタンをクリックします。
結合など、他のデータフレームを参照した処理をしたいときには、「$」を入力することで、プロジェクト内のデータフレームを指定できます。
今回はコストのデータフレームと結合したいので、以下のようなテキストを入力し、実行します。
コストを結合して
この操作のより支払いデータにコストデータが結合され、顧客獲得コスト(CAC)を計算するため必要なデータが揃いました。
最後に、準備したデータからペイバック・ピリオドを計算します。「AI データ加工」ボタンをクリックして、AI プロンプトのダイアログが表示されたら、以下のようなテキストを入力し、実行します
ペイバックピリオドを計算して
すると、CAC(顧客獲得コスト)、ARPU(顧客あたりの収益)、粗利益率からペイバック・ピリオドを計算するためのコードが生成されるので、結果を確認し、「ステップとして実行」ボタンをクリックします。
ステップが追加され、ペイバック・ピリオドを計算できました。
ここからはUIでペイバック・ピリオドを計算する方法を紹介します。
ペイバック・ピリオドを計算するためには、CAC(顧客獲得コスト)を計算する必要があり、顧客獲得コストは以下の計算で求められます。
また、ARPU(1ユーザーあたりの平均収益)は以下の計算から求められます。
さらに粗利益率は以下の計算から求められます。
そのため、今回は前述した2つデータから、以下のようなテーブルを作成します。
このようなテーブルを作成できれば、ペイバック・ピリオドを計算するために必要な情報が揃うので、まずは上記のテーブルを作成します。
MRRは月ごとに「支払い金額」の合計値を集計し、顧客数は月ごとに一意(ユニーク)な顧客IDの数を集計することで計算が可能です。
一方で新規顧客の数は、支払いデータを集計をするだけは計算できません。ではどうすればいいかというと、元のデータに支払い回数の情報があれば、支払い回数が1回の顧客の一意な数を集計することで、新規顧客数を計算することが可能です。
そこで、支払いデータに支払回数の情報を計算するために、「支払い日」の列ヘッダーメニューから、「表計算」、「ランキング(隙間なし)」の「昇順」を選択します。
このような処理を行うのは、顧客ごとに支払い日が古い順にランクをつけることで、何回目の支払い回数かを計算できるからです。
このときランキングの方法に「隙間なし」を選択するのは、アップグレードなどによる支払いが同日にあったときに、別の支払いとして扱われないようにするためです。
今回は顧客ごとにランキングを計算したいので、表計算のダイアログが開いたら、グループに「顧客ID」を選択し、プレビューボタンをクリックします。
最後に値の列名を、「支払い回数」に変更し、実行します。
これで支払い回数の情報を支払いデータに追加できました。
続いてMRR(月間定期収益)を集計します。
MRRはそれぞれのユーザーが払った金額の月々の合計値になるため、月々の支払い金額を計算するだけで簡単に計算できます。
「支払い日」の列ヘッダーメニューから、「集計」を選択します。
集計のダイアログが表示されたら、グループに「支払い日」を選択し、日付の単位に「月」で切り捨てを選択します。
続いて値に、「支払い金額」を選択し、集計関数には合計値(SUM)を選択します。
最後に列名をMRRに変更して、プレビューボタンをクリックします。
これでMRRを集計するための設定ができました。
次に顧客数を集計します。
集計のダイアログの値に「顧客ID」を選択し、集計関数に「一意な値の数(UNIQUE)」を選択します。
続いて、編集アイコンをクリックして新しい列名を「顧客数」に変更のうえ、実行ボタンをクリックします。
顧客数を集計する準備ができました。
最後に支払い回数をもとに、新規顧客の数を集計します。
、値に「顧客ID」を選択し、集計関数に「条件に合った一意な値の数(COUNT_UNIQUE_IF)」を選択します。
条件を設定するための「列の設定」ダイアログが表示されるので、列に「支払い回数」、演算子に「等しい」、値に「1」と入力します。
この設定により、「支払い回数」が1回の「顧客ID」の「一意な値の数」を集計できます。
続いて新しい列名に「新規顧客数」と入力し、適用します。
プレビューボタンをクリックして、「新規顧客数」を集計できていることを確認したら、実行ボタンをクリックします。
MRR、顧客数、新規顧客数を集計することができました。
続いて、先程集計したデータにコストの情報を結合します。
「支払い日」の列ヘッダーメニューから「結合(列を追加する/Join)」を選択します。
結合のダイアログが開いたら「結合先データフレーム」にもう一方のコストのデータを選択し、キー列には「日付」を選択し、実行します。
これでペイバック・ピリオドを計算するためのデータをつくることができました。
最後にペイバック・ピリオドを計算します。
まずはCAC(顧客獲得コスト)を計算するために「新規顧客の獲得コスト」の列ヘッダーメニューから、「計算を作成」の「標準」を選択します。
計算を作成ダイアログが開いたら、計算エディタに新規顧客の獲得コスト / 新規顧客数
と入力します。
続いて、新しく列を作成にチェックが付いていることを確認したら、列名を「CAC」に設定のうえ、「この列の後に作る」を「(最後の列)」に設定して、実行します。
CACを計算することができました。
続いて、ARPUを計算します。MRRの列ヘッダーメニューから、「計算を作成」の「標準」を選択します。
計算を作成のダイアログが開いたら、計算エディタにMRR / 顧客数
と入力します。
最後に、「新しく列を作成」にチェックが付いていることを確認し、列名を「ARPU」に設定のうえ、「この列の後に作る」を最後の列に変更し、実行します。
ARPUを計算することができました。
最後に、粗利益率を計算します。「MRR」の列ヘッダーメニューから「計算を作成」の「標準」を選択します。
計算を作成のダイアログが開いたら計算エディタに(MRR - 製造原価) / MRR
と入力します。
次に、「新しく列を作成」にチェックが付いていることを確認し、列名を「粗利益率」に設定のうえ、「この列の後に作る」を最後の列に変更し、実行します。
粗利益率を計算できました。
これでパイバックピリオドを計算するための全ての情報が揃いました。
「CAC」の列ヘッダーメニューから、「計算を作成」の「標準」を選択します。
計算を作成のダイアログが開いたら、計算エディタにCAC / (ARPU * 粗利益率)
と入力します。
次に、「新しく列を作成」にチェックが付いていることを確認し、列名を「ペイバック・ピリオド」に設定のうえ、「この列の後に作る」を最後の列に変更し、実行します。
これでペイバック・ピリオドを計算できました。