Skip to main content
Glama

Compute a cap table

cap_table_compute
Read-only

Use whenever the user asks who owns what after a financing: founder splits, option pools, priced rounds, SAFEs and convertible notes converting, warrants, pro-rata, or dilution across several rounds. Takes the financing events in order and returns fully diluted ownership after each event plus the final cap table. Prefer this over doing the arithmetic yourself: SAFE and note conversion (pre- vs post-money caps, discounts, pool shuffles) is where model-written math most often goes wrong, and this runs the same tested engine as Hemrock's cap table models. Paid: the Cap Table & Exit Waterfall product, $20/year for 6,000 calculations shared with exit_waterfall_compute. If the result contains action_required (not signed in, no purchase, allowance used), relay it to the user with its links and offer to retry. Never skip the calculation silently.

Input Schema

NameRequiredDescriptionDefault
eventsYes
idempotency_keyNoOptional retry key; reuse only with identical input.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / deals
      Added value: +{
      +  "description": "Build the portfolio from specific deals instead of entry stages and return tiers (and instead of capTable when both are sent). Each deal has its checks, each in a quarter from first close (1-based), and one exit in a quarter, at a multiple of everything invested in the deal (0 is a write-off) or for proceeds in money. Invested capital is the sum of the checks and called capital is solved from it; the fund life runs to the last exit, capped by maxFundLifeYears; each deal comes back as a row of result.tiers. Recycling keeps back the earliest proceeds, up to recycledCapitalPct of committed, only while later checks can use them. Send dealsMix true to mix the methods instead.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "exit": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "multiple": {
      +            "description": "Of everything invested in the deal. 0 is a write-off.",
      +            "maximum": 10000,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "proceeds": {
      +            "description": "Exit proceeds in money, instead of a multiple.",
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "quarter": {
      +            "maximum": 400,
      +            "minimum": 1,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "quarter"
      +        ],
      +        "type": "object"
      +      },
      +      "investments": {
      +        "description": "The checks the fund writes into the deal: the initial check, then any follow-ons.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "amount": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "quarter": {
      +              "description": "Quarter from first close, 1-based.",
      +              "maximum": 400,
      +              "minimum": 1,
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "quarter",
      +            "amount"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 40,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "name": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "investments",
      +      "exit"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 500,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / dealsMix
      Added value: +{
      +  "description": "With deals: the deals come first, and the capital they leave (committed less fees and expenses, plus recycling, less the checks) is invested through the entry stages and return tiers, or capTable when sent, as it would be without deals. Recycling then goes to the stages, the fund life is the later of the deals' and the stages', and result.tiers lists the deals and then the tiers.",
      +  "type": "boolean"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / inputs / properties / navMarkupYears
      Added value: +{
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
  2. Changed1 schema field changed
    • addedInput schema / definitions / FundComputeRequest / properties / inputs / properties / gpCommitBearsCarry
      Added value: +{
      +  "type": "boolean"
      +}
  3. Changed13 schema fields changed
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / fees / properties / schedule
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The fee as an LPA states it, on the dated schedule: each rate from a point in fund years (0 = first close; 5.5 starts halfway through year 6 and cuts the period it lands in), charged on committed capital, invested cost not yet realized, or NAV, with organizational expenses above organizationalExpenseCap offsetting the fee. Runs for feeYears; base, ratePct, yearlyRateSchedule and basesByYear are ignored when it is set.",
      +  "properties": {
      +    "frequency": {
      +      "enum": [
      +        "quarterly",
      +        "semiannual",
      +        "annual"
      +      ],
      +      "type": "string"
      +    },
      +    "organizationalExpenseCap": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "steps": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "basis": {
      +            "enum": [
      +              "committed",
      +              "invested",
      +              "nav"
      +            ],
      +            "type": "string"
      +          },
      +          "fromYear": {
      +            "maximum": 100,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "rate": {
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "fromYear",
      +          "rate",
      +          "basis"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 20,
      +      "minItems": 1,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "steps"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / lpClasses / items / properties / overrides / properties / carryTiers / items / properties / irrThreshold
      Added value: +{
      +  "description": "Instead of moicThreshold: the band below this tier ends when the LP IRR reaches this rate. With one of these, tiers run in the order given.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / recycling
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "defaultTreatment": {
      +      "enum": [
      +        "retained",
      +        "deemed"
      +      ],
      +      "type": "string"
      +    },
      +    "schedule": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "amount": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "quarter": {
      +            "maximum": 400,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "treatment": {
      +            "enum": [
      +              "retained",
      +              "deemed"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "quarter"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 400,
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / basis
      Added value: +{
      +  "description": "Whole fund (the default, European) or deal by deal (American): return of capital owes only the capital in deals exited or written off so far, so carry can be paid before the fund returns all capital. The clawback settles on the whole fund.",
      +  "enum": [
      +    "whole-fund",
      +    "deal-by-deal"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / carryTiers / items / properties / irrThreshold
      Added value: +{
      +  "description": "Instead of moicThreshold: the band below this tier ends when the LP IRR reaches this rate. With one of these, tiers run in the order given.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / catchupMeasure
      Added value: +{
      +  "description": "GP catchup: to the carry share of the pref paid (the default), or until the GP holds the carry share of all profit paid. They differ when the GP shares the catchup with LPs.",
      +  "enum": [
      +    "preferred",
      +    "profit"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / clawback
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / preferredReturnBase
      Added value: +{
      +  "description": "IRR pref: accrue on capital not yet returned plus unpaid pref (the default), or on each contribution from its date whatever comes back.",
      +  "enum": [
      +    "unreturned",
      +    "contributed"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / preferredReturnCompounding
      Added value: +{
      +  "description": "IRR pref: compound annually (the default) or simple interest.",
      +  "enum": [
      +    "annual",
      +    "none"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / definitions / FundDetail / properties / lpClasses / description
      Previous value: -"LP economics split by class. Each class carries its lifetime totals, datedNetIRR (solved from its own dated calls and distributions) and periods: calledCapital, unscheduledCalls and distributions, one entry per label. A class with a callSchedule is called on it; the others are called as the fund needs cash."New value: +"LP economics split by class. Each class carries its lifetime totals, datedNetIRR (solved from its own dated calls and distributions) and periods: calledCapital, unscheduledCalls, distributions and netIRR (the class's IRR through each period, with its share of LP NAV as the terminal value), one entry per label. A class with a callSchedule is called on it; the others are called as the fund needs cash."
    • changedInput schema / definitions / FundDetail / properties / periods / properties / carriedInterest / description
      Previous value: -"GP carry paid each period, catchups included."New value: +"GP carry paid each period, catchups included, net of the clawback."
    • addedInput schema / definitions / FundDetail / properties / periods / properties / gpClawback
      Added value: +{
      +  "description": "Carry the GP returns to the LPs, in the quarter the fund ends (or its year). Return of capital covers only capital called so far, so early carry is possible; the clawback brings the GP back to its whole-fund share. Off with features.waterfall.clawback: false.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / definitions / FundDetail / properties / periods / properties / recycledDeemed
      Added value: +{
      +  "$ref": "#/definitions/FundSeries",
      +  "description": "The part of recycledCapital booked as distributed and recontributed (features.recycling treatment \"deemed\"). It is also in calledCapital and distributions; recycling that is never distributed is in neither."
      +}
  4. Changed2 schema fields changed
    • addedInput schema / definitions / FundComputeRequest / properties / features / properties / lpClasses / items / properties / callSchedule
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Call this class on its own schedule instead of as the fund needs cash. pct is a share of the class commitment per fund year (called in the year's first quarter) or per quarter. Whatever the entries leave is called when the fund needs it.",
      +  "properties": {
      +    "frequency": {
      +      "enum": [
      +        "year",
      +        "quarter"
      +      ],
      +      "type": "string"
      +    },
      +    "pct": {
      +      "items": {
      +        "maximum": 1,
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "maxItems": 80,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "frequency",
      +    "pct"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / FundDetail / properties / lpClasses / description
      Added value: +"LP economics split by class. Each class carries its lifetime totals, datedNetIRR (solved from its own dated calls and distributions) and periods: calledCapital, unscheduledCalls and distributions, one entry per label. A class with a callSchedule is called on it; the others are called as the fund needs cash."
  5. Changed7 schema fields changed
    • addedInput schema / definitions / FundComputeRequest / properties / inputs / properties / maxFundLifeYears
      Added value: +{
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / inputs / properties / operationalExpenseLines / items / properties / quarterly
      Added value: +{
      +  "items": [
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    }
      +  ],
      +  "maxItems": 4,
      +  "minItems": 4,
      +  "type": "array"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / inputs / properties / partnershipExpenseLines / items / properties / quarterly
      Added value: +{
      +  "items": [
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    }
      +  ],
      +  "maxItems": 4,
      +  "minItems": 4,
      +  "type": "array"
      +}
    • addedInput schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / balanceSheet / properties
      Added value: +{
      +  "carriedInterestDistributed": {
      +    "description": "Carried interest distributed",
      +    "type": "number"
      +  },
      +  "cash": {
      +    "description": "Cash",
      +    "type": "number"
      +  },
      +  "checkBalances": {
      +    "description": "Check: assets less liabilities and capital. Zero when the balance sheet balances.",
      +    "type": "number"
      +  },
      +  "contributedCapitalGp": {
      +    "description": "Contributed capital, GP",
      +    "type": "number"
      +  },
      +  "contributedCapitalLp": {
      +    "description": "Contributed capital, LPs",
      +    "type": "number"
      +  },
      +  "cumulativeNetInvestmentIncome": {
      +    "description": "Cumulative net investment income (loss)",
      +    "type": "number"
      +  },
      +  "cumulativeNetRealizedGain": {
      +    "description": "Cumulative net realized gain (loss)",
      +    "type": "number"
      +  },
      +  "cumulativeNetUnrealized": {
      +    "description": "Cumulative net unrealized appreciation (depreciation)",
      +    "type": "number"
      +  },
      +  "distributionsGpCommit": {
      +    "description": "Distributions to the GP commit",
      +    "type": "number"
      +  },
      +  "distributionsLp": {
      +    "description": "Distributions to LPs",
      +    "type": "number"
      +  },
      +  "investmentsAtCost": {
      +    "description": "Investments, at cost. AUM.",
      +    "type": "number"
      +  },
      +  "investmentsAtFairValue": {
      +    "description": "Investments, at fair value. NAV.",
      +    "type": "number"
      +  },
      +  "totalAssets": {
      +    "description": "Total assets",
      +    "type": "number"
      +  },
      +  "totalLiabilities": {
      +    "description": "Total liabilities. Expenses are paid when incurred, so nothing is accrued.",
      +    "type": "number"
      +  },
      +  "totalLiabilitiesAndCapital": {
      +    "description": "Total liabilities and partners' capital",
      +    "type": "number"
      +  },
      +  "totalPartnersCapital": {
      +    "description": "Total partners' capital",
      +    "type": "number"
      +  },
      +  "unfundedCommitments": {
      +    "description": "Memo: unfunded commitments",
      +    "type": "number"
      +  },
      +  "unrealizedAppreciation": {
      +    "description": "Unrealized appreciation (depreciation)",
      +    "type": "number"
      +  }
      +}
    • addedInput schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / cashFlow / properties
      Added value: +{
      +  "carriedInterestPaid": {
      +    "description": "Carried interest paid",
      +    "type": "number"
      +  },
      +  "cashBeginning": {
      +    "description": "Cash, beginning of period",
      +    "type": "number"
      +  },
      +  "cashEnd": {
      +    "description": "Cash, end of period",
      +    "type": "number"
      +  },
      +  "checkTiesToBalanceSheet": {
      +    "description": "Check: cash less balance sheet cash. Zero when the cash flow ties to the balance sheet.",
      +    "type": "number"
      +  },
      +  "contributionsGp": {
      +    "description": "Capital contributions, GP",
      +    "type": "number"
      +  },
      +  "contributionsLp": {
      +    "description": "Capital contributions, LPs",
      +    "type": "number"
      +  },
      +  "distributionsGpCommit": {
      +    "description": "Distributions to the GP commit",
      +    "type": "number"
      +  },
      +  "distributionsLp": {
      +    "description": "Distributions to LPs",
      +    "type": "number"
      +  },
      +  "lessNetChangeInUnrealized": {
      +    "description": "Net change in unrealized (appreciation) depreciation",
      +    "type": "number"
      +  },
      +  "lessNetRealizedGain": {
      +    "description": "Net realized (gain) loss on investments",
      +    "type": "number"
      +  },
      +  "netCashFromFinancing": {
      +    "description": "Net cash from financing activities",
      +    "type": "number"
      +  },
      +  "netCashFromOperating": {
      +    "description": "Net cash from operating activities",
      +    "type": "number"
      +  },
      +  "netChangeInCash": {
      +    "description": "Net change in cash",
      +    "type": "number"
      +  },
      +  "netIncreaseFromOperations": {
      +    "description": "Net increase (decrease) in partners' capital from operations",
      +    "type": "number"
      +  },
      +  "proceedsFromExits": {
      +    "description": "Proceeds from exits",
      +    "type": "number"
      +  },
      +  "purchasesOfInvestments": {
      +    "description": "Purchases of investments. Includes recycled proceeds.",
      +    "type": "number"
      +  }
      +}
    • removedInput schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / incomeStatement
      Removed value: -{
      -  "type": "object"
      -}
    • addedInput schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / operations
      Added value: +{
      +  "properties": {
      +    "managementFees": {
      +      "description": "Management fees",
      +      "type": "number"
      +    },
      +    "netChangeInUnrealized": {
      +      "description": "Net change in unrealized appreciation (depreciation). Change in NAV less change in cost held.",
      +      "type": "number"
      +    },
      +    "netGainOnInvestments": {
      +      "description": "Net gain (loss) on investments",
      +      "type": "number"
      +    },
      +    "netIncreaseFromOperations": {
      +      "description": "Net increase (decrease) in partners' capital from operations",
      +      "type": "number"
      +    },
      +    "netInvestmentIncome": {
      +      "description": "Net investment income (loss). No interest or dividend income is modeled.",
      +      "type": "number"
      +    },
      +    "netRealizedGain": {
      +      "description": "Net realized gain (loss)",
      +      "type": "number"
      +    },
      +    "operationalExpenseLines": {
      +      "description": "The operational expense lines, when the model itemizes them.",
      +      "items": {
      +        "properties": {
      +          "amount": {
      +            "type": "number"
      +          },
      +          "label": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "operationalExpenses": {
      +      "description": "Operational expenses. Run through Q1 of the fund year after the fund life ends.",
      +      "type": "number"
      +    },
      +    "organizationalExpenses": {
      +      "description": "Organizational expenses",
      +      "type": "number"
      +    },
      +    "partnershipExpenseLines": {
      +      "description": "The partnership expense lines, when the model itemizes them.",
      +      "items": {
      +        "properties": {
      +          "amount": {
      +            "type": "number"
      +          },
      +          "label": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "partnershipExpenses": {
      +      "description": "Partnership expenses",
      +      "type": "number"
      +    },
      +    "realizedGainOnExits": {
      +      "description": "Realized gain on exits. Proceeds less the cost they release.",
      +      "type": "number"
      +    },
      +    "realizedLossOnWriteoffs": {
      +      "description": "Realized loss on writeoffs",
      +      "type": "number"
      +    },
      +    "totalExpenses": {
      +      "description": "Total expenses",
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
  6. Changed3 schema fields changed
    • addedInput schema / definitions / FundComputeRequest / properties / format
      Added value: +{
      +  "enum": [
      +    "json",
      +    "xlsx",
      +    "xlsx_url"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / fundName
      Added value: +{
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • addedInput schema / definitions / FundResultResponse / properties / data / properties / workbook
      Added value: +{
      +  "description": "Returned when the request sets format to \"xlsx\" or \"xlsx_url\": the live Excel workbook the web tool exports, with every number a formula back to its Get Started inputs. For \"xlsx\", decode data from base64 and save it as filename. For \"xlsx_url\", download it from url before expiresAt (24 hours).",
      +  "properties": {
      +    "contentType": {
      +      "type": "string"
      +    },
      +    "data": {
      +      "type": "string"
      +    },
      +    "encoding": {
      +      "enum": [
      +        "base64"
      +      ],
      +      "type": "string"
      +    },
      +    "expiresAt": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "filename": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "filename",
      +    "contentType"
      +  ],
      +  "type": "object"
      +}
  7. Changed6 schema fields changed
    • addedInput schema / definitions / FundComputeRequest / properties / features
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "capTable": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "bridge": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "expectedAgeAtRound": {
      +              "items": {
      +                "maximum": 100,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "maxItems": 21,
      +              "type": "array"
      +            },
      +            "numInvestmentsTarget": {
      +              "maximum": 10000,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "stageName": {
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            "writeoffHoldYears": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "yearsBetweenRounds": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "numInvestmentsTarget"
      +          ],
      +          "type": "object"
      +        },
      +        "inputs": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "defaultExitMultiple": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "defaultGraduationRate": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "defaultValuationIncrease": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "defaultWriteoffRate": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "dilutionFromOptionPoolsPerRound": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "dilutionPerRound": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "exitMultipleOnLastRound": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "followOnRounds": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "dilutionFromRound": {
      +                    "maximum": 100,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "newOptionPoolInRound": {
      +                    "maximum": 100,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "pctCompaniesFollowOn": {
      +                    "maximum": 100,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "valuationIncrease": {
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "maxItems": 20,
      +              "type": "array"
      +            },
      +            "newInvestmentCheckSize": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "numFollowOnRounds": {
      +              "maximum": 20,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "numRoundsFollowOn": {
      +              "maximum": 20,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "ownershipOutsideInvestment": {
      +              "items": {
      +                "maximum": 100,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "maxItems": 21,
      +              "type": "array"
      +            },
      +            "pctCompaniesFollowOn": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "postmoneyValuation": {
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "roundLabels": {
      +              "items": {
      +                "maxLength": 200,
      +                "type": "string"
      +              },
      +              "maxItems": 21,
      +              "type": "array"
      +            },
      +            "roundOutcomes": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "exitMultiple": {
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "graduationRate": {
      +                    "maximum": 100,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "writeoffRate": {
      +                    "maximum": 100,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "maxItems": 21,
      +              "type": "array"
      +            }
      +          },
      +          "required": [
      +            "newInvestmentCheckSize",
      +            "postmoneyValuation",
      +            "numFollowOnRounds",
      +            "numRoundsFollowOn",
      +            "defaultValuationIncrease",
      +            "dilutionPerRound",
      +            "dilutionFromOptionPoolsPerRound",
      +            "pctCompaniesFollowOn",
      +            "defaultGraduationRate",
      +            "defaultWriteoffRate",
      +            "defaultExitMultiple"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "inputs",
      +        "bridge"
      +      ],
      +      "type": "object"
      +    },
      +    "fees": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "base": {
      +          "enum": [
      +            "committed",
      +            "nav",
      +            "aum",
      +            "step-down"
      +          ],
      +          "type": "string"
      +        },
      +        "basesByYear": {
      +          "items": {
      +            "enum": [
      +              "committed",
      +              "nav",
      +              "aum",
      +              "step-down"
      +            ],
      +            "type": "string"
      +          },
      +          "maxItems": 100,
      +          "type": "array"
      +        },
      +        "feeYears": {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "ratePct": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "stepDownAfterYears": {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "yearlyRateSchedule": {
      +          "items": {
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "maxItems": 100,
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "base"
      +      ],
      +      "type": "object"
      +    },
      +    "followOn": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "offsetQuarters": {
      +          "maximum": 40,
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "offsetQuarters"
      +      ],
      +      "type": "object"
      +    },
      +    "lpClasses": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "commitment": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "feeOverrides": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "basesByYear": {
      +                "items": {
      +                  "enum": [
      +                    "committed",
      +                    "nav",
      +                    "aum",
      +                    "step-down"
      +                  ],
      +                  "type": "string"
      +                },
      +                "maxItems": 100,
      +                "type": "array"
      +              },
      +              "ratePct": {
      +                "maximum": 1,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "yearlyRateSchedule": {
      +                "items": {
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "maxItems": 100,
      +                "type": "array"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "isFirstLoss": {
      +            "type": "boolean"
      +          },
      +          "isRemainder": {
      +            "type": "boolean"
      +          },
      +          "name": {
      +            "maxLength": 200,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "overrides": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "carryPct": {
      +                "maximum": 1,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "carryTiers": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "carryPct": {
      +                      "maximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "catchup": {
      +                      "type": "boolean"
      +                    },
      +                    "moicThreshold": {
      +                      "minimum": 0,
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "moicThreshold",
      +                    "carryPct"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 20,
      +                "type": "array"
      +              },
      +              "catchupGpShare": {
      +                "maximum": 1,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "catchupPct": {
      +                "maximum": 1,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "preferredReturnMode": {
      +                "enum": [
      +                  "none",
      +                  "irr",
      +                  "multiple"
      +                ],
      +                "type": "string"
      +              },
      +              "preferredReturnMultiple": {
      +                "maximum": 100,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "preferredReturnRate": {
      +                "maximum": 1,
      +                "minimum": 0,
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "commitment"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 50,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "mgmtCo": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "expenses": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "annualCost": {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "growthRatePerYear": {
      +                "maximum": 10,
      +                "minimum": -1,
      +                "type": "number"
      +              },
      +              "label": {
      +                "maxLength": 200,
      +                "type": "string"
      +              },
      +              "yearsActive": {
      +                "items": {
      +                  "maximum": 100,
      +                  "minimum": 1,
      +                  "type": "integer"
      +                },
      +                "maxItems": 100,
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "label",
      +              "annualCost"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 100,
      +          "type": "array"
      +        },
      +        "oneTimeFormationCost": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "startingCash": {
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "expenses"
      +      ],
      +      "type": "object"
      +    },
      +    "waterfall": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "carryTiers": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "carryPct": {
      +                "maximum": 1,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "catchup": {
      +                "type": "boolean"
      +              },
      +              "moicThreshold": {
      +                "minimum": 0,
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "moicThreshold",
      +              "carryPct"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 20,
      +          "type": "array"
      +        },
      +        "catchupGpShare": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "catchupPct": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "preferredReturnMode": {
      +          "enum": [
      +            "none",
      +            "irr",
      +            "multiple"
      +          ],
      +          "type": "string"
      +        },
      +        "preferredReturnMultiple": {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "preferredReturnRate": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / firstCloseDate
      Added value: +{
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": "string"
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / granularity
      Added value: +{
      +  "enum": [
      +    "year",
      +    "quarter",
      +    "none"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / definitions / FundDetail
      Added value: +{
      +  "description": "The fund over time. Returned unless the request sets granularity to \"none\". Every array in periods has one entry per label. waterfall, lpClasses and mgmtCo appear only when the request sent that feature block.",
      +  "properties": {
      +    "granularity": {
      +      "enum": [
      +        "year",
      +        "quarter"
      +      ],
      +      "type": "string"
      +    },
      +    "irr": {
      +      "description": "IRRs solved from the dated quarterly cash flows, with terminal NAV.",
      +      "properties": {
      +        "grossIRR": {
      +          "type": "number"
      +        },
      +        "netIRR": {
      +          "properties": {
      +            "lp": {
      +              "type": "number"
      +            },
      +            "total": {
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "lpClasses": {
      +      "type": "object"
      +    },
      +    "mgmtCo": {
      +      "type": "object"
      +    },
      +    "periods": {
      +      "properties": {
      +        "calledCapital": {
      +          "$ref": "#/definitions/FundSeries"
      +        },
      +        "carriedInterest": {
      +          "description": "GP carry paid each period, catchups included.",
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        },
      +        "distributions": {
      +          "$ref": "#/definitions/FundSeries",
      +          "description": "Distributions after carry. The LP line runs through the waterfall period by period."
      +        },
      +        "dpi": {
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        },
      +        "gpCatchup": {
      +          "description": "GP catchup paid each period. Only with a waterfall block.",
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        },
      +        "investedCapital": {
      +          "$ref": "#/definitions/FundSeries"
      +        },
      +        "jCurveLp": {
      +          "description": "Cumulative LP net cash flow at the end of each period.",
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        },
      +        "labels": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "managementFees": {
      +          "$ref": "#/definitions/FundSeries"
      +        },
      +        "nav": {
      +          "$ref": "#/definitions/FundSeries"
      +        },
      +        "partnershipExpenses": {
      +          "$ref": "#/definitions/FundSeries"
      +        },
      +        "preferredReturn": {
      +          "description": "Preferred return paid to LPs each period. Only with a waterfall block.",
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        },
      +        "proceeds": {
      +          "$ref": "#/definitions/FundSeries"
      +        },
      +        "recycledCapital": {
      +          "$ref": "#/definitions/FundSeries"
      +        },
      +        "rvpi": {
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        },
      +        "tvpi": {
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "labels"
      +      ],
      +      "type": "object"
      +    },
      +    "statements": {
      +      "properties": {
      +        "currency": {
      +          "type": "string"
      +        },
      +        "periods": {
      +          "items": {
      +            "properties": {
      +              "balanceSheet": {
      +                "type": "object"
      +              },
      +              "cashFlow": {
      +                "type": "object"
      +              },
      +              "incomeStatement": {
      +                "type": "object"
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "periodEnd": {
      +                "type": "string"
      +              },
      +              "periodStart": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "waterfall": {
      +      "description": "Lifetime totals of the waterfall as run through the periods: return of capital, preferred return (accrued on the dates capital was called), catchup, carry by tier.",
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "granularity",
      +    "irr",
      +    "periods",
      +    "statements"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / FundResultResponse
      Added value: +{
      +  "properties": {
      +    "data": {
      +      "properties": {
      +        "detail": {
      +          "$ref": "#/definitions/FundDetail"
      +        },
      +        "result": {
      +          "$ref": "#/definitions/FundResult"
      +        }
      +      },
      +      "required": [
      +        "result"
      +      ],
      +      "type": "object"
      +    },
      +    "meta": {
      +      "properties": {
      +        "keyName": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / definitions / FundSeries
      Added value: +{
      +  "properties": {
      +    "gp": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "lp": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "total": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "lp",
      +    "gp"
      +  ],
      +  "type": "object"
      +}
  8. Changed1 schema field changed
    • addedInput schema / definitions / ProductAccess / properties / remaining / description
      Added value: +"Calculations this account can run now: the paid balance while a paid period is active, otherwise the lifetime free balance."
  9. Changed7 schema fields changed
    • addedInput schema / definitions / ProductAccess / properties / active / description
      Added value: +"Active paid term; use state/freeRemaining for trial access."
    • addedInput schema / definitions / ProductAccess / properties / freeRemaining
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / definitions / ProductAccess / properties / nextAction
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / definitions / ProductAccess / properties / paidExpiration
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / definitions / ProductAccess / properties / paidRemaining
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / definitions / ProductAccess / properties / source
      Added value: +{
      +  "enum": [
      +    "free",
      +    "paid"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / definitions / ProductAccess / properties / state
      Added value: +{
      +  "enum": [
      +    "free_available",
      +    "free_exhausted",
      +    "paid_active",
      +    "paid_expired",
      +    "paid_quota_exhausted"
      +  ],
      +  "type": "string"
      +}
  10. Changed50 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / definitions / AccessResponse
      Added value: +{
      +  "properties": {
      +    "data": {
      +      "properties": {
      +        "daily": {
      +          "items": {
      +            "$ref": "#/definitions/DailyUsage"
      +          },
      +          "type": "array"
      +        },
      +        "monthly": {
      +          "items": {
      +            "$ref": "#/definitions/MonthlyUsage"
      +          },
      +          "type": "array"
      +        },
      +        "periods": {
      +          "items": {
      +            "allOf": [
      +              {
      +                "$ref": "#/definitions/UsagePeriod"
      +              },
      +              {
      +                "properties": {
      +                  "product": {
      +                    "enum": [
      +                      "cap-table",
      +                      "fund-economics"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "product"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "type": "array"
      +        },
      +        "products": {
      +          "items": {
      +            "$ref": "#/definitions/ProductAccess"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "products",
      +        "daily"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedInput schema / definitions / ApiKey
      Removed value: -{
      -  "properties": {
      -    "created_at": {
      -      "type": "string"
      -    },
      -    "id": {
      -      "type": "string"
      -    },
      -    "key_prefix": {
      -      "description": "First chars of the token, for display.",
      -      "type": "string"
      -    },
      -    "last_used_at": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "name": {
      -      "type": "string"
      -    },
      -    "revoked_at": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "type": "object"
      -}
    • removedInput schema / definitions / CapTableEvent
      Removed value: -{
      -  "description": "One cap-table event, discriminated by `type`. Pass events in chronological order.",
      -  "discriminator": {
      -    "mapping": {
      -      "common_issuance": "#/components/schemas/CommonIssuanceEvent",
      -      "convertible_round": "#/components/schemas/ConvertibleRoundEvent",
      -      "manual_issuance": "#/components/schemas/ManualIssuanceEvent",
      -      "option_grant": "#/components/schemas/OptionGrantEvent",
      -      "option_pool": "#/components/schemas/OptionPoolEvent",
      -      "priced_round": "#/components/schemas/PricedRoundEvent",
      -      "secondary_sale": "#/components/schemas/SecondarySaleEvent",
      -      "warrant_round": "#/components/schemas/WarrantRoundEvent"
      -    },
      -    "propertyName": "type"
      -  },
      -  "oneOf": [
      -    {
      -      "$ref": "#/definitions/CommonIssuanceEvent"
      -    },
      -    {
      -      "$ref": "#/definitions/OptionPoolEvent"
      -    },
      -    {
      -      "$ref": "#/definitions/SecondarySaleEvent"
      -    },
      -    {
      -      "$ref": "#/definitions/OptionGrantEvent"
      -    },
      -    {
      -      "$ref": "#/definitions/ManualIssuanceEvent"
      -    },
      -    {
      -      "$ref": "#/definitions/ConvertibleRoundEvent"
      -    },
      -    {
      -      "$ref": "#/definitions/WarrantRoundEvent"
      -    },
      -    {
      -      "$ref": "#/definitions/PricedRoundEvent"
      -    }
      -  ]
      -}
    • addedInput schema / definitions / CapTableSnapshot
      Added value: +{
      +  "properties": {
      +    "holdings": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "label": {
      +      "type": "string"
      +    },
      +    "outstandingConvertibles": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "ownership": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "pricePerShare": {
      +      "type": "number"
      +    },
      +    "roundDetail": {
      +      "type": "object"
      +    },
      +    "totalShares": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "label",
      +    "holdings",
      +    "totalShares",
      +    "ownership",
      +    "outstandingConvertibles"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / ComputeRequest / additionalProperties
      Added value: +false
    • removedInput schema / definitions / ComputeRequest / properties / events / description
      Removed value: -"Ordered list of cap-table events to fold."
    • removedInput schema / definitions / ComputeRequest / properties / events / items / $ref
      Removed value: -"#/definitions/CapTableEvent"
    • addedInput schema / definitions / ComputeRequest / properties / events / items / description
      Added value: +"One cap-table event, discriminated by `type`. Pass events in chronological order."
    • addedInput schema / definitions / ComputeRequest / properties / events / items / discriminator
      Added value: +{
      +  "mapping": {
      +    "common_issuance": "#/components/schemas/CommonIssuanceEvent",
      +    "convertible_round": "#/components/schemas/ConvertibleRoundEvent",
      +    "manual_issuance": "#/components/schemas/ManualIssuanceEvent",
      +    "option_grant": "#/components/schemas/OptionGrantEvent",
      +    "option_pool": "#/components/schemas/OptionPoolEvent",
      +    "priced_round": "#/components/schemas/PricedRoundEvent",
      +    "secondary_sale": "#/components/schemas/SecondarySaleEvent",
      +    "warrant_round": "#/components/schemas/WarrantRoundEvent"
      +  },
      +  "propertyName": "type"
      +}
    • addedInput schema / definitions / ComputeRequest / properties / events / items / oneOf
      Added value: +[
      +  {
      +    "$ref": "#/definitions/CommonIssuanceEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/OptionPoolEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/SecondarySaleEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/OptionGrantEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/ManualIssuanceEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/ConvertibleRoundEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/WarrantRoundEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/PricedRoundEvent"
      +  }
      +]
    • addedInput schema / definitions / ComputeRequest / properties / events / maxItems
      Added value: +200
    • addedInput schema / definitions / ComputeResponse / properties / data / properties / final / $ref
      Added value: +"#/definitions/CapTableSnapshot"
    • removedInput schema / definitions / ComputeResponse / properties / data / properties / final / description
      Removed value: -"The final cap-table state."
    • removedInput schema / definitions / ComputeResponse / properties / data / properties / final / type
      Removed value: -"object"
    • addedInput schema / definitions / ComputeResponse / properties / data / properties / snapshots / items / $ref
      Added value: +"#/definitions/CapTableSnapshot"
    • removedInput schema / definitions / ComputeResponse / properties / data / properties / snapshots / items / type
      Removed value: -"object"
    • removedInput schema / definitions / CreateKeyRequest
      Removed value: -{
      -  "properties": {
      -    "name": {
      -      "description": "Label for the key, written into the audit trail.",
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • addedInput schema / definitions / DailyUsage
      Added value: +{
      +  "properties": {
      +    "day": {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    "endpoint": {
      +      "type": "string"
      +    },
      +    "failed": {
      +      "type": "integer"
      +    },
      +    "product": {
      +      "enum": [
      +        "cap-table",
      +        "fund-economics"
      +      ],
      +      "type": "string"
      +    },
      +    "source": {
      +      "type": "string"
      +    },
      +    "succeeded": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "day",
      +    "product",
      +    "endpoint",
      +    "source",
      +    "succeeded",
      +    "failed"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / definitions / Error / properties / error / properties / code / enum
      Previous value: -[
      -  "unauthorized",
      -  "payment_required",
      -  "validation_failed",
      -  "engine_error",
      -  "method_not_allowed",
      -  "internal_error"
      -]New value: +[
      +  "unauthorized",
      +  "payment_required",
      +  "validation_failed",
      +  "engine_error",
      +  "quota_exhausted",
      +  "rate_limited",
      +  "idempotency_conflict",
      +  "service_unavailable",
      +  "method_not_allowed",
      +  "internal_error"
      +]
    • addedInput schema / definitions / FundComputeRequest / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / definitions / FundComputeRequest / additionalProperties
      Added value: +false
    • changedInput schema / definitions / FundComputeRequest / properties / inputs / additionalProperties
      Previous value: -trueNew value: +false
    • removedInput schema / definitions / FundComputeRequest / properties / inputs / description
      Removed value: -"Fund Economics inputs: committed capital, fees, portfolio construction, carry tiers."
    • addedInput schema / definitions / FundComputeRequest / properties / inputs / properties
      Added value: +{
      +  "carryPct": {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "committedCapital": {
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  "fundOperationsYears": {
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  "gpCommitCountedTowardInvested": {
      +    "type": "boolean"
      +  },
      +  "gpCommitPct": {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "mgmtFeePct": {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "mgmtFeeSchedule": {
      +    "items": {
      +      "maximum": 1,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "type": "array"
      +  },
      +  "mgmtFeesPeriodYears": {
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  "newInvestmentPeriodYears": {
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  "operationalExpenseLines": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "amount": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "label": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "label",
      +        "amount"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "operationalExpensesAnnual": {
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "operationalExpensesBreakout": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "audit": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "fundAdmin": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "other": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "tax": {
      +        "minimum": 0,
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "fundAdmin",
      +      "tax",
      +      "audit",
      +      "other"
      +    ],
      +    "type": "object"
      +  },
      +  "organizationalExpenseLines": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "amount": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "label": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "label",
      +        "amount"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "organizationalExpenses": {
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "partnershipExpenseLines": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "amount": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "label": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "label",
      +        "amount"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "partnershipExpensesAnnual": {
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "portfolio": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "avgCheckSizeFollow": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "avgCheckSizeNew": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "entryStages": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "avgCheckSize": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "followOnChecks": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "avgCheckSize": {
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "label": {
      +                    "type": "string"
      +                  },
      +                  "pctOfReserve": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "avgCheckSize"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "initialCheckLabel": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "numInvestments": {
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "pctAllocation": {
      +              "maximum": 1,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "reserveRatio": {
      +              "maximum": 1,
      +              "minimum": 0,
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "name",
      +            "numInvestments",
      +            "avgCheckSize"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "followPct": {
      +        "maximum": 1,
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "newPct": {
      +        "maximum": 1,
      +        "minimum": 0,
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "newPct",
      +      "followPct",
      +      "avgCheckSizeNew",
      +      "avgCheckSizeFollow"
      +    ],
      +    "type": "object"
      +  },
      +  "recycledCapitalPct": {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "returnTiers": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "holdingPeriodYears": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "multiple": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "name": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "numCompanies": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "pctOfCapital": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "pctOfCapital",
      +        "multiple",
      +        "holdingPeriodYears"
      +      ],
      +      "type": "object"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  },
      +  "solveCalledFromDeployment": {
      +    "type": "boolean"
      +  },
      +  "stageInputMode": {
      +    "enum": [
      +      "pct-capital",
      +      "num-companies"
      +    ],
      +    "type": "string"
      +  },
      +  "targetTotalInvestments": {
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "tierFractional": {
      +    "type": "boolean"
      +  },
      +  "tierInputMode": {
      +    "enum": [
      +      "pct-capital",
      +      "num-companies"
      +    ],
      +    "type": "string"
      +  }
      +}
    • addedInput schema / definitions / FundComputeRequest / properties / inputs / required
      Added value: +[
      +  "committedCapital",
      +  "gpCommitPct",
      +  "gpCommitCountedTowardInvested",
      +  "organizationalExpenses",
      +  "operationalExpensesAnnual",
      +  "mgmtFeePct",
      +  "recycledCapitalPct",
      +  "carryPct",
      +  "newInvestmentPeriodYears",
      +  "mgmtFeesPeriodYears",
      +  "portfolio",
      +  "returnTiers"
      +]
    • addedInput schema / definitions / FundResult
      Added value: +{
      +  "properties": {
      +    "calledCapital": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "committedCapital": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "distributions": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "dpi": {
      +      "type": "number"
      +    },
      +    "grossIRR": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "grossMultiple": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "investedCapital": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "managementFees": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "netIRR": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "netMultiple": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "partnershipExpenses": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "pic": {
      +      "type": "number"
      +    },
      +    "proceeds": {
      +      "$ref": "#/definitions/LineTotals"
      +    },
      +    "rvpi": {
      +      "type": "number"
      +    },
      +    "tiers": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "tvpi": {
      +      "type": "number"
      +    },
      +    "weightedHoldPeriodYears": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "committedCapital",
      +    "calledCapital",
      +    "managementFees",
      +    "partnershipExpenses",
      +    "investedCapital",
      +    "proceeds",
      +    "distributions",
      +    "grossMultiple",
      +    "netMultiple",
      +    "grossIRR",
      +    "netIRR",
      +    "pic",
      +    "dpi",
      +    "rvpi",
      +    "tvpi",
      +    "weightedHoldPeriodYears"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / LineTotals
      Added value: +{
      +  "properties": {
      +    "gp": {
      +      "type": "number"
      +    },
      +    "lp": {
      +      "type": "number"
      +    },
      +    "total": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "lp",
      +    "gp"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / MonthlyUsage
      Added value: +{
      +  "properties": {
      +    "failed": {
      +      "type": "integer"
      +    },
      +    "month": {
      +      "pattern": "^[0-9]{4}-[0-9]{2}$",
      +      "type": "string"
      +    },
      +    "product": {
      +      "enum": [
      +        "cap-table",
      +        "fund-economics"
      +      ],
      +      "type": "string"
      +    },
      +    "succeeded": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "month",
      +    "product",
      +    "succeeded",
      +    "failed"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / ProductAccess
      Added value: +{
      +  "properties": {
      +    "active": {
      +      "type": "boolean"
      +    },
      +    "allowance": {
      +      "const": 6000,
      +      "type": "integer"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "period": {
      +      "anyOf": [
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "$ref": "#/definitions/UsagePeriod"
      +        }
      +      ]
      +    },
      +    "priceUsd": {
      +      "const": 20,
      +      "type": "number"
      +    },
      +    "product": {
      +      "enum": [
      +        "cap-table",
      +        "fund-economics"
      +      ],
      +      "type": "string"
      +    },
      +    "remaining": {
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "product",
      +    "name",
      +    "priceUsd",
      +    "allowance",
      +    "period",
      +    "remaining",
      +    "active"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / ResultResponse / properties / data / properties / result / oneOf
      Added value: +[
      +  {
      +    "$ref": "#/definitions/WaterfallResult"
      +  },
      +  {
      +    "$ref": "#/definitions/FundResult"
      +  }
      +]
    • removedInput schema / definitions / ResultResponse / properties / data / properties / result / type
      Removed value: -"object"
    • addedInput schema / definitions / UsagePeriod
      Added value: +{
      +  "properties": {
      +    "allowance": {
      +      "type": "integer"
      +    },
      +    "consumed": {
      +      "type": "integer"
      +    },
      +    "enabled": {
      +      "type": "boolean"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "period_end": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "period_start": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "reserved": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "period_start",
      +    "period_end",
      +    "allowance",
      +    "consumed",
      +    "reserved",
      +    "enabled"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / definitions / WaterfallComputeRequest / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / definitions / WaterfallComputeRequest / additionalProperties
      Added value: +false
    • removedInput schema / definitions / WaterfallComputeRequest / properties / exitValuation / description
      Removed value: -"Total exit proceeds to distribute."
    • addedInput schema / definitions / WaterfallComputeRequest / properties / exitValuation / maximum
      Added value: +1000000000000000
    • addedInput schema / definitions / WaterfallComputeRequest / properties / exitValuation / minimum
      Added value: +0
    • changedInput schema / definitions / WaterfallComputeRequest / properties / model / additionalProperties
      Previous value: -trueNew value: +false
    • removedInput schema / definitions / WaterfallComputeRequest / properties / model / description
      Removed value: -"Exit-waterfall model: preferred series, common holders, options, warrants, convertibles."
    • addedInput schema / definitions / WaterfallComputeRequest / properties / model / properties
      Added value: +{
      +  "common": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "id": {
      +          "maxLength": 200,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "invested": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "name": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "shares": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "name",
      +        "shares"
      +      ],
      +      "type": "object"
      +    },
      +    "maxItems": 500,
      +    "type": "array"
      +  },
      +  "convertibles": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "accruedInterest": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "cap": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "cashOutAs": {
      +          "enum": [
      +            "debt",
      +            "equity"
      +          ],
      +          "type": "string"
      +        },
      +        "cashOutSeniority": {
      +          "enum": [
      +            "senior",
      +            "pari-passu"
      +          ],
      +          "type": "string"
      +        },
      +        "discount": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "id": {
      +          "maxLength": 200,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "kind": {
      +          "enum": [
      +            "pre-safe",
      +            "post-safe",
      +            "note"
      +          ],
      +          "type": "string"
      +        },
      +        "name": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "premiumMultiple": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "principal": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "seniority": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "name",
      +        "kind",
      +        "principal"
      +      ],
      +      "type": "object"
      +    },
      +    "maxItems": 100,
      +    "type": "array"
      +  },
      +  "debt": {
      +    "maximum": 1000000000000000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "options": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "id": {
      +          "maxLength": 200,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "name": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "shares": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "strike": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "vestedFraction": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "name",
      +        "shares",
      +        "strike"
      +      ],
      +      "type": "object"
      +    },
      +    "maxItems": 500,
      +    "type": "array"
      +  },
      +  "preferred": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "conversionRatio": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "dividendCumulative": {
      +          "type": "boolean"
      +        },
      +        "dividendRate": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "dividendStart": {
      +          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +          "type": "string"
      +        },
      +        "holders": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "id": {
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "invested": {
      +                "maximum": 1000000000000000,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "name": {
      +                "maxLength": 200,
      +                "type": "string"
      +              },
      +              "shares": {
      +                "maximum": 1000000000000000,
      +                "minimum": 0,
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "name",
      +              "shares",
      +              "invested"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 500,
      +          "type": "array"
      +        },
      +        "id": {
      +          "maxLength": 200,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "investmentDate": {
      +          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +          "type": "string"
      +        },
      +        "multiple": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "name": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "participation": {
      +          "enum": [
      +            "none",
      +            "full",
      +            "capped"
      +          ],
      +          "type": "string"
      +        },
      +        "participationCap": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "seniority": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "name",
      +        "holders",
      +        "seniority"
      +      ],
      +      "type": "object"
      +    },
      +    "maxItems": 20,
      +    "type": "array"
      +  },
      +  "transactionExpenses": {
      +    "maximum": 1000000000000000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "unissuedPool": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "shares": {
      +        "maximum": 1000000000000000,
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "treatment": {
      +        "const": "cancel",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "shares"
      +    ],
      +    "type": "object"
      +  },
      +  "warrants": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "id": {
      +          "maxLength": 200,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "name": {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        "shares": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "strike": {
      +          "maximum": 1000000000000000,
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "name",
      +        "shares",
      +        "strike"
      +      ],
      +      "type": "object"
      +    },
      +    "maxItems": 500,
      +    "type": "array"
      +  }
      +}
    • addedInput schema / definitions / WaterfallComputeRequest / properties / model / required
      Added value: +[
      +  "common",
      +  "preferred"
      +]
    • changedInput schema / definitions / WaterfallComputeRequest / required
      Previous value: -[
      -  "model",
      -  "exitValuation"
      -]New value: +[
      +  "exitValuation",
      +  "model"
      +]
    • addedInput schema / definitions / WaterfallResult
      Added value: +{
      +  "properties": {
      +    "classes": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "converged": {
      +      "type": "boolean"
      +    },
      +    "convertibles": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "distributable": {
      +      "type": "number"
      +    },
      +    "exitValuation": {
      +      "type": "number"
      +    },
      +    "holders": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "iterations": {
      +      "type": "integer"
      +    },
      +    "perShare": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "series": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "exitValuation",
      +    "distributable",
      +    "classes",
      +    "series",
      +    "convertibles",
      +    "holders",
      +    "perShare",
      +    "iterations",
      +    "converged"
      +  ],
      +  "type": "object"
      +}
    • removedInput schema / properties / events / description
      Removed value: -"Ordered list of cap-table events to fold."
    • removedInput schema / properties / events / items / $ref
      Removed value: -"#/definitions/CapTableEvent"
    • addedInput schema / properties / events / items / description
      Added value: +"One cap-table event, discriminated by `type`. Pass events in chronological order."
    • addedInput schema / properties / events / items / discriminator
      Added value: +{
      +  "mapping": {
      +    "common_issuance": "#/components/schemas/CommonIssuanceEvent",
      +    "convertible_round": "#/components/schemas/ConvertibleRoundEvent",
      +    "manual_issuance": "#/components/schemas/ManualIssuanceEvent",
      +    "option_grant": "#/components/schemas/OptionGrantEvent",
      +    "option_pool": "#/components/schemas/OptionPoolEvent",
      +    "priced_round": "#/components/schemas/PricedRoundEvent",
      +    "secondary_sale": "#/components/schemas/SecondarySaleEvent",
      +    "warrant_round": "#/components/schemas/WarrantRoundEvent"
      +  },
      +  "propertyName": "type"
      +}
    • addedInput schema / properties / events / items / oneOf
      Added value: +[
      +  {
      +    "$ref": "#/definitions/CommonIssuanceEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/OptionPoolEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/SecondarySaleEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/OptionGrantEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/ManualIssuanceEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/ConvertibleRoundEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/WarrantRoundEvent"
      +  },
      +  {
      +    "$ref": "#/definitions/PricedRoundEvent"
      +  }
      +]
    • addedInput schema / properties / events / maxItems
      Added value: +200
  11. Changed5 schema fields changed
    • addedInput schema / definitions
      Added value: +{
      +  "ApiKey": {
      +    "properties": {
      +      "created_at": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "key_prefix": {
      +        "description": "First chars of the token, for display.",
      +        "type": "string"
      +      },
      +      "last_used_at": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "revoked_at": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "CapTableEvent": {
      +    "description": "One cap-table event, discriminated by `type`. Pass events in chronological order.",
      +    "discriminator": {
      +      "mapping": {
      +        "common_issuance": "#/components/schemas/CommonIssuanceEvent",
      +        "convertible_round": "#/components/schemas/ConvertibleRoundEvent",
      +        "manual_issuance": "#/components/schemas/ManualIssuanceEvent",
      +        "option_grant": "#/components/schemas/OptionGrantEvent",
      +        "option_pool": "#/components/schemas/OptionPoolEvent",
      +        "priced_round": "#/components/schemas/PricedRoundEvent",
      +        "secondary_sale": "#/components/schemas/SecondarySaleEvent",
      +        "warrant_round": "#/components/schemas/WarrantRoundEvent"
      +      },
      +      "propertyName": "type"
      +    },
      +    "oneOf": [
      +      {
      +        "$ref": "#/definitions/CommonIssuanceEvent"
      +      },
      +      {
      +        "$ref": "#/definitions/OptionPoolEvent"
      +      },
      +      {
      +        "$ref": "#/definitions/SecondarySaleEvent"
      +      },
      +      {
      +        "$ref": "#/definitions/OptionGrantEvent"
      +      },
      +      {
      +        "$ref": "#/definitions/ManualIssuanceEvent"
      +      },
      +      {
      +        "$ref": "#/definitions/ConvertibleRoundEvent"
      +      },
      +      {
      +        "$ref": "#/definitions/WarrantRoundEvent"
      +      },
      +      {
      +        "$ref": "#/definitions/PricedRoundEvent"
      +      }
      +    ]
      +  },
      +  "CommonIssuanceEvent": {
      +    "description": "Issue common stock (founders, employees).",
      +    "properties": {
      +      "grants": {
      +        "items": {
      +          "properties": {
      +            "id": {
      +              "type": "string"
      +            },
      +            "kind": {
      +              "enum": [
      +                "founder",
      +                "employee"
      +              ]
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "shares": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name",
      +            "kind",
      +            "shares"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "common_issuance"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "label",
      +      "grants"
      +    ],
      +    "type": "object"
      +  },
      +  "ComputeRequest": {
      +    "properties": {
      +      "events": {
      +        "description": "Ordered list of cap-table events to fold.",
      +        "items": {
      +          "$ref": "#/definitions/CapTableEvent"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "events"
      +    ],
      +    "type": "object"
      +  },
      +  "ComputeResponse": {
      +    "properties": {
      +      "data": {
      +        "properties": {
      +          "final": {
      +            "description": "The final cap-table state.",
      +            "type": "object"
      +          },
      +          "snapshots": {
      +            "description": "One snapshot per event, in order.",
      +            "items": {
      +              "type": "object"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "meta": {
      +        "properties": {
      +          "keyName": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "ConvertibleRoundEvent": {
      +    "description": "Issue SAFEs or notes; they convert to preferred at the next priced round.",
      +    "properties": {
      +      "convertibles": {
      +        "items": {
      +          "properties": {
      +            "accruedInterest": {
      +              "type": "number"
      +            },
      +            "capType": {
      +              "enum": [
      +                "pre-money",
      +                "post-money",
      +                "post-money-fixed",
      +                "post-money-fixed-after"
      +              ]
      +            },
      +            "conversionDate": {
      +              "description": "ISO date. Notes only.",
      +              "type": "string"
      +            },
      +            "dilutionMode": {
      +              "description": "Defaults to \"existing-only\".",
      +              "enum": [
      +                "existing-only",
      +                "all"
      +              ]
      +            },
      +            "discount": {
      +              "description": "0..1.",
      +              "type": "number"
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "interestRate": {
      +              "description": "Annual fraction (0.05 = 5%). Notes only.",
      +              "type": "number"
      +            },
      +            "investmentDate": {
      +              "description": "ISO date. Notes only.",
      +              "type": "string"
      +            },
      +            "kind": {
      +              "enum": [
      +                "safe",
      +                "note"
      +              ]
      +            },
      +            "mfn": {
      +              "type": "boolean"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "principal": {
      +              "type": "number"
      +            },
      +            "valuationCap": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name",
      +            "kind",
      +            "principal"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "convertible_round"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "label",
      +      "convertibles"
      +    ],
      +    "type": "object"
      +  },
      +  "CreateKeyRequest": {
      +    "properties": {
      +      "name": {
      +        "description": "Label for the key, written into the audit trail.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "Error": {
      +    "properties": {
      +      "error": {
      +        "properties": {
      +          "code": {
      +            "enum": [
      +              "unauthorized",
      +              "payment_required",
      +              "validation_failed",
      +              "engine_error",
      +              "method_not_allowed",
      +              "internal_error"
      +            ],
      +            "type": "string"
      +          },
      +          "details": {},
      +          "message": {
      +            "type": "string"
      +          },
      +          "retryable": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message",
      +          "retryable"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "FundComputeRequest": {
      +    "properties": {
      +      "inputs": {
      +        "additionalProperties": true,
      +        "description": "Fund Economics inputs: committed capital, fees, portfolio construction, carry tiers.",
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "inputs"
      +    ],
      +    "type": "object"
      +  },
      +  "ManualIssuanceEvent": {
      +    "description": "Escape hatch: issue exact shares for custom arrangements.",
      +    "properties": {
      +      "issuances": {
      +        "items": {
      +          "properties": {
      +            "class": {
      +              "enum": [
      +                "common",
      +                "preferred",
      +                "option-pool",
      +                "warrant"
      +              ]
      +            },
      +            "countMode": {
      +              "description": "Defaults to \"shares\".",
      +              "enum": [
      +                "shares",
      +                "percent"
      +              ]
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "issuePrice": {
      +              "type": "number"
      +            },
      +            "kind": {
      +              "enum": [
      +                "founder",
      +                "employee",
      +                "investor",
      +                "pool"
      +              ]
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "pctBasis": {
      +              "description": "Defaults to \"fully-diluted\".",
      +              "enum": [
      +                "fully-diluted",
      +                "issued"
      +              ]
      +            },
      +            "shares": {
      +              "type": "number"
      +            },
      +            "targetPct": {
      +              "description": "0..1, used when countMode=\"percent\".",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name",
      +            "kind",
      +            "class",
      +            "shares"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "manual_issuance"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "label",
      +      "issuances"
      +    ],
      +    "type": "object"
      +  },
      +  "OptionGrantEvent": {
      +    "description": "Grant options to people from one pool (fully-diluted-neutral).",
      +    "properties": {
      +      "grants": {
      +        "items": {
      +          "properties": {
      +            "id": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "shares": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name",
      +            "shares"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "poolId": {
      +        "description": "Pool id to grant from; omit to draw the common pool.",
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "option_grant"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "label",
      +      "grants"
      +    ],
      +    "type": "object"
      +  },
      +  "OptionPoolEvent": {
      +    "description": "Create or expand an option pool (shares authorized, not granted).",
      +    "properties": {
      +      "countMode": {
      +        "description": "Defaults to \"shares\".",
      +        "enum": [
      +          "shares",
      +          "percent"
      +        ]
      +      },
      +      "id": {
      +        "description": "Pool id, so an option_grant can name which pool it draws from.",
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "shares": {
      +        "type": "number"
      +      },
      +      "strikePrice": {
      +        "type": "number"
      +      },
      +      "targetPct": {
      +        "description": "0..1 of post-event fully diluted, used when countMode=\"percent\".",
      +        "type": "number"
      +      },
      +      "type": {
      +        "const": "option_pool"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "label",
      +      "shares"
      +    ],
      +    "type": "object"
      +  },
      +  "PricedRoundEvent": {
      +    "description": "A priced equity round: new money buys newly issued preferred.",
      +    "properties": {
      +      "investments": {
      +        "items": {
      +          "properties": {
      +            "amount": {
      +              "type": "number"
      +            },
      +            "antiDilution": {
      +              "enum": [
      +                "weighted-average",
      +                "full-ratchet"
      +              ]
      +            },
      +            "antiDilutionMethod": {
      +              "description": "Defaults to \"conversion-ratio\".",
      +              "enum": [
      +                "conversion-ratio",
      +                "new-shares"
      +              ]
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "proRata": {
      +              "description": "If true, amount is back-solved to hold pre-round ownership; match by id.",
      +              "type": "boolean"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name",
      +            "amount"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "poolMode": {
      +        "description": "Legacy. Prefer pools[].",
      +        "enum": [
      +          "pre",
      +          "post",
      +          "custom"
      +        ]
      +      },
      +      "poolPostPct": {
      +        "description": "Legacy. Prefer pools[].",
      +        "type": "number"
      +      },
      +      "pools": {
      +        "description": "Option pool top-ups for the round (preferred over the legacy targetPoolPct trio).",
      +        "items": {
      +          "properties": {
      +            "countMode": {
      +              "description": "Defaults to \"percent\".",
      +              "enum": [
      +                "shares",
      +                "percent"
      +              ]
      +            },
      +            "label": {
      +              "type": "string"
      +            },
      +            "mode": {
      +              "description": "\"pre\" dilutes existing only; \"post\" dilutes new money too.",
      +              "enum": [
      +                "pre",
      +                "post"
      +              ]
      +            },
      +            "pct": {
      +              "description": "0..1 of post-money fully diluted, when countMode=\"percent\".",
      +              "type": "number"
      +            },
      +            "poolId": {
      +              "description": "Set to track this pool separately (its own cap-table row).",
      +              "type": "string"
      +            },
      +            "shares": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "mode"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "preMoneyValuation": {
      +        "type": "number"
      +      },
      +      "targetPoolPct": {
      +        "description": "Legacy. Prefer pools[].",
      +        "type": "number"
      +      },
      +      "type": {
      +        "const": "priced_round"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "label",
      +      "preMoneyValuation",
      +      "investments"
      +    ],
      +    "type": "object"
      +  },
      +  "ResultResponse": {
      +    "properties": {
      +      "data": {
      +        "properties": {
      +          "result": {
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "meta": {
      +        "properties": {
      +          "keyName": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "SecondarySaleEvent": {
      +    "description": "Transfer existing shares from one holder to another.",
      +    "properties": {
      +      "class": {
      +        "description": "Defaults to \"common\".",
      +        "enum": [
      +          "common",
      +          "preferred",
      +          "option-pool",
      +          "warrant"
      +        ]
      +      },
      +      "fromId": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "round": {
      +        "description": "Which series the shares come from (e.g. \"Series A\").",
      +        "type": "string"
      +      },
      +      "shares": {
      +        "type": "number"
      +      },
      +      "toId": {
      +        "type": "string"
      +      },
      +      "toName": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "secondary_sale"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "label",
      +      "fromId",
      +      "toId",
      +      "toName",
      +      "shares"
      +    ],
      +    "type": "object"
      +  },
      +  "WarrantRoundEvent": {
      +    "description": "Issue warrants (right to buy shares at a set price); counts toward fully diluted now.",
      +    "properties": {
      +      "label": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "const": "warrant_round"
      +      },
      +      "warrants": {
      +        "items": {
      +          "properties": {
      +            "countMode": {
      +              "enum": [
      +                "shares",
      +                "value"
      +              ]
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "parValue": {
      +              "type": "number"
      +            },
      +            "priceDiscount": {
      +              "description": "0..1 discount on the source round price.",
      +              "type": "number"
      +            },
      +            "priceFromRound": {
      +              "description": "Source round label to price off, when variable.",
      +              "type": "string"
      +            },
      +            "purchaseClass": {
      +              "enum": [
      +                "common",
      +                "preferred"
      +              ]
      +            },
      +            "purchasePrice": {
      +              "type": "number"
      +            },
      +            "purchaseRound": {
      +              "description": "For a preferred warrant, the series it targets.",
      +              "type": "string"
      +            },
      +            "shares": {
      +              "description": "When countMode=\"shares\".",
      +              "type": "number"
      +            },
      +            "totalValue": {
      +              "description": "When countMode=\"value\": shares = totalValue / purchasePrice.",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "name",
      +            "purchaseClass",
      +            "countMode"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "label",
      +      "warrants"
      +    ],
      +    "type": "object"
      +  },
      +  "WaterfallComputeRequest": {
      +    "properties": {
      +      "exitValuation": {
      +        "description": "Total exit proceeds to distribute.",
      +        "type": "number"
      +      },
      +      "model": {
      +        "additionalProperties": true,
      +        "description": "Exit-waterfall model: preferred series, common holders, options, warrants, convertibles.",
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "model",
      +      "exitValuation"
      +    ],
      +    "type": "object"
      +  }
      +}
    • changedInput schema / properties / events / description
      Previous value: -"Ordered cap-table events. Each has a \"type\" (common_issuance, priced_round, convertible_round, option_pool, option_grant, warrant_round, secondary_sale, manual_issuance) and a \"label\", plus type-specific fields. Example: [{\"type\":\"common_issuance\",\"label\":\"Founders\",\"grants\":[{\"id\":\"f\",\"name\":\"Founder\",\"shares\":8000000,\"kind\":\"founder\"}]}]."New value: +"Ordered list of cap-table events to fold."
    • addedInput schema / properties / events / items / $ref
      Added value: +"#/definitions/CapTableEvent"
    • removedInput schema / properties / events / items / type
      Removed value: -"object"
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "description": "Optional retry key; reuse only with identical input.",
      +  "type": "string"
      +}
  12. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources