STEP 26:顧客生涯価値(LTV)の計算

💰 STEP 26: 顧客生涯価値(LTV)の計算

顧客が生涯でもたらす価値を計算しよう

📋 このステップで学ぶこと

  • LTV(顧客生涯価値)とは何か
  • LTVの計算式(シンプル〜詳細)
  • チャーン率を考慮したLTV
  • CAC(顧客獲得コスト)との関係
  • LTVの実務活用

学習時間の目安:3時間

🔍 1. LTV(顧客生涯価値)とは

基本概念

📌 LTV(Lifetime Value)の定義

1人の顧客が、取引開始から終了までの期間に企業にもたらす利益の総額

なぜLTVが重要なのか:

1. 顧客獲得コストの判断
・LTV > CAC(顧客獲得コスト)なら健全
・例:LTV 10万円、CAC 3万円 → OK!
・例:LTV 5万円、CAC 8万円 → 赤字!

2. マーケティング投資の最適化
・いくらまで広告費をかけられるか
・LTVが高いセグメントに注力

3. ビジネスの持続可能性
・短期的な売上だけでなく、長期的な価値
・LTV向上 = ビジネス成長

4. 顧客セグメントの優先順位
・LTVが高いセグメント → 手厚くケア
・LTVが低いセグメント → コスト削減

LTVの基本計算式

💡 シンプルなLTV計算式

LTV = 平均購買単価 × 購買頻度 × 継続期間

例1:サブスクリプションサービス
・月額料金:1,000円
・平均継続期間:24ヶ月
・LTV = 1,000円 × 24ヶ月 = 24,000円

例2:ECサイト
・平均購買単価:5,000円
・年間購買頻度:4回
・平均継続年数:3年
・LTV = 5,000円 × 4回/年 × 3年 = 60,000円

例3:フィットネスジム
・月会費:8,000円
・平均継続期間:18ヶ月
・LTV = 8,000円 × 18ヶ月 = 144,000円

LTVのバリエーション

計算方法 計算式 用途
シンプルLTV 単価 × 頻度 × 継続期間 簡易的な試算
粗利ベースLTV シンプルLTV × 粗利率 利益ベースの判断
チャーン率ベースLTV 月額収益 × (1/チャーン率) サブスク向け
割引率考慮LTV 将来収益を現在価値に割引 長期投資判断

📊 2. チャーン率を考慮したLTV

チャーン率とは

📌 チャーン率(Churn Rate)

一定期間に解約・離脱する顧客の割合

月次チャーン率の計算:
月次チャーン率 = (月初の顧客数 – 月末の顧客数) / 月初の顧客数 × 100%

例:
・月初:1,000人
・月末:950人(50人解約)
・チャーン率 = 50 / 1,000 × 100% = 5%

平均継続期間との関係:
平均継続期間(月)= 1 / 月次チャーン率

・月次チャーン率 5% → 平均継続期間 = 1/0.05 = 20ヶ月
・月次チャーン率 10% → 平均継続期間 = 1/0.10 = 10ヶ月
・月次チャーン率 2% → 平均継続期間 = 1/0.02 = 50ヶ月

Pythonでの実装

