Pro+

Exit Waterfall Modeler

This tool is part of the Pro+ Investor Workbench. The free DCF Quick and QoE Analyzer stay open for everyone.

Upgrade to Pro+ to unlock:

  • Seniority-ordered liquidation-preference stack across up to 4 preferred series
  • Non-participating, full-participating, and capped-participating preferred
  • The convert-vs-preference greater-of decision with iterative convergence
  • Per-class payout, MOIC, and effective $/share — plus a common breakeven point
  • Exit-value sensitivity sweep from 0.5× to 3× of your exit assumption
Upgrade to Pro+ Use the free version
Investor Workbench / Financial Modeling / Exit Waterfall · Pro+

Exit Waterfall / Liquidation Preferences Modeler

Distribute acquisition or exit proceeds across a preferred-stock liquidation-preference stack and common. Set up to four preferred series with their own invested amount, liquidation multiple, participation type (non / full / capped), and seniority rank. The model pays preferences in seniority order, splits residual proceeds with participating preferred, and then solves the convert-or-take decision for every series — iterating until the cap table converges. Pure client-side math — your model never leaves your device.

Exit & Cap-Table Inputs

Preferred Series

Seniority rank 1 = paid first. Lower rank numbers are paid before higher ones. Caps apply only to capped-participating series.

Waterfall Result

Per-Class Distribution

Exit-Value Sensitivity

Sweeps the exit value from 0.5× to 3× of your input, holding the cap table constant. Shows where common breaks into the money past the preference overhang.

Methodology — math used in this model

Seniority-ordered preference pass — Preferred series are sorted by seniority rank ascending (rank 1 paid first). Each series' liquidation preference = invested × multiple. Going in seniority order, each series is paid min(remaining proceeds, its preference) and the remaining pool is reduced accordingly. If proceeds run out, junior series receive partial or zero preference — that is the correct behavior in a down exit.

Participation pass — The residual after all preferences is split pro-rata across common shares plus the as-converted shares of any participating preferred (full or capped). Non-participating preferred do not share in the residual. For a capped-participating series, its total (preference + participation) is capped at cap × invested; if participation would exceed the cap, the series is clamped and the freed-up excess is re-divided among the remaining uncapped participants and common in one redistribution pass.

Convert-or-take decision — Each preferred series independently takes the greater of (a) its preferred-path payout or (b) what it would receive by converting to common. We compute an "all-convert" common price = exitValue / total as-converted shares; a series converts if its as-converted value at that price exceeds its preferred-path payout. The whole waterfall is then re-run treating converted series as common (no preference, included in the residual pool), and the decision is re-evaluated. This loop iterates until no series changes its decision (capped at 10 passes — it converges quickly). This is what captures the realistic "preferred converts once the exit is large enough."

Per-class outputs — Final payout = result of the converged waterfall. MOIC = payout / invested; effective $/share = payout / as-converted shares. Common $/share = common payout / common shares. By construction the sum of all payouts equals the exit value — the reconciliation note confirms this within rounding.

What's intentionally omitted — A single common class is assumed; warrants and option strike prices are ignored (option pool is treated as fully diluted common at $0 strike); escrow / holdback, earnouts, transaction costs, management carve-outs, accrued-dividend preferences, and pay-to-play / anti-dilution mechanics are not modeled.

Educational financial-modeling tool — not investment advice and not a substitute for legal or institutional-grade cap-table work. All math runs in your browser; no inputs are sent to a server.