Startup CFO

Cap Table Modeling β€” What Happens If We Raise at 30M Pre?

15 min vs 3-5 days, $0 vs $3-5K per modelStartup Finance5 min read

Key Takeaway

Our AI agent modeled three fundraising scenarios for Artificial-Lab β€” 20M, 30M, and 40M pre-money β€” showing dilution impact, option pool expansion, and liquidation waterfall for each, in 15 minutes instead of days with a lawyer.

The Problem

Fundraising math is deceptively complex. "We'll raise €5M at €30M pre" sounds simple. But trace it through: What's the dilution per shareholder? What happens to the option pool? What does the liquidation waterfall look like with a 1x non-participating preference? What if there's anti-dilution protection and the next round is a down round?

Artificial-Lab was hitting traction. The product was working, revenue was growing, and inbound interest from investors was real. The question wasn't whether to raise β€” it was at what terms.

I needed to compare scenarios quickly. Not in a week, after the lawyers bill 15 hours for a cap table model. Now. In a meeting. "What if we go 20M pre instead of 30M? What does that look like for the founding team?"

Traditional approach: spreadsheet gymnastics, or pay a law firm $5,000 for a cap table model that takes 3-5 business days. By then, the negotiation window might have closed.

The Solution

Warren builds cap table models on demand. Input the current cap table, proposed round parameters, and scenario variants. Output: dilution per shareholder, option pool mechanics, and liquidation waterfall for each scenario. Side-by-side comparison so you can make the tradeoff explicitly.

The Process

Current cap table input:

yamlShow code
# cap-table input
company: "Artificial-Lab"
shares_outstanding: 10000000
current_holders:
  - name: "Bilal (Founder)"
    shares: 5000000
    pct: 50.0%
  - name: "Co-founder"
    shares: 2500000
    pct: 25.0%
  - name: "Angel Round"
    shares: 1500000
    pct: 15.0%
    preference: "1x non-participating"
  - name: "ESOP (allocated)"
    shares: 700000
    pct: 7.0%
  - name: "ESOP (unallocated)"
    shares: 300000
    pct: 3.0%

Scenario parameters:

yamlShow code
scenarios:
  - name: "Conservative (€20M pre)"
    pre_money: 20000000
    raise_amount: 5000000
    option_pool_target: 12%  # post-money
    investor: "VC Fund A"
    preferences: "1x non-participating"
    anti_dilution: "broad-based weighted average"

  - name: "Base Case (€30M pre)"
    pre_money: 30000000
    raise_amount: 5000000
    option_pool_target: 12%
    investor: "VC Fund A"
    preferences: "1x non-participating"
    anti_dilution: "broad-based weighted average"

  - name: "Aggressive (€40M pre)"
    pre_money: 40000000
    raise_amount: 5000000
    option_pool_target: 10%  # negotiate lower pool at higher valuation
    investor: "VC Fund A"
    preferences: "1x non-participating"
    anti_dilution: "broad-based weighted average"

The modeling engine:

pythonShow code
def model_round(cap_table, scenario):
    # Pre-money option pool expansion (investor-friendly)
    current_pool_pct = cap_table.esop_unallocated / cap_table.total_shares
    target_pool_pct = scenario.option_pool_target

    new_pool_shares = calculate_pool_expansion(
        cap_table, target_pool_pct, scenario.pre_money, scenario.raise_amount
    )

    # New shares to investor
    post_money = scenario.pre_money + scenario.raise_amount
    investor_pct = scenario.raise_amount / post_money
    price_per_share = scenario.pre_money / (cap_table.total_shares + new_pool_shares)
    new_investor_shares = scenario.raise_amount / price_per_share

    # Updated cap table
    new_total = cap_table.total_shares + new_pool_shares + new_investor_shares

    # Dilution per holder
    dilution = {}
    for holder in cap_table.holders:
        old_pct = holder.shares / cap_table.total_shares
        new_pct = holder.shares / new_total
        dilution[holder.name] = {
            "old_pct": old_pct,
            "new_pct": new_pct,
            "dilution": old_pct - new_pct,
            "value_at_post": holder.shares * price_per_share
        }

    # Liquidation waterfall
    waterfall = model_liquidation_waterfall(
        new_cap_table,
        exit_multiples=[1, 2, 3, 5, 10]
    )

    return RoundModel(dilution=dilution, waterfall=waterfall, pps=price_per_share)

Comparison output:

View details
πŸ“Š CAP TABLE SCENARIOS β€” Artificial-Lab Series A

                    | €20M Pre  | €30M Pre  | €40M Pre  |
---------------------------------------------------------
Post-money          | €25M      | €35M      | €45M      |
Price/share         | €2.00     | €2.73     | €3.64     |
Investor owns       | 20.0%     | 14.3%     | 11.1%     |
Bilal (post-round)  | 38.5%     | 41.2%     | 43.1%     |
Bilal dilution      | -11.5%    | -8.8%     | -6.9%     |
ESOP (post-round)   | 12.0%     | 12.0%     | 10.0%     |
Runway @ €150K/mo   | 33 months | 33 months | 33 months |

LIQUIDATION WATERFALL (€30M Pre scenario)
Exit Value | Investor | Bilal    | Co-founder | Angels
€10M       | €5.0M    | €2.4M   | €1.2M      | €0.9M
€35M       | €5.0M    | €14.4M  | €7.2M      | €5.2M
€100M      | €14.3M   | €41.2M  | €20.6M     | €12.9M
€350M      | €50.0M   | €144.2M | €72.1M     | €45.1M

⚠️ ANTI-DILUTION SIMULATION
If next round is at €20M pre (down round from €30M):
Investor shares increase by 18.4% via weighted-average adjustment
Bilal diluted an additional 2.6%

The Results

MetricLawyer/ManualAgent
Time to first model3-5 business days15 minutes
Cost$3,000-$5,000~$0
Scenario variantsUsually 1-2Unlimited
Anti-dilution simulationExtra costIncluded
Liquidation waterfallOften skippedAlways modeled
Iteration speedDays per revisionMinutes

Try It Yourself

Install the startup-financial-modeling skill on Mr.Chief. Input your cap table and proposed terms. The agent handles the math β€” dilution, option pool, waterfall, anti-dilution. Run as many scenarios as you need before sitting down at the negotiation table.

Know your numbers before the VC does. That's how you negotiate from strength.


The best time to model your cap table is before you're in the room. The second best time is during the meeting, on your phone, while the VC is still talking.

cap-tablefundraisingdilutionliquidation-waterfallstartup

Want results like these?

Start free with your own AI team. No credit card required.

Cap Table Modeling β€” What Happens If We Raise at 30M Pre? β€” Mr.Chief