Methodology — the exact algebra, stated openly

The engine is standard, public cap-table math (Y Combinator's post-money SAFE mechanics plus classic priced-round dilution algebra), re-derived from first principles and implemented deterministically. Same inputs always produce the same numbers. We publish the mechanics because the arithmetic is not the moat — the interpretation is. If you can already run this yourself, you probably don't need us.

Post-money SAFE — the modern default

A post-money SAFE (YC's Nov-2018 form) fixes the investor's ownership as a fraction of the post-money (post-conversion, pre-new-money) cap table:

ownership_i = principal_i / post_money_cap_i

Because that percentage is measured on the post-money, stacking several post-money SAFEs makes their percentages add — and the dilution is borne by founders and the option pool, never by another SAFE. Two $500k SAFEs at a $10M cap are 5% + 5% = 10% of your post-money, not ~5%.

Cap vs discount — the investor takes the better price

When a SAFE has both a cap and a discount, it converts at whichever yields more shares — the lower price per share:

conversion_price = min( cap_implied_price , round_price × (1 − discount) ) cap_implied_price = cap / pre_money_fully_diluted_shares

A low cap beats a discount when your round prices high; a discount beats a cap when your round is modest. We report which one governed for each instrument.

MFN — most-favoured-nation

An MFN clause entitles the holder to the best (lowest cap / highest discount) terms you grant anyone before conversion. We resolve it by lending the minimum cap and maximum discount present in the stack to any MFN instrument — so if you later signed a cheaper SAFE, the MFN one inherits it. This is why an MFN constrains your pricing on every subsequent SAFE.

Pre-money SAFEs and convertible notes

Legacy pre-money SAFEs convert on the pre-money valuation, so they dilute each other (unlike post-money). Convertible notes accrue simple (non-compounding) interest to conversion:

principal_plus_interest = principal × (1 + rate × months/12)

then convert on their cap/discount like a SAFE. We support both for older or mixed stacks.

The priced round and the option-pool shuffle

The new round's price per share is set so the negotiated pre-money equals price × the pre-money fully-diluted shares (including converted SAFEs and any new option pool). If you target a post-round option pool, the top-up is created in the pre-money — the "option-pool shuffle" — so it dilutes founders and converting SAFEs, not the new investor. We solve the resulting circular dependency (SAFE shares depend on price, price depends on SAFE shares) with a fixpoint that converges in a few iterations, and we verify the ownership waterfall sums to 100%.

Reproduce it — the exact fixpoint

So a skeptical reader can check us line by line, here is the precise loop the engine runs (the same one that produces the sample report's numbers). existing = today's fully-diluted shares; cap_price for a post-money SAFE uses the cap-only pre-money FD below, not the post-conversion total; the loop repeats until pool stops moving:

price = 0 ; pool = 0 repeat until pool converges (≈ a dozen passes): base = existing + pool sum_cap_frac = Σ over capped post-money SAFEs of principal_plus_interest / cap preMoneyFD_cap = base / (1 − sum_cap_frac) # pre-money FD from base + capped SAFEs price = preMoney / preMoneyFD_cap for each instrument: cap_price = cap ? cap / preMoneyFD_cap : ∞ # NOTE: divides by the cap-only pre-money FD disc_price = discount ? price × (1 − discount) : ∞ conv_price = min(cap_price, disc_price) (→ price if both ∞) safe_shares_i = principal_plus_interest / conv_price total_safe_shares = Σ safe_shares_i new_investor_shares = newMoney / price finalFD_sans_pool = existing + total_safe_shares + new_investor_shares pool = target > 0 ? target / (1 − target) × finalFD_sans_pool : 0 # after convergence: final_FD = existing + pool + total_safe_shares + new_investor_shares founder % = existing / final_FD ; waterfall sums to 100%

The one subtlety worth calling out: a capped post-money SAFE's cap_price divides the cap by preMoneyFD_cap (base plus the capped SAFEs), not by the post-conversion total — that's the post-money SAFE convention, and it's what makes each SAFE's share of the post-money cap table equal to principal / cap exactly. MFN instruments first inherit the lowest cap / highest discount in the stack, then run through the same loop. You can watch the two-anchor version of this loop live in the calculator's JavaScript comment on the home page, and the executable checks in scripts/test-safe.mjs pin the invariants.

Benchmarks

Market-terms figures come only from public sources — Carta State of Private Markets, PitchBook-NVCA Venture Monitor, YC's Post-Money SAFE User Guide, Cooley GO deal-terms surveys — and are given as ranges of directional medians. No ex-employer or confidential data is used. Verify the current quarter before quoting.

What the engine cannot see

It models the terms you enter. It does not know about seniority stacks between preferred series, unusual pro-rata side letters, non-standard MFN scope definitions, valuation-cap step-ups, or anything in an executed document you didn't capture. Those can change the outcome — which is why every report tells you, prominently, to have counsel verify before you sign.

Disclaimer. This page and every report are analytical modeling — not investment, legal, tax, or accounting advice, not a valuation opinion, and not a securities recommendation. Figures are not warranted for accuracy. Have your own securities counsel verify all figures before signing any document. RoundEconomics is not a broker-dealer, investment adviser, or law firm. · Home · Sample report