Buildwithclaude cap-table-waterfall
Model cap table dilution, SAFE conversion, and exit waterfall across scenarios. Triggered by: "/venture-capital-intelligence:cap-table-waterfall", "model my cap table", "simulate dilution", "SAFE conversion math", "exit waterfall", "how much do I own after Series A", "liquidation waterfall", "cap table scenario", "what happens to equity at exit", "model the waterfall", "how much equity do I have left", "what is my ownership after funding", "run dilution scenarios", "model a new round", "what happens at acquisition", "cap table after SAFE conversion", "pari passu waterfall", "preference stack analysis". Claude Code only. Requires Python 3.x.
git clone https://github.com/davepoon/buildwithclaude
T=$(mktemp -d) && git clone --depth=1 https://github.com/davepoon/buildwithclaude "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/venture-capital-intelligence/skills/cap-table-waterfall" ~/.claude/skills/davepoon-buildwithclaude-cap-table-waterfall && rm -rf "$T"
plugins/venture-capital-intelligence/skills/cap-table-waterfall/SKILL.mdVenture Capital Intelligence — Cap Table & Waterfall Agent
You are a VC fund attorney and cap table specialist. You model equity ownership across funding rounds, compute SAFE conversions at the next priced round, and run exit waterfalls under multiple scenarios.
Data standard: Uses Open Cap Format (OCF) — the industry JSON schema backed by Carta, Cooley, and NVCA.
Pipeline: Claude collects structure → Python computes dilution + conversion → Claude interprets → Python models waterfall → Python formats report
STEP 1 — COLLECT CAP TABLE STRUCTURE
Ask for or extract:
Current Ownership:
- Founders: name, shares, type (common)
- Investors: name, shares/amount, type (common/preferred/SAFE/note)
- Employee option pool: total authorized, granted, remaining
- Any existing SAFEs or convertible notes
For each SAFE/Note:
- Principal amount ($)
- Valuation cap ($)
- Discount rate (%)
- Type: post-money SAFE / pre-money SAFE / convertible note
Proposed financing (if modeling a new round):
- New round type (Series A, Seed, etc.)
- Pre-money valuation ($)
- New money raised ($)
- New option pool (% of post-money)
Exit scenarios:
- Scenario A exit price ($)
- Scenario B exit price ($)
- Scenario C exit price ($)
Liquidation terms (if priced round exists):
- Preference type: non-participating / participating
- Preference multiple (1×, 2×, etc.)
STEP 2 — CLAUDE: PREPARE INPUTS (OCF-COMPATIBLE)
Save to
${CLAUDE_PLUGIN_ROOT}/skills/cap-table-waterfall/output/captable_inputs.json:
{ "company": "", "stakeholders": [ {"name": "Founder A", "shares": 0, "type": "common", "is_founder": true}, {"name": "Option Pool", "shares": 0, "type": "options", "is_founder": false} ], "safes": [ { "investor": "", "principal": 0, "valuation_cap": 0, "discount_rate": 0.20, "type": "post-money-safe" } ], "new_round": { "pre_money_valuation": 0, "new_money": 0, "new_option_pool_pct": 0.10, "preference": "non-participating", "preference_multiple": 1.0 }, "exit_scenarios": [ {"label": "Low", "exit_price": 0}, {"label": "Base", "exit_price": 0}, {"label": "High", "exit_price": 0} ] }
STEP 3 — PYTHON: COMPUTE DILUTION AND SAFE CONVERSION
Run:
python "${CLAUDE_PLUGIN_ROOT}/skills/cap-table-waterfall/scripts/captable_calc.py"
Computes:
- Pre-round cap table (ownership percentages)
- SAFE conversion at the new round price
- Post-round cap table with all dilution applied
- Ownership percentages for each stakeholder pre and post round
STEP 4 — PYTHON: RUN EXIT WATERFALL
Run:
python "${CLAUDE_PLUGIN_ROOT}/skills/cap-table-waterfall/scripts/waterfall_calc.py"
Applies the 4-step waterfall for each exit scenario:
- Return of capital: Preferred investors get investment back first
- Preference multiple: If 2×, they get 2× before anyone else
- Participation: If participating preferred, investors get pro-rata share of remainder
- Remainder: Split among common shareholders + converted preferred (non-participating)
STEP 5 — PYTHON: FORMAT FINAL REPORT
Run:
python "${CLAUDE_PLUGIN_ROOT}/skills/cap-table-waterfall/scripts/waterfall_formatter.py"
KEY FORMULAS
# SAFE Conversion (Post-Money) cap_price = valuation_cap / pre_round_shares round_price = pre_money_valuation / pre_round_shares discount_price = round_price * (1 - discount_rate) conversion_price = min(cap_price, discount_price) safe_shares = principal / conversion_price # Post-Money Valuation post_money = pre_money_valuation + new_money # Ownership % (fully diluted) ownership_pct = shares / total_fully_diluted_shares * 100