# ============================================ # LTV(顧客生涯価値)計算の実装 # ============================================ # LTVとは? # → 1人の顧客が生涯を通じてもたらす総利益 # → 顧客獲得にいくらまでかけられるかの判断基準 # → ビジネスの健全性を測る重要指標 import pandas as pd import numpy as np # ============================================ # ケース1: シンプルなLTV計算(EC・小売向け) # ============================================ # 計算式: LTV = 平均購買単価 × 購買頻度 × 継続年数 print(“【ケース1: シンプルなLTV】”) avg_purchase = 5000 # 平均購買単価(円) frequency_per_year = 4 # 年間購買頻度(回) avg_years = 3 # 平均継続年数 ltv_simple = avg_purchase * frequency_per_year * avg_years print(f”平均購買単価: ¥{avg_purchase:,}”) print(f”年間購買頻度: {frequency_per_year}回”) print(f”平均継続年数: {avg_years}年”) print(f”LTV = ¥{ltv_simple:,}”) # ============================================ # ケース2: サブスクリプションのLTV(SaaS向け) # ============================================ # サブスクリプションでは「チャーン率」からLTVを計算 # # 平均継続月数 = 1 / 月次チャーン率 # → チャーン率5%の場合: 1/0.05 = 20ヶ月 # # LTV = 月額収益 × 平均継続月数 × 粗利率 print(“\n【ケース2: サブスクリプションのLTV】”) monthly_revenue = 1000 # 月額収益(円) monthly_churn_rate = 0.05 # 月次チャーン率5%(毎月5%が解約) gross_margin = 0.7 # 粗利率70%(売上の70%が粗利) # 平均継続月数の計算 # なぜ「1/チャーン率」で継続月数が分かるか? # → 確率論の「期待値」に基づく # → 毎月5%が解約する場合、平均20ヶ月で全員が入れ替わる avg_lifetime_months = 1 / monthly_churn_rate # LTV計算(粗利ベース) ltv_subscription = monthly_revenue * avg_lifetime_months * gross_margin print(f”月額収益: ¥{monthly_revenue:,}”) print(f”月次チャーン率: {monthly_churn_rate*100:.1f}%”) print(f”平均継続月数: {avg_lifetime_months:.1f}ヶ月”) print(f”粗利率: {gross_margin*100:.0f}%”) print(f”LTV = ¥{ltv_subscription:,.0f}”) # ============================================ # ケース3: チャーン率別のLTV比較 # ============================================ # チャーン率を1%改善するとLTVがどれだけ変わるか? # → チャーン率改善の重要性を数値で示す print(“\n【ケース3: チャーン率別LTV比較】”) churn_rates = [0.02, 0.05, 0.10, 0.15, 0.20] monthly_revenue = 1000 gross_margin = 0.7 print(f”{‘チャーン率’:>10} {‘継続月数’:>10} {‘LTV’:>15}”) print(“-” * 40) for churn in churn_rates: avg_months = 1 / churn ltv = monthly_revenue * avg_months * gross_margin print(f”{churn*100:>9.0f}% {avg_months:>10.0f}ヶ月 {ltv:>14,.0f}円”) print(“\n【重要な示唆】”) print(“・チャーン率が2%→5%に悪化するだけでLTVは半減以下に”) print(“・チャーン率改善は新規獲得と同等以上に重要”)
# 出力例 【ケース1: シンプルなLTV】 平均購買単価: ¥5,000 年間購買頻度: 4回 平均継続年数: 3年 LTV = ¥60,000 【ケース2: サブスクリプションのLTV】 月額収益: ¥1,000 月次チャーン率: 5.0% 平均継続月数: 20.0ヶ月 粗利率: 70% LTV = ¥14,000 【ケース3: チャーン率別LTV比較】 チャーン率 継続月数 LTV —————————————- 2% 50ヶ月 35,000円 5% 20ヶ月 14,000円 10% 10ヶ月 7,000円 15% 7ヶ月 4,667円 20% 5ヶ月 3,500円

LTV計算クラスの実装

