Cap table input format

Agents pass cap tables as JSON tool arguments — Breakpoint Engine does not store them. Every solve takes two separate arguments: cap_table and assumptions. Money and rates must be decimal strings ("1.00", "0.60"), never binary floats.

cap_table

Four arrays — common, preferred, options, warrants — plus optional debt.

  • common[]id, outstanding_shares.
  • preferred[]id, outstanding_shares, seniority (integer; lower is more senior; equal ranks pari passu), liquidation_preference (per-share dollars — for a 1× preference this is the issue price, e.g. "1.00"), convertible, conversion_ratio (common per preferred), participation, participate_as_converted, participation_cap, participation_cap_stop ("0" when uncapped). Optional: conversion_price, liquidation_preference_issue, and dividend terms (dividend_eligible, dividend_pik, dividend_rate, dividend_accrued).
  • options[] / warrants[]id, outstanding_shares, exercise_price (strike per share), conversion_ratio, and underlying_id (the id exercised into, e.g. "Common"). Group option grants by strike — one entry per strike.
  • debt[] — optional seniority-aware claims (principal, accrued interest, cash/PIK terms).

assumptions

  • equity_value — total equity value to allocate (backsolve solves for it).
  • volatility — absolute annualized volatility ("0.60" = 60%).
  • exit_term — years to expected exit.
  • risk_free_rate — stated annual rate.

Live templates: call opm_schema or read opm://schema/cap_table and opm://schema/assumptions from a connected MCP client.

Worked example

cap_table — founders' common, a $1.00/share 1× non-participating Series A, and an option pool at a $0.10 strike:

{
  "common": [
    { "id": "Common", "outstanding_shares": "10000000" }
  ],
  "preferred": [
    {
      "id": "Series A",
      "outstanding_shares": "5000000",
      "seniority": 1,
      "liquidation_preference": "1.00",
      "convertible": true,
      "conversion_ratio": "1",
      "participation": false,
      "participate_as_converted": false,
      "participation_cap": false,
      "participation_cap_stop": "0"
    }
  ],
  "options": [
    {
      "id": "Option pool",
      "outstanding_shares": "2000000",
      "exercise_price": "0.10",
      "conversion_ratio": "1",
      "underlying_id": "Common"
    }
  ],
  "warrants": []
}

assumptions — $25M equity value, 60% volatility, 4-year term:

{
  "equity_value": "25000000",
  "volatility": "0.60",
  "exit_term": "4",
  "risk_free_rate": "0.04"
}

Next

  1. opm_estimate with this payload.
  2. Set max_work from the estimate (cloud metering).
  3. opm_forwardsolve / opm_backsolve, or opm_scenario_begin for interactive design.

See the tool reference, methodology, and client setup: Cursor, Claude, ChatGPT.