成長率が高く、潤沢な資金を持つ優良なSaaS企業を「SaaSの40%ルール」で見つけられるのか?(2022/08月版)

スポンサーリンク
投資

クラウド上でブラウザ経由で必要なサービスを提供するSaaS企業(Software as a Service)は従来のPER,PBRといった指標で評価するのは難しいといった課題がありました。そういった企業群を評価するために成長率利益率を基準に評価できるのではないか、という考え方になります。

2016年からコロナの急落を経て2021/10月まで多くの銘柄がこの指標をもとに評価されてきました。

企業の売上高の成長率が100%あるならば営業利益率は-60%までは許容できるし、企業の売上高の成長率が20%であれば、営業利益率は20%以上欲しい、、というようなことになります。

その背景にはトップラインである売上高が成長しているのであれば、新興企業という事もあり若干の赤字は仕方がない、市場のシェアを取りに行っているのだ、、という見方があるためです。

評価軸として、MRR: Monthly Recurring Revenue(月間定額収益)を使用したり、FCF(フリーキャッシュフロー) MarginFCF/売上高 %)を使うことが多いようです。

Yahoo Finance US!からのデータ取得

ここでは簡易的にRevenueGrowthとProfitMarginを利用しています。
銘柄については純粋なSaaS企業だけでなく、時価総額上位10銘柄も入れて、バブルの大きさは時価総額の大きさにしてあります。

2022/08/05時点データ

2022/08/05時点のデータと2022/07/22時点のデータを比較するとTSLAの位置がRevenueGrowthが下がっているせいか若干、位置ならびにRevenueGrowthのProfitMarginの値が下がっているのが見て取れます。

2022/07/22時点データ

Yahoo Finance USで取れる情報についてはTTM(Trailing Twelve Months:直近12ヵ月)データなど、完全に取り切れない部分もあるので、残念ながらこのくらいであきらめることにします。

MERITECHを利用する場合

SaaSの評価に特化したサイトがあったりしますので、それを利用します。

Meritech Capital
We help build market-leading companies in the markets that matter.

上記サイトを見ていただくと %YoY GrowthFCF の値のみでなく、ずばりRule of 40の値も出ていたりします。このサイトのデータをエクセルなどでプロットする手もあるのですが、今回はPythonでプロットすることにします。

他のサイト様ですし、スクレイピングについては割愛させていただき、プロット部分のみ紹介します。

plt.rcParams["font.size"] = 12
sns.lmplot(x="Implied ARR", y="FCF", data=out, height=8, aspect=1.5)
plt.grid(True)

p = np.linspace( -10, 180, 100)   # linspace(min, max, N) で範囲 min から max を N 分割します
q = -1*p+40
plt.plot(p, q,'r-.')

for i,(x,y) in enumerate(zip(out["Implied ARR"],out["FCF"])):
    plt.annotate(str(out.index[i]),(x,y))

売上高成長率とキャシュフローマージンでクロスプロットし、Rule of 40の想定となるラインを赤の点線でラインを引いたものになります。2022/08/12日時点で84銘柄あるようですので、少し中央あたりは少し混雑しているようですので、数字だけ抜き出し、Rule of 40の値が40以上の物を抜き出すと以下のようになるようです。

display(out[["3-Mo","12-Mo","Implied ARR","FCF","Rule of 40"]][out["Rule of 40"]>40])

また、これらの銘柄がどのような値動きだったかも3カ月と12カ月のデータもあるようなので、X軸をRule of 40の値で、Y軸を3カ月と12カ月としたクロスプロットも載せておきます。

3カ月

plt.rcParams["font.size"] = 12
sns.lmplot(x="Rule of 40", y="3-Mo", data=out, height=8, aspect=1.5)
plt.grid(True)

for i,(x,y) in enumerate(zip(out["Rule of 40"],out["3-Mo"])):
    plt.annotate(str(out.index[i]),(x,y))

12カ月

plt.rcParams["font.size"] = 12
sns.lmplot(x="Rule of 40", y="12-Mo", data=out, height=8, aspect=1.5)
plt.grid(True)

for i,(x,y) in enumerate(zip(out["Rule of 40"],out["12-Mo"])):
    plt.annotate(str(out.index[i]),(x,y))

12カ月前のRule of 40の値を使うのが筋ですが、今現状ある値を使うという意味で、参考になればと思います。また、この値をCSV等で出力しておいて、数か月後に騰落と確認という事もできると思います。

3カ月後、6カ月後などに、今回の銘柄群がどのような値動きをしたのか、追記などできればと思います。

CSVデータ

2022/08/16時点でのCSVデータ:

—-

投資に関する記事をご紹介します。

【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
【コピペで動く!】日本株、米国株で個別銘柄ベータ値(β値)を簡単に調べる方法 Python 米国株 Webサービス&コード 【Google Colabで違いをみつけろ!】
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
米国債のゼロクーポン債STRIPSについてのメモ
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
ボラティリティ クラスタリング(Volatility Clustering)について:Google ColabのPythonでの相場環境分析
過去50年間のS&P500の季節性の値動きから負けにくいポジション構築はできるのか考える・大統領選挙のアノマリー対応!【コピペで動く!】Google ColabのPythonで自分で調べてみよう!
自動化・効率化でなにができるのか!Google FinanceやYahoo Financeからデータ取得して年初来パフォーマンスや週次騰落率のファクターチェック
【違いをみつけろ!】StockChartsの使い方を紹介します!12枚のミニチャート表示や、 米国株配当分考慮パフォーマンスや配当・逆イールド・相対比較が可能です!
曜日による米国株指数(S&P500)のパフォーマンスに違いはあるのか?有利なポジション取りはできるのか?【Google ColabのPython:コピペで動く!】Twitterで出てくる知見は本当か自分で調べてみよう。
IB証券でのオプション売り、ショートストラングルの実際(GLDでの例)”プットを売って、原資産が下がる”とどうなるか?!
プログラム環境構築初心者用におすすめ!Windows10にPython3.9.2をインストールしてIB証券のTWS経由でAPI接続してみた!
【コピペで動く!】レイ・ダリオ推奨「オール・ウェザー戦略」をETFで構築するには? ETFの手軽さとそのパフォーマンスの高さとは!【違いをみつけろ!】

コメント

タイトルとURLをコピーしました