# LTV計算クラス class LTVCalculator: “””LTV(顧客生涯価値)を計算するクラス””” def __init__(self, monthly_revenue, churn_rate, gross_margin=1.0): “”” Parameters: ———– monthly_revenue : float – 月額収益(円) churn_rate : float – 月次チャーン率(0〜1) gross_margin : float – 粗利率(0〜1)、デフォルト=1.0 “”” self.monthly_revenue = monthly_revenue self.churn_rate = churn_rate self.gross_margin = gross_margin def avg_lifetime_months(self): “””平均継続月数””” if self.churn_rate == 0: return float(‘inf’) return 1 / self.churn_rate def ltv_simple(self): “””シンプルLTV(売上ベース)””” return self.monthly_revenue * self.avg_lifetime_months() def ltv_profit(self): “””利益ベースLTV””” return self.ltv_simple() * self.gross_margin def ltv_with_discount(self, discount_rate=0.10, periods=60): “”” 割引率を考慮したLTV(現在価値) Parameters: ———– discount_rate : float – 年間割引率 periods : int – 計算期間(月) “”” monthly_discount = discount_rate / 12 retention_rate = 1 – self.churn_rate ltv = 0 for month in range(1, periods + 1): # 月ごとの継続確率 survival_prob = retention_rate ** month # 割引係数 discount_factor = 1 / ((1 + monthly_discount) ** month) # 期待収益 ltv += self.monthly_revenue * self.gross_margin * survival_prob * discount_factor return ltv def report(self): “””LTVレポートを出力””” print(“=” * 50) print(“LTV分析レポート”) print(“=” * 50) print(f”月額収益: ¥{self.monthly_revenue:,}”) print(f”月次チャーン率: {self.churn_rate*100:.1f}%”) print(f”粗利率: {self.gross_margin*100:.0f}%”) print(f”平均継続月数: {self.avg_lifetime_months():.1f}ヶ月”) print(“-” * 50) print(f”シンプルLTV(売上): ¥{self.ltv_simple():,.0f}”) print(f”利益ベースLTV: ¥{self.ltv_profit():,.0f}”) print(f”割引考慮LTV(年10%): ¥{self.ltv_with_discount():,.0f}”) print(“=” * 50) # 使用例 calc = LTVCalculator( monthly_revenue=3000, # 月額3,000円 churn_rate=0.05, # 月次チャーン率5% gross_margin=0.65 # 粗利率65% ) calc.report()
# 出力例 ================================================== LTV分析レポート ================================================== 月額収益: ¥3,000 月次チャーン率: 5.0% 粗利率: 65% 平均継続月数: 20.0ヶ月 ————————————————– シンプルLTV(売上): ¥60,000 利益ベースLTV: ¥39,000 割引考慮LTV(年10%): ¥34,892 ==================================================

💡 3. LTVとCAC(顧客獲得コスト)の関係

CAC(Customer Acquisition Cost)とは

💡 CAC = 新規顧客1人を獲得するのにかかるコスト

CAC計算式:
CAC = (マーケティング費用 + 営業費用) / 新規顧客獲得数

例:
・月間マーケティング費用:300万円
・月間営業費用:200万円
・月間新規顧客:100人
・CAC = (300万 + 200万) / 100人 = 5万円/人

LTV/CAC比率

📌 健全なビジネスの指標

LTV/CAC比率の目安:

3倍以上:非常に健全!(理想的)
2〜3倍:健全(まあまあ良い)
1〜2倍:要改善(ギリギリ)
1倍未満:危険!(赤字)

例1:健全なケース
・LTV:60,000円
・CAC:15,000円
・LTV/CAC = 4.0倍 → 非常に良い!

例2:危険なケース
・LTV:20,000円
・CAC:25,000円
・LTV/CAC = 0.8倍 → 赤字!

回収期間(Payback Period)

💡 CACをどのくらいで回収できるか

回収期間 = CAC / 月間平均収益

例:
・CAC:30,000円
・月額収益:5,000円
・回収期間 = 30,000 / 5,000 = 6ヶ月

目安:
12ヶ月以内:優秀
12〜18ヶ月:許容範囲
18ヶ月超:改善必要

LTV/CAC分析の実装

# LTV/CAC分析 def analyze_ltv_cac(ltv, cac, monthly_revenue): “””LTVとCACの関係を分析””” ratio = ltv / cac profit_per_customer = ltv – cac payback_months = cac / monthly_revenue print(“=” * 50) print(“LTV/CAC分析レポート”) print(“=” * 50) print(f”LTV: ¥{ltv:,}”) print(f”CAC: ¥{cac:,}”) print(f”月額収益: ¥{monthly_revenue:,}”) print(“-” * 50) print(f”LTV/CAC比率: {ratio:.2f}倍”) print(f”顧客1人あたり利益: ¥{profit_per_customer:,}”) print(f”回収期間: {payback_months:.1f}ヶ月”) print(“-” * 50) # 判定 if ratio >= 3: status = “✅ 非常に健全” advice = “成長投資の余地あり” elif ratio >= 2: status = “✅ 健全” advice = “現状維持しつつ効率化を” elif ratio >= 1: status = “⚠️ 要改善” advice = “LTV向上またはCAC削減が必要” else: status = “🚨 危険” advice = “即座にビジネスモデル見直しが必要” print(f”ステータス: {status}”) print(f”アドバイス: {advice}”) print(“=” * 50) return { ‘ratio’: ratio, ‘profit’: profit_per_customer, ‘payback’: payback_months } # 分析実行 result = analyze_ltv_cac( ltv=45000, cac=12000, monthly_revenue=3000 )
# 出力例 ================================================== LTV/CAC分析レポート ================================================== LTV: ¥45,000 CAC: ¥12,000 月額収益: ¥3,000 ————————————————– LTV/CAC比率: 3.75倍 顧客1人あたり利益: ¥33,000 回収期間: 4.0ヶ月 ————————————————– ステータス: ✅ 非常に健全 アドバイス: 成長投資の余地あり ==================================================

