Cap table template for seed startups (2026)
Cap table template for seed startups in 2026: models the pre/post-money option pool shuffle and SAFE conversion math founders most often get wrong.
cap-table-template-seed.txt
=== SHEET 1: SHAREHOLDERS ===
| Holder | Class | Initial shares | Pre-seed FD% | Post-SAFE FD% | Post-pool FD% | Post-seed FD% | Total dilution |
|------------------------|-----------|----------------------|--------------|---------------|---------------|---------------|----------------|
| {{FOUNDER_1_NAME}} | Common | {{FOUNDER_1_SHARES}} | =C2/$C$8 | calc | calc | calc | =(D2-H2)/D2 |
| {{FOUNDER_2_NAME}} | Common | {{FOUNDER_2_SHARES}} | =C3/$C$8 | calc | calc | calc | =(D3-H3)/D3 |
| Option pool (unissued) | Options | {{INITIAL_POOL}} | =C4/$C$8 | calc | =TARGET_POOL | =TARGET_POOL | n/a |
| {{SAFE_INVESTOR_NAME}} | SAFE | 0 | 0% | calc | calc | calc | n/a |
| {{SEED_LEAD_NAME}} | Preferred | 0 | 0% | 0% | 0% | calc | n/a |
| {{SEED_FOLLOWERS}} | Preferred | 0 | 0% | 0% | 0% | calc | n/a |
| Total | | =SUM(C2:C7) | 100% | 100% | 100% | 100% | |
=== SHEET 2: ROUND ASSUMPTIONS ===
Initial common shares : {{INITIAL_SHARES}} (typically 10,000,000)
SAFE amount : {{SAFE_AMOUNT}}
SAFE post-money cap : {{SAFE_CAP}}
SAFE discount : {{SAFE_DISCOUNT}} (decimal, e.g. 0.20)
Seed pre-money valuation : {{SEED_PRE_MONEY}}
Seed raise : {{SEED_RAISE}}
Target post-round option % : {{TARGET_POST_POOL_PCT}} (typically 0.10)
Option pool timing : {{POOL_TIMING}} ("pre-money" or "post-money")
=== SHEET 3: CONVERSION FORMULAS ===
Pre-money FD shares = initial_common + initial_pool + Σ(SAFE shares at conversion)
Round price per share = pre_money_valuation / pre_money_FD_shares
(if pool_timing = "pre-money", inflate pre_money_FD_shares by pool_top_up first)
SAFE conversion price = MIN(SAFE_cap / pre_money_FD_shares, round_price * (1 - SAFE_discount))
SAFE shares issued = SAFE_amount / SAFE_conversion_price
Pool top-up shares = (target_post_pool_pct * post_money_FD_shares) - existing_unissued_pool
New money shares = seed_raise / round_price_per_share
Post-money FD shares = pre_money_FD_shares + pool_top_up + new_money_shares
=== SHEET 4: DILUTION COLUMNS (per holder) ===
Dilution from SAFEs = (pre_seed_FD% - post_SAFE_FD%) / pre_seed_FD%
Dilution from pool top-up = (post_SAFE_FD% - post_pool_FD%) / post_SAFE_FD%
Dilution from new money = (post_pool_FD% - post_seed_FD%) / post_pool_FD%
Total dilution = (pre_seed_FD% - post_seed_FD%) / pre_seed_FD%
=== SHEET 5: POOL TIMING COMPARISON ===
Run the model twice with POOL_TIMING flipped. Record the founder FD% post-seed for each. The delta is the dollar value of negotiating a post-money pool.
| Scenario | Founder 1 FD% | Founder 2 FD% | Combined founders | Lead investor FD% |
|----------------------|---------------|---------------|-------------------|-------------------|
| Pool taken pre-money | calc | calc | calc | calc |
| Pool taken post-money| calc | calc | calc | calc |
| Delta (points) | calc | calc | calc | calc |
Variables · fill before sending
- COMPANY_NAMEYour startup's legal entity name (e.g., 'Acme, Inc.')
- FOUNDER_1_NAMEFirst co-founder's legal name. Delete the row if solo founder.
- FOUNDER_2_NAMESecond co-founder's legal name. Add more rows for additional founders.
- FOUNDER_1_SHARESCommon shares allocated to founder 1 at incorporation
- FOUNDER_2_SHARESCommon shares allocated to founder 2 at incorporation
- INITIAL_SHARESTotal authorized shares at incorporation. Default to 10,000,000 unless your lawyer set a different number.
- INITIAL_POOLUnissued option pool at incorporation (often 1,000,000 shares for a 10% pool on 10M total)
- SAFE_INVESTOR_NAMEName of the SAFE holder. Duplicate this row for each SAFE.
- SAFE_AMOUNTDollar amount of the SAFE investment (e.g., 500000)
- SAFE_CAPPost-money valuation cap on the SAFE (e.g., 8000000). Leave blank for uncapped.
- SAFE_DISCOUNTDiscount on the priced round, as a decimal (e.g., 0.20 for 20%). Leave 0 if none.
- SEED_LEAD_NAMELead investor on the priced seed round
- SEED_FOLLOWERSAggregate row for follower checks, or split into one row per investor
- SEED_PRE_MONEYPre-money valuation of the seed round (e.g., 12000000)
- SEED_RAISETotal seed round size (e.g., 3000000)
- TARGET_POST_POOL_PCTTarget post-round option pool size as a decimal. Common default is 0.10.
- POOL_TIMINGEither 'pre-money' (founder-dilutive, investor preference) or 'post-money' (everyone-dilutive). Run the model both ways.
How to use it
- Do build it before the first term sheet conversation: investors expect you to know your post-money FD% to one decimal. Showing up without that number is a tell that you have not modeled the round.
- Do model the round twice: once with a pre-money pool, once with post-money. Walk into the negotiation with the founder FD% delta on a printed page.
- Do list every SAFE on its own row: each cap and discount converts differently. Aggregating SAFEs is the single most common reason cap tables blow up in due diligence.
- Don't quote issued shares: investors negotiate on fully-diluted percentages. If your cap table only shows issued, you are showing the wrong denominator.
- Don't paste your live model into an email to a VC: export a PDF snapshot tagged with the round name and date. The live sheet leaks investor names and pricing assumptions you have not finalized.
- Don't trust your lawyer's pool sizing without checking it against your hiring plan: a ~10% pool is a rule of thumb per Carta's option pool guide, not a default. Size it bottoms-up from the roles you actually plan to hire before the next round.