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.
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_iBecause 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%.
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_sharesA 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.
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.
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 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%.
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:
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.
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.
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.