it's an endless world.

グロースをデザインするひと

ユーザの平均継続期間が「1/解約率」で求められることの数学的証明

グロース分野においてユーザがそのサービスを平均でどのくらいの期間使ってくれるか?という数値は重要な値です。

例えば、広告の費用対効果を見るためにも計算するLTV(Life Time Value)。
LTVはユーザを1人獲得することで平均でどのくらいの売上に繋がるかという値ですので、平均継続期間×ARPUという算出方法になります。

ここで、ARPU(Average Ravenue Per User)のほうの計算は簡単です。
1ユーザあたりの売上を表す数字ですので一定期間の売上/ユーザ数、以上です。

しかし、ユーザの平均継続期間はどのように計算するべきでしょうか?

離脱したユーザのデータを基に算出しようとしても、それはあくまでも「離脱したユーザ」の平均値となり全体の平均とは異なる明らかに誤ったサンプルから得られた結果となってしまいます。
そしてもちろん、多くのユーザはまだそのサービスを使っているはずで「いつ辞めるか」という未来のデータは取得し得ません。

では、ユーザの平均継続期間を計算することは不可能なのでしょうか?

謎の公式、「1/解約率」

いえ、そうではありません。

ここで出てくるのがタイトルにも入っている「1/解約率」という謎の公式です。

この公式に当てはめると、例えば月の解約率が4%のサービスのユーザの平均継続期間は1/0.04=25ヶ月となります。

??????」となりますよね。

私もそうでした。
よくわからないし納得はあまりできないんですが、他に算出の仕方もないしみんなが使っているししょうがないな、と不安げに使ってました。

そんな感じで超不安げに使っていたんですが、なんかいきなり閃きまして

この公式を数学的にしっかりと証明できたので共有しておきたいと思います。

証明の前に

実際の証明に入る前に平均継続期間とは何か?ということをあらためてはっきりさせておきましょう。

例えば、2ヶ月継続したユーザと4ヶ月継続したユーザの2人のユーザがいたサービスがあったとします。この2人のみ。寂しい。
この場合、平均継続期間は \frac{2+4}{2}=3とシンプルです。

月の1人あたりの売上単価×月数が売上になるので、この計算は妥当かと思います。
(この例だと「売上単価×6」の売上が発生)

このように、平均継続期間=ユーザの延べ継続期間/ユーザ数と定義できます。

それを踏まえて、ユーザ数10,000人で月の解約率が10%のサービスを想定してみましょう。

月々のユーザ数の推移は次の表のようになります。

期間 ユーザ数 延べ継続期間
0ヶ月目 10,000 10,000
1ヶ月目 9,000 19,000
2ヶ月目 8,100 27,100
3ヶ月目 7,290 34,390
4ヶ月目 6,561 40,951
5ヶ月目 5,905 46,856
... ... ...
∞ヶ月目 0 ???

ユーザ数は最終的に0になって延べ継続期間はそれ以上増えなくなります。
さて、その時点の延べ継続期間はどのような値になっているでしょうか?

ちょっと視点を変えて先ほどの表を見てみます。

期間 ユーザ数 0ヶ月目との比率
0ヶ月目 10,000 1=(1-10%)^0
1ヶ月目 9,000 (1-10%)=(1-10%)^1
2ヶ月目 8,100 (1-10%)^2
3ヶ月目 7,290 (1-10%)^3
4ヶ月目 6,561 (1-10%)^4
5ヶ月目 5,905 (1-10%)^5
... ... ...
∞ヶ月目 0 (1-10%)^∞

一般化して、ユーザ数がUで解約率がCのサービスの場合の表は次のようになります。

期間 ユーザ数
0ヶ月目 U*(1-C)^0
1ヶ月目 U*(1-C)^1
2ヶ月目 U*(1-C)^2
3ヶ月目 U*(1-C)^3
4ヶ月目 U*(1-C)^4
5ヶ月目 U*(1-C)^5
... ...
∞ヶ月目 U*(1-C)^∞

こうして見てみると、各月のユーザ数は初項Uで公比(1-C)の等比数列であると見ることができます。

等比数列の和であれば高校数学で求めることができます。
その結果が延べ継続期間となり、それをユーザ数Uで割れば本題の平均継続期間となります。

それでは、この等比数列の和を求めていきましょう。

証明開始

まず、初項Uで公比(1-C)の等比数列の和は次のように表現できます。
 \displaystyle
\sum_{k=0}^\infty U(1-C)^k

これを極限記号limを使って置き換えると次のようになります。
 \displaystyle
\lim_{n \to \infty}\sum_{k=0}^n U(1-C)^k

公比が1でない場合は次の公式を用いることで総和記号Σを展開できます。*1
 \displaystyle
\sum_{k=1}^n ar^{k-1} = \frac{a(1-r^n)}{1-r}

つまり、このように展開できることに。
 \displaystyle
\lim_{n \to \infty} \frac{U(1-(1-C)^{n+1})}{1-(1-C)}

これの分母と分子をすっきりさせると。
 \displaystyle
\lim_{n \to \infty} \frac{U - U(1-C)^{n+1}}{C}

ちょっと形を変えてこう。
 \displaystyle
\lim_{n \to \infty} \left( \frac{U}{C} - \frac{U(1-C)^{n+1}}{C} \right)

極限記号の加減の法則からこのように分割。
 \displaystyle
\lim_{n \to \infty} \frac{U}{C} - \lim_{n \to \infty} \frac{U(1-C)^{n+1}}{C}

前者は中身にnを含まないので、極限記号limを削除。
 \displaystyle
\frac{U}{C} - \lim_{n \to \infty} \frac{U(1-C)^{n+1}}{C}

後者はCが必ず0<C<1の値を取ることから|(1-C)|<1となり、その無限乗は0になります。つまり、0。
 \displaystyle
\frac{U}{C} - 0

最終的にビックリするほどシンプルな式になりました。
 \displaystyle
\frac{U}{C}


複雑な式が続いてお忘れの方も多いかも知れませんが、ここで求めたものは延べ継続期間でしたよね。
なので、先述のとおりこれをユーザ数Uで割れば本題の平均継続期間となります。

つまりはこれ。
 \displaystyle
\frac{U}{C} \times \frac{1}{U} = \frac{1}{C}

お題の「1/解約率」が導かれました。

Quod Erat Demonstrandum.

まとめ

今まで「本当にこの計算で大丈夫か!!!?」と不安がりながら使っていましたが、これでようやく大手を振るってこの公式が使えるようになりました。
安心。
超安心。

みなさんも、LTVの計算をしたいときなどにぜひ安心してこれを利用してください。

というか、広告うつ前にちゃんとLTVの計算しておこうね(´・ω・`)

でもいちおう、注意点

会社のキャッシュがあと数ヶ月で底をつくのに25ヶ月後までの売上なんて見れないよ!みたいなときは意味が無いのでご注意をば。

おまけ

初めて、Google Chart APIで数式作ってみたけどこれマジで便利だな!!
Google Chart Toolsを使った数式の書き方

2024/6/25追記
いつの間にかGoogle Chart APIが廃止になっていたのではてな記法LaTexに書き換え。
intercord.jp

*1:詳細はWikipediaの等比数列のページでも見てください。