LabHub
はじめる
배우기 러닝패스 코스

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

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

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

가상의 회사 지분표에 베스팅·퇴사자 재매입·포스트머니 SAFE 전환·옵션 풀 증가를 포함한 시드 라운드를 차례로 적용하고, 단계마다 누가 얼마나 희석되는지 계산한다.

왜 중요한가

지분 조건은 계약서에 적히지만 그 결과는 계산해 보기 전에는 보이지 않는다. 베스팅이 없는 지분, 서로를 희석하는 SAFE, 프리머니에 들어간 풀 증가는 창업자의 몫을 조용히 바꾼다. 직접 계산할 수 있어야 협상 테이블의 숫자를 읽을 수 있다. (법률·세무 조언이 아니다.)

재료 — /opt/fixtures/founder/equity/company.json

정의

단계

  1. /root/founder/equity/equity.pyvested(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.jsonholders(이름·pool_granted·pool_unissued → 주식, 떠난 사람도 남은 주식으로 포함), total, ownership 을 쓴다.
  4. equity.pysafe_shares(C, safes)(safes 는 재료의 목록 그대로, 같은 순서의 주식 수 목록을 돌려준다)를 만들고 /root/founder/equity/safes.jsonshares(투자자 → 주식), total_after(D), ownership(투자자 → D 대비 비율)을 쓴다.
  5. /root/founder/equity/naive.json 에 흔한 실수 — f_i × C 를 내림한 주식을 SAFE 에 준 경우 — 의 shares 와 그때의 ownership(C + Σ실수 주식 대비)을 쓴다.
  6. equity.pypriced_round(D, U, pre_money, investment, pool_target){"pool_increase", "price", "investor_shares", "post_fd", "effective_pre_money"} 를 만들고 /root/founder/equity/round.json 에 재료로 계산한 결과를 쓴다(price 는 소수 둘째, effective_pre_money 는 정수로 반올림).
  7. /root/founder/equity/cap_post.json 에 라운드 뒤 holders(pool_unissued 는 증가분을 더하고, 라운드 투자자를 추가), total, ownership 을 쓴다.
  8. /root/founder/equity/dilution.jsonminji([라운드 전, SAFE 전환 뒤, 라운드 뒤] 지분율 세 개), 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 를 한 표에 둡니다. 지분율은 0~1 비율입니다.

포스트머니 SAFE 두 장을 전환한다

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 를 정의의 식으로 구해 내림한 뒤, 주당 가격 = 프리 ÷ (D + P), 투자자 주식 = 투자 ÷ 가격 내림입니다.

라운드 뒤 지분표

/root/founder/equity/cap_post.json 에 holders·total·ownership 을 쓴다.

SAFE 투자자를 더한 표에서 pool_unissued 에 증가분을 더하고, 라운드 투자자(재료의 round.investor)를 새 줄로 넣습니다.

누가 얼마나 희석됐나

/root/founder/equity/dilution.json 에 minji(세 시점)·founders_after·headline_pre_money·effective_pre_money·investor_ownership 을 쓴다.

SAFE 전환 뒤 minji 지분율 = minji 주식 ÷ D. 실질 프리머니는 6단계 결과를 그대로 씁니다.