TT Lab
はじめる
学ぶ 学習パス コース

開発者の起業 — 作る前に検証する

資本政策表をラウンドまで自分で回す

TT Labで続きを見る

目標

架空の会社の資本政策表に、ベスティング・退職者の買い戻し・ポストマネーSAFEの転換・オプションプールの増加を含むシードラウンドを、順に適用し、段階ごとに誰がどれだけ希薄化されるかを計算します。

なぜ重要なのか

持分の条件は契約書に書かれますが、その結果は、計算してみる前には見えません。ベスティングのない持分、互いを希薄化するSAFE、プレマネーに入ったプールの増加は、創業者の取り分を静かに変えます。自分で計算できてこそ、交渉の席の数字を読めます。(法律・税務の助言ではありません。)

用意するもの: /opt/fixtures/founder/equity/company.json

定義

ステップ

  1. /root/founder/equity/equity.pyに、vested(shares, start, cliff, total, on)を作る(日付は"YYYY-MM-DD"の文字列、整数を返す)。
  2. /root/founder/equity/departures.jsonに、去った人ごとに{"left_on", "months", "vested", "repurchased"}を書く(キーは名前)。
  3. /root/founder/equity/cap_pre.jsonに、holders(名前・pool_granted・pool_unissued → 株式数、去った人も残った株式として含める)、total、ownershipを書く。
  4. equity.pyに、safe_shares(C, safes)(safesは用意したデータのリストそのままで、同じ順序の株式数のリストを返す)を作り、/root/founder/equity/safes.jsonに、shares(投資家 → 株式数)、total_after(D)、ownership(投資家 → Dに対する比率)を書く。
  5. /root/founder/equity/naive.jsonに、よくある間違い(f_i × Cを切り捨てた株式をSAFEに与えた場合)のsharesと、そのときのownership(C + Σ間違い版の株式に対する比率)を書く。
  6. equity.pyに、priced_round(D, U, pre_money, investment, pool_target) → {"pool_increase", "price", "investor_shares", "post_fd", "effective_pre_money"}を作り、/root/founder/equity/round.jsonに、用意したデータで計算した結果を書く(priceは小数第2位、effective_pre_moneyは整数に丸める)。
  7. /root/founder/equity/cap_post.jsonに、ラウンド後のholders(pool_unissuedは増加分を加え、ラウンドの投資家を追加)、total、ownershipを書く。
  8. /root/founder/equity/dilution.jsonに、minji([ラウンド前、SAFE転換後、ラウンド後]の持分比率3つ)、founders_after(残った創業者全体の、ラウンド後の持分比率)、headline_pre_money、effective_pre_money、investor_ownership(ラウンドの投資家)を書く。

参考

ベスティング: 満了した月とクリフ

/root/founder/equity/equity.pyに、vested(shares, start, cliff, total, on)を作る。

まず、満了した月数を数えます。基準日の「日」が開始日の「日」より小さければ、その月は、まだ満了していません。クリフの前なら0、その後は整数の除算(//)です。

去った人の取り分

/root/founder/equity/departures.jsonに、去った人ごとにleft_on・months・vested・repurchasedを書く。

left_onがある創業者だけを書きます。repurchasedは、元の株式 − ベスティングされた株式です。

ラウンド前の資本政策表

/root/founder/equity/cap_pre.jsonに、holders・total・ownershipを書く。

去った人はベスティング分だけ、残った創業者は全量、そしてpool_granted・pool_unissuedを、1つの表に置きます。持分比率は、0–1の比率です。

ポストマネーSAFE2枚を転換する

equity.pyにsafe_shares(C, safes)を加え、/root/founder/equity/safes.jsonに、shares・total_after・ownershipを書く。

各SAFEは、転換後の全体の株式から、投資額 ÷ キャップの分を持たなければなりません。SAFEどうしも互いを希薄化するので、比率の合計Fで、C × f / (1 − F)を計算します。

よくある間違い: 比率をそのまま掛けると

/root/founder/equity/naive.jsonに、f_i × Cを切り捨てたsharesと、そのときのownership(C + Σに対する比率)を書く。

このステップは、わざと間違った計算です。約束された比率(投資額 ÷ キャップ)より、投資家の取り分が小さく出ることを確認してください。

プールの増加をプレマネーに入れるシードラウンド

equity.pyにpriced_round(D, U, pre_money, investment, pool_target)を加え、/root/founder/equity/round.jsonに結果を書く。

k = ポスト ÷ プレです。プールの増加Pを、定義の式で求めて切り捨てた後、1株あたりの価格 = プレ ÷ (D + P)、投資家の株式数 = 投資 ÷ 価格の切り捨てです。

ラウンド後の資本政策表

/root/founder/equity/cap_post.jsonに、holders・total・ownershipを書く。

SAFE投資家を加えた表で、pool_unissuedに増加分を加え、ラウンドの投資家(用意したデータのround.investor)を、新しい行として入れます。

誰がどれだけ希薄化されたか

/root/founder/equity/dilution.jsonに、minji(3つの時点)・founders_after・headline_pre_money・effective_pre_money・investor_ownershipを書く。

SAFE転換後のminjiの持分比率 = minjiの株式 ÷ Dです。実質プレマネーは、ステップ6の結果をそのまま使います。