Hub/Templates/financial-model/Cap table template for seed startups (2026)
financial-model template·Tracking ownership, option pool, and SAFE/note conversions from incorporation through the seed round.·seed·17 variables·Updated

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.