🚀 4. LTV改善戦略

LTV向上の3つの戦略

💰 1. 平均購買単価UP

施策:
・アップセル(上位プランへ誘導)
・クロスセル(関連商品提案)
・バンドル販売(セット割)
・段階的値上げ

効果:即効性あり

🔄 2. 購買頻度UP

施策:
・リマインドメール/通知
・定期購入の提案
・ポイントプログラム
・季節キャンペーン

効果:中期的に効果

📅 3. 継続期間延長

施策:
・オンボーディング強化
・カスタマーサポート充実
・継続特典(継続割引等)
・コミュニティ形成

効果:最も効果大

改善効果シミュレーション

# LTV改善効果シミュレーション def simulate_ltv_improvement(base_ltv, cac, customers): “””LTV改善シナリオをシミュレーション””” scenarios = { ‘現状’: 1.00, ‘チャーン-20%’: 1.25, # チャーン率20%改善でLTV25%UP ‘単価+10%’: 1.10, ‘頻度+10%’: 1.10, ‘総合改善’: 1.50 } print(“=” * 60) print(“LTV改善シナリオ分析”) print(f”基準LTV: ¥{base_ltv:,} / CAC: ¥{cac:,} / 顧客数: {customers:,}人”) print(“=” * 60) print(f”{‘シナリオ’:<15} {'LTV':>12} {‘LTV/CAC’:>10} {‘総利益’:>15}”) print(“-” * 60) for scenario, multiplier in scenarios.items(): new_ltv = int(base_ltv * multiplier) ratio = new_ltv / cac total_profit = (new_ltv – cac) * customers print(f”{scenario:<15} ¥{new_ltv:>10,} {ratio:>9.2f}倍 ¥{total_profit:>13,}”) print(“=” * 60) # 改善余地の計算 current_profit = (base_ltv – cac) * customers improved_profit = (base_ltv * 1.5 – cac) * customers improvement = improved_profit – current_profit print(f”\n💡 総合改善による利益増加: ¥{improvement:,} (+{improvement/current_profit*100:.1f}%)”) # シミュレーション実行 simulate_ltv_improvement( base_ltv=30000, cac=8000, customers=1000 )
# 出力例 ============================================================ LTV改善シナリオ分析 基準LTV: ¥30,000 / CAC: ¥8,000 / 顧客数: 1,000人 ============================================================ シナリオ LTV LTV/CAC 総利益 ———————————————————— 現状 ¥30,000 3.75倍 ¥22,000,000 チャーン-20% ¥37,500 4.69倍 ¥29,500,000 単価+10% ¥33,000 4.12倍 ¥25,000,000 頻度+10% ¥33,000 4.12倍 ¥25,000,000 総合改善 ¥45,000 5.62倍 ¥37,000,000 ============================================================ 💡 総合改善による利益増加: ¥15,000,000 (+68.2%)

📑 5. Excelでの実装

LTV計算式

【ExcelでのLTV計算】 === 基本データ === A1: 月額収益 A2: 月次チャーン率 A3: 粗利率 === 計算式 === 【平均継続月数】 B1: =1/A2 【シンプルLTV(売上ベース)】 B2: =A1*B1 【利益ベースLTV】 B3: =B2*A3 【LTV/CAC比率】 ※ CAC(顧客獲得コスト)をA4に入力 B4: =B3/A4 【回収期間(月)】 B5: =A4/A1 === 判定 === 【LTV/CAC判定】 =IFS( B4>=3, “非常に健全”, B4>=2, “健全”, B4>=1, “要改善”, TRUE, “危険” ) 【回収期間判定】 =IFS( B5<=12, “優秀”, B5<=18, “許容範囲”, TRUE, “改善必要” )

📝 STEP 26 のまとめ

✅ このステップで学んだこと

1. LTVの基本

  • 顧客が生涯でもたらす価値の総額
  • LTV = 単価 × 頻度 × 継続期間

2. チャーン率との関係

  • 平均継続月数 = 1 / チャーン率
  • チャーン率改善がLTV向上の鍵

3. LTV/CAC比率

  • 3倍以上が健全な目安
  • 1倍未満は危険信号

4. LTV改善戦略

  • 単価UP、頻度UP、継続期間延長
  • 継続期間延長が最も効果的
💡 最も大切なポイント

LTVは、ビジネスの持続可能性を測る最重要指標です!

実務での活用:
・マーケティング予算の適正化
・顧客セグメント別の投資判断
・ビジネスモデルの健全性チェック
・投資家へのアピール材料

次のSTEP 27では、チャーンレート分析をさらに深掘りします!

🎯 次のステップの予告

STEP 27では、「チャーンレート(解約率)分析」を学びます。チャーンの原因を特定し、解約を防止するための分析手法を習得しましょう!

📝 練習問題

問題 1 基礎

LTV(顧客生涯価値)とは何ですか?簡潔に説明してください。

【解答】

LTV(Lifetime Value)とは、1人の顧客が、取引開始から終了までの期間に企業にもたらす利益の総額です。

計算式:
LTV = 平均購買単価 × 購買頻度 × 継続期間

重要な理由:
・顧客獲得コスト(CAC)の適正値を判断
・マーケティング投資の最適化
・ビジネスの持続可能性の評価

問題 2 基礎

あるサブスクリプションサービスの情報:

・月額料金:2,000円
・月次チャーン率:10%
・粗利率:60%

このサービスのLTVはいくらですか?

【解答】¥12,000

計算手順:

ステップ1:平均継続月数を計算
平均継続月数 = 1 / 月次チャーン率
= 1 / 0.10 = 10ヶ月

ステップ2:LTVを計算
LTV = 月額料金 × 平均継続月数 × 粗利率
= 2,000円 × 10ヶ月 × 0.60
= 12,000円

補足:

チャーン率を5%に改善できれば、LTVは24,000円に倍増!

問題 3 応用

以下の情報から、LTV/CAC比率と回収期間を計算し、ビジネスの健全性を評価してください。

・LTV:¥45,000
・CAC:¥18,000
・月額収益:¥3,000

【解答】

計算:

LTV/CAC比率:
= 45,000 / 18,000 = 2.5倍

回収期間:
= CAC / 月額収益 = 18,000 / 3,000 = 6ヶ月

評価:

・LTV/CAC 2.5倍 → 健全(2〜3倍の範囲)
・回収期間 6ヶ月 → 優秀(12ヶ月以内)

総合評価:ビジネスは健全だが、LTV向上でさらに成長可能

問題 4 応用

2つのマーケティングチャネルを比較してください。

チャネルA:CAC: 8,000円、獲得顧客のLTV: 40,000円
チャネルB:CAC: 12,000円、獲得顧客のLTV: 60,000円

どちらのチャネルに優先的に投資すべきですか?

【解答】チャネルBを優先

分析:

チャネルA:
・LTV/CAC = 40,000 / 8,000 = 5.0倍
・顧客1人あたり利益 = 40,000 – 8,000 = 32,000円

チャネルB:
・LTV/CAC = 60,000 / 12,000 = 5.0倍
・顧客1人あたり利益 = 60,000 – 12,000 = 48,000円

判断:

LTV/CAC比率は同じ(5.0倍)だが、チャネルBの方が1人あたり利益が16,000円多い
チャネルBを優先しつつ、リスク分散のため両方に投資するのがベスト。

問題 5 実践

以下のSaaSビジネスの状況を分析し、LTV改善の優先施策を提案してください。

・月額料金:¥5,000
・月次チャーン率:8%
・粗利率:70%
・CAC:¥30,000
・顧客数:500人

【解答】

現状分析:

平均継続月数:1 / 0.08 = 12.5ヶ月
LTV(売上):5,000 × 12.5 = ¥62,500
LTV(利益):62,500 × 0.70 = ¥43,750
LTV/CAC比率:43,750 / 30,000 = 1.46倍
回収期間:30,000 / 5,000 = 6ヶ月

診断:

・LTV/CAC 1.46倍 → 要改善(目標は3倍以上)
・チャーン率 8% → 業界平均より高め(SaaSは5%以下が理想)

優先施策:

1位:チャーン率改善(最優先)
・チャーン率を8%→5%に改善すれば:
 継続月数:12.5ヶ月 → 20ヶ月
 LTV:¥43,750 → ¥70,000
 LTV/CAC:1.46倍 → 2.33倍
・施策:オンボーディング強化、サポート改善、解約予兆検知

2位:単価アップ
・上位プランへの誘導
・追加機能のアップセル

3位:CAC削減
・紹介プログラムの導入
・コンテンツマーケティング強化

❓ よくある質問

Q1: 粗利率を考慮すべきですか?
はい、より正確なLTV計算には粗利率が必要です。

粗利率を考慮しない場合:
・売上ベースのLTV
・過大評価になる危険

粗利率を考慮する場合:
・利益ベースのLTV
・より実態に近い

例:
・売上LTV:100,000円
・粗利率:30%
・利益LTV:100,000円 × 0.30 = 30,000円

推奨:戦略判断には利益ベースのLTVを使う!
Q2: LTVは業種によって異なりますか?
はい、業種や業態によって大きく異なります。

SaaS(B2B):
・LTV:数十万〜数百万円
・LTV/CAC:3〜5倍が目標

サブスク(B2C):
・LTV:数千円〜数万円
・継続率が重要

EC(単発購入):
・LTV:数万円
・リピート率がカギ

高額商品(不動産など):
・LTV:数百万〜数千万円
・紹介が重要
Q3: LTVを高めるための具体的な施策は?
3つの軸で改善します。

1. 平均購買単価を上げる:
・アップセル(上位プランへの誘導)
・クロスセル(関連商品の提案)
・バンドル販売(セット割)

2. 購買頻度を上げる:
・リマインド(メール、プッシュ通知)
・定期購入の提案
・ポイントプログラム

3. 継続期間を延ばす:
・オンボーディング強化
・カスタマーサポート充実
・継続特典(継続割引など)

効果的な順序:
まず継続期間延長 → 次に頻度UP → 最後に単価UP
Q4: LTV/CAC比率の「3倍以上」という目安はどこから来ていますか?
SaaSビジネスのベストプラクティスから来ています。

なぜ3倍なのか:
・1倍:トントン(利益なし)
・2倍:利益はあるが、成長投資余地が少ない
・3倍:健全な利益を確保しつつ、成長投資も可能

内訳の目安:
・CAC回収:1倍分
・運営コスト:1倍分
・利益・成長投資:1倍分

注意:
・業種によって目安は異なる
・5倍以上は「投資不足」の可能性も
Q5: 新規ビジネスでLTVが分からない場合はどうすれば?
仮説ベースで計算し、データが溜まったら更新します。

初期段階のアプローチ:
1. 業界平均のチャーン率を参考に仮定
2. 競合他社のLTVを推定
3. 保守的な数値で計算

データ蓄積後:
・3ヶ月後:初期チャーン率を測定
・6ヶ月後:より正確なLTV推定
・12ヶ月後:信頼性の高いLTV算出

重要:
・最初は保守的に見積もる
・定期的に再計算して更新
Q6: LTVとRFM分析の関係は?
RFMで現状を把握し、LTVで将来価値を予測します。

RFM分析:
・過去〜現在のデータ
・顧客の「現在の状態」を分類
・今すぐ打つべき施策を決める

LTV分析:
・将来の予測
・顧客が「生涯で」もたらす価値
・投資判断に使う

組み合わせ方:
1. RFMでセグメント分類
2. 各セグメントのLTVを計算
3. LTVが高いセグメントに注力

例:
・Champions(RFM)→ LTV ¥100,000
・At Risk(RFM)→ LTV ¥60,000
→ At Riskの離脱防止が重要!
📝

学習メモ

ビジネスデータ分析・意思決定 - Step 26

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE