Hemrock MCP
Server Details
Hemrock financial modeling prompts: context primers, task prompts, checks, and best practices.
- Status
- Healthy
- Uptime
- 100.0% over 72 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 13 tools
The three compute tools are clearly differentiated by domain: cap table, exit waterfall, and fund economics. The access/info tools are mostly distinct, but get_access, get_account_access, and list_models have some overlapping pricing/access information, and the several get_* documentation tools rely heavily on descriptions to separate context, best practices, prompts, checks, and concepts.
Most tools use consistent snake_case verb_noun naming such as get_context, list_concepts, and get_account_usage. The compute tools use a noun_compute suffix rather than verb_noun, which is a minor but noticeable deviation in an otherwise predictable convention.
Thirteen tools is well within a reasonable range for a server combining three calculation engines with access management and financial-modeling reference material. Each tool appears to serve a distinct workflow, and the count is not bloated for the stated scope.
The surface covers the core computational domains (cap table, exit waterfall, fund economics), account access and usage, and supporting documentation such as concepts, prompts, checks, best practices, and context. A minor gap is the lack of an explicit template-listing tool, even though templates are referenced by get_prompts and get_context.
Available Tools
18 toolscap_table_computeCompute a cap tableRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| events | Yes | ||
| idempotency_key | No | Optional retry key; reuse only with identical input. |
create_saved_modelSave a new modelInspect
Saves a new model to the user's account so they can open it in the browser builder and keep working on it. A fund starts from Hemrock's defaults with your inputs merged on; a cap table needs events; a waterfall needs a model and options.exitValuation. Use it when the user wants to keep a model you built in chat, and give them the url. Free: uses no calculations. Needs a signed-in connection.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | "cap-table" (Cap Table builder), "waterfall" (Exit Waterfall builder) or "fund" (the web Venture Capital Model). | |
| name | No | The model name shown in the builder. Owner only. | |
| model | No | Waterfall only: the cap stack, the same shape as exit_waterfall_compute's model. Replaces the saved one. | |
| events | No | Cap table only: the full list of financing events, in order, the same shape cap_table_compute takes. Replaces the saved list, so read the model first and send back the whole list with your change. | |
| inputs | No | Fund only: fund inputs to change, the same fields as fund_economics_compute inputs. Merged onto the saved inputs, so send only what changes. | |
| options | No | Cap table: { wholeShares, pricePrecision }. Waterfall: { exitValuation, exitDate, wholeShares, pricePrecision }. Merged onto the saved options. | |
| features | No | Fund only: features to switch on or off, keyed capTable, fees, waterfall, recycling, lpClasses, mgmtCo or followOn, with the same shapes as fund_economics_compute features. An object switches the feature on with that config; false switches it off and keeps its config. The user switches these on deliberately, so only change one they asked about. | |
| fundName | No | Fund only: the fund name used in the model and its workbook. | |
| cashFlows | No | Fund only: show the Forecast and Statements tabs in the builder. |
exit_waterfall_computeCompute an exit waterfallRead-onlyInspect
Use whenever the user asks what each holder gets at an exit, acquisition or liquidation: liquidation preferences, participating vs non-participating preferred, participation caps, seniority, whether a series converts, options and warrants in or out of the money. Takes the cap stack and an exit value and returns proceeds by holder and class, with each series' convert-or-take-preference decision. Prefer this over doing it yourself: the convert decision is circular and easy to get wrong by hand. Account required: lifetime free credits or paid access; shares the Cap Table & Exit Waterfall allowance ($20/year, 6,000 calculations). 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.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | ||
| exitValuation | Yes | ||
| idempotency_key | No | Optional retry key; reuse only with identical input. |
fund_economics_computeCompute fund economicsRead-onlyInspect
Use whenever the user asks how a venture fund's terms play out: fund size, management fees and step-downs, carry, investment period, recycling, reserves, deployment pace, and resulting net returns to LPs. Takes fund inputs (start from the defaults and change only what the user specifies) and returns lifetime capital, fees, investable capital and gross/net multiples (result), plus the fund over time by default (detail): capital calls, fees, investments, distributions and NAV by year, DPI/RVPI/TVPI by year, the LP J-curve, IRRs solved from those dated cash flows, and financial statements (statement of operations, balance sheet and cash flow, the same lines as the Excel Statements sheet, with check lines that are zero when they tie out). Pass granularity "quarter" for quarters or "none" for totals only. Optional features apply when their block is sent: preferred return, catch-up and tiered carry (features.waterfall; return of capital covers capital called so far, so carry can be paid on early exits, and a GP clawback, on by default and off with features.waterfall.clawback false, trues the GP back to its share on a fund-end view, reported as gpClawback by period and waterfall.clawback in total; the pref compounds annually or is simple, preferredReturnCompounding "annual" or "none", on unreturned or contributed capital, preferredReturnBase; catchupMeasure "preferred" catches the GP up to its share of the pref paid and "profit" to its share of all profit; a carry tier steps up at an LP multiple, moicThreshold, or an LP IRR, irrThreshold, and with catchup true it first brings the GP to the new rate on all profit; basis "deal-by-deal" runs American terms, returning only the capital in deals exited or written off before carry, with the clawback still on the whole fund; the Excel workbook carries every one of these terms, deal by deal on a Deals sheet), NAV/AUM/step-down fee bases (features.fees; features.fees.schedule states the fee as an LPA dates it: frequency, steps of {fromYear, rate, basis "committed", "invested" or "nav"}, and an optional organizationalExpenseCap above which org expenses come off the fee), recycling by quarter (features.recycling: defaultTreatment "retained", never distributed, or "deemed", distributed and recontributed, plus a schedule of {quarter, amount, treatment} to pin, skip with amount 0, or rebook a quarter; deemed recycling is in calledCapital and distributions and reported as recycledDeemed), LP classes (features.lpClasses, each called as the fund needs cash or on its own callSchedule; each class returns its calls, distributions and net IRR by period and a datedNetIRR), portfolio construction from specific deals (features.deals: a list of {name, investments: [{quarter, amount}], exit: {quarter, multiple or proceeds}}, quarters 1-based from first close, a multiple of 0 a write-off; it replaces stages and return tiers, the fund life runs to the last exit, and it wins over capTable; add dealsMix true to mix the methods, so the deals come first and the capital they leave goes through the stages and return tiers or capTable, and result.tiers lists the deals, flagged deal, then the tiers), cap-table portfolio construction, follow-on timing, and a management company budget. result.grossIRR and result.netIRR are geometric annualizations over weighted holding periods; quote detail.irr when the user asks for an IRR from cash flows. When the user wants the Excel model, pass format "xlsx_url" (and fundName to name the file): the response adds workbook.url, a download link to the live workbook that lasts 24 hours, with every number a formula back to the inputs. Give the user that link. Account required: lifetime free credits or paid access. Fund Economics, a separate $20/year product with 6,000 calculations. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| inputs | Yes | ||
| features | No | ||
| fundName | No | ||
| granularity | No | ||
| firstCloseDate | No | ||
| idempotency_key | No | Optional retry key; reuse only with identical input. |
get_accessGet access to a Hemrock modelARead-onlyInspect
Returns public access terms for an engine: product, annual price, billing period, annual allowance, and a customer checkout URL. This is informational and does not purchase or confirm account-specific access; use get_account_access for the authenticated account.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model key to check access for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds important context: it is informational and does not purchase or confirm account-specific access. This clarifies side effects and scope beyond what annotations imply, but does not contradict them. It does not discuss return format or potential variability, but given annotations cover the safety profile, the added context is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The primary action and result are front-loaded, followed by a concise limitation and alternative. Every word adds value, and the structure is optimal for quick agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: one required enum parameter, no output schema, and annotations cover safety. The description lists the return fields, clarifies its informational nature, and provides a routing alternative. It does not describe error cases or the exact JSON shape, but that is a minor gap given the simplicity. Overall it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% for the single parameter 'model', which already provides a clear description. The tool description does not add further details about the parameter or its enum values, so it does not enhance what the schema already documents. This aligns with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and a clear resource ('public access terms for an engine'), and enumerates the exact fields returned: product, annual price, billing period, annual allowance, and customer checkout URL. It also explicitly contrasts itself with get_account_access, distinguishing it from the most similar sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool (for informational public access terms) and when not to (for authenticated account access), pointing to the alternative tool get_account_access. This provides clear routing guidance with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_accessGet account accessARead-onlyInspect
Returns whether this connection is signed in, its annual product access and remaining calculations. Does not consume allowance. Call it before a compute tool if you are unsure the user can run one. 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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=truehareliability/openWorldHint=true, and the description adds useful behavioral context: it does not consume allowance and it may return action_required with links that must be relayed. This enriches the agent's understanding beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each adding new information: what it returns, side-effect free behavior, when to call it, and how to handle results. It is front-loaded with the core purpose and ends with an actionable, memorable instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with no output schema, the description covers the essential return facets and the required follow-up behavior. It does not enumerate all possible response fields, but the action_required case is sufficiently specified for an agent to act correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parametershare, so a baseline of 4 is appropriate. The description confirms the call requires no inputs by focusing entirely on outputs and usage, which is consistent with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns'), a clear resource ('this connection'), and the concrete data it exposes: signed-in status, annual product access, and remaining calculations. It also distinguishes itself from sibling compute tools by explicitly noting it does not consume allowance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: call it before a compute tool when unsure the user can run one. It also gives post-call handling instructions for the action_required case spiders. It does not explicitly name alternative sibling tools, so it stops short of a full when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_usageGet account usageARead-onlyInspect
Returns signed-in usage history and endpoint/source breakdown. Does not consume allowance. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional UTC end date (YYYY-MM-DD). | |
| from | No | Optional UTC start date (YYYY-MM-DD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint/openWorldHint annotations by disclosing that the call does not consume allowance and by specifying exact handling for action_required results, including relaying links and offering retry. It also warns against silently skipping the calculation, which is valuable behavioral contract for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying essential information: what the tool returns, the key side-effect (no allowance consumption), and the required action on action_required. There is no filler and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does enough by naming the result categories (usage history, endpoint/source breakdown, action_required) and prescribing the retry/relay behavior. It stops short of full field-level detail, but for an agent selecting and invoking the tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the from/to parameters are already fully documented as optional UTC dates. The description adds no additional parameter meaning, so the high-coverage baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') with a clear resource ('signed-in usage history') and adds a distinguishing detail ('endpoint/source breakdown'). This differentiates it from sibling tools like get_account_access or get_checks without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: this is the tool for signed-in usage history and endpoint/source breakdown. However, it does not explicitly state when to choose this over sibling tools or mention any exclusions, so the guidance is adequate but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_best_practicesGet Hemrock best practicesARead-onlyInspect
Returns Hemrock's financial modeling best practices and design principles for a given topic. Useful as background context for AI interactions.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional topic filter. Returns all best practices if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, establishing that this is a safe read operation. The description adds that it returns domain-specific best practices and is meant for background context, which is useful. It does not go into deeper behavioral details like pagination or response structure, but given the annotation coverage, the additional context is sufficient to earn a midpoint score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's action, and each sentence adds value: the first defines the output, the second states its intended use. There is no redundancy or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter, the description and schema together provide enough context for correct invocation. The lack of an output schema is mitigated by the clear statement of what is returned. A slight deduction for not describing the response format, but this is not a significant gap for such a lightweight tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with an optional topic parameter, an enum, and a clear description. The tool description says 'for a given topic' but does not add further syntax or behavior details beyond what the schema already offers. Thus, the description neither compensates nor detracts, warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Returns' and specifies the resource as 'Hemrock's financial modeling best practices and design principles', with the scope 'for a given topic'. This clearly distinguishes it from sibling tools like get_concept or get_checks, which target different content types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Useful as background context for AI interactions' gives clear context for when to invoke. However, it doesn't explicitly state when not to use it or name alternative tools, so it stops short of full exclusionary guidance. Still, it's clear enough for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checksGet Hemrock validation checksARead-onlyInspect
Returns Layer 3 sanity-check and validation prompts โ the 'where AI gets financial modeling wrong' guidance. Use these to audit AI-generated work or catch common modeling errors.
| Name | Required | Description | Default |
|---|---|---|---|
| template_name | Yes | The template to get checks for. Use "all" for universal checks only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and openWorldHint=false, so the safety profile is known. The description adds context about the content's purpose but does not disclose additional behavioral traits such as output format or pagination, meaning it only moderately adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary function, followed by a concise use case. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool with one fully described parameter and clear usage guidance, the description is complete. No output schema exists, but the description explains what is returned ('prompts') and their purpose, so the agent has enough context to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with template_name fully documented including the enum and the special 'all' case. The description adds no extra parameter-level information, so it meets the baseline but does not exceed what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Returns' and resource 'Layer 3 sanity-check and validation prompts', immediately stating the tool's function. It also clarifies the intended use ('audit AI-generated work or catch common modeling errors'), which differentiates it from siblings like get_prompts or get_best_practices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool ('Use these to audit AI-generated work or catch common modeling errors'). It does not list alternative tools or exclusions, but the use case is clear enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conceptGet a Hemrock modeling conceptARead-onlyInspect
Returns the full text of a single Hemrock concept doc by slug. Use this to learn how a financial-modeling calculation actually works before building or auditing it. Get valid slugs from list_concepts.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The concept slug, from list_concepts (e.g. "waterfall", "anti-dilution"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value beyond annotations by specifying that the tool returns the full text of a single doc, which implies potentially long output. It also clarifies that the slug must be from list_concepts. No contradictory statements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and includes usage guidance without waste. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, the description is complete: it states what is returned (full text), how to get the input (slug from list_concepts), and when to use it. The annotations cover safety, and the schema covers the parameter. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the slug parameter already described as 'from list_concepts (e.g. "waterfall", "anti-dilution")'. The description repeats 'Get valid slugs from list_concepts' but adds no new semantic information beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the full text of a single Hemrock modeling concept doc by slug, identifying the specific verb, resource, and scope. It distinguishes itself from siblings like list_concepts by focusing on a single concept and from compute tools by being a read-only retrieval operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use this to learn how a financial-modeling calculation actually works before building or auditing it.' It also directs users to get valid slugs from list_concepts. However, it does not explicitly mention when not to use this tool or name alternatives other than list_concepts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contextGet Hemrock modeling contextARead-onlyInspect
Returns the universal context-setting primer for Hemrock models, plus an optional template-specific addendum. Always run this first before any other prompts.
| Name | Required | Description | Default |
|---|---|---|---|
| template_name | No | Optional. If provided, appends a template-specific primer to the universal context. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the agent knows this is a safe read. The description adds the behavioral nuance that this is a primer to run first, but does not disclose details like output formatting or side effects. Since the annotation covers the safety profile, the description adds minimal but non-essential context beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core function and immediately followed by the key usage instruction. Every sentence earns its place without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter, read-only tool with no output schema, the description covers the main behavior, the optional parameter, and the recommended usage order. It does not elaborate on the content of the primer, but given the simplicity and the rich sibling set, the guidance is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with template_name fully described in the input schema, so the baseline is 3. The description's phrase 'optional template-specific addendum' aligns with the schema's 'template-specific primer' but adds little new meaning; the schema already provides complete parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and clearly identifies the resource ('universal context-setting primer for Hemrock models'), distinguishing it from sibling compute and getter tools. It also conveys the scope (plus optional addendum) and positions it as a precede-all tool, eliminating ambiguity about its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Always run this first before any other prompts' explicitly states when to use the tool, establishing it as a mandatory precursor. It does not explicitly mention alternatives or exclusions, but the directive is clear enough for an agent to know this is the initial step. The optional template_name guidance is implied by 'optional template-specific addendum'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_promptsGet Hemrock task promptsARead-onlyInspect
Returns task-specific Layer 2 prompts for a given template and task type. These are ready-to-use prompts for common modeling tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_type | No | Optional task type filter. | |
| template_name | Yes | The Hemrock template being used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=false, so the read-only nature is covered. The description adds that prompts are 'task-specific' and 'ready-to-use,' which is mildly informative, but it does not disclose any additional behavioral traits such as error conditions, edge cases, or output format. It is consistent with the annotations, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core action and resource, and contains no filler or redundant phrases. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two parameters and no output schema, the description provides sufficient context: it states what is returned and for what inputs. It does not need to elaborate on return values because the purpose is clear, though a bit more detail about 'Layer 2' would enrich the context slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no new meaning beyond restating that the tool works with a 'template and task type,' which directly maps to the two parameters. The baseline of 3 is appropriate because the schema already carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and identifies the resource ('task-specific Layer 2 prompts') alongside the input scope ('for a given template and task type'). This clearly distinguishes it from sibling tools like cap_table_compute or get_checks, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('ready-to-use prompts for common modeling tasks') and mentions the required context ('given a template and task type'), but it does not explicitly state when not to use it or name any alternative tools. It lacks the exclusionary guidance that would make it a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_saved_modelOpen a saved modelRead-onlyInspect
Returns a saved model's contents in the shape the compute tools take: a cap table's events and options, a waterfall's model and saved exit, or a fund's inputs, the features switched on, and featuresSavedButOff (configured but switched off). Free: uses no calculations. Needs a signed-in connection.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The model id from list_saved_models. | |
| kind | Yes | "cap-table" (Cap Table builder), "waterfall" (Exit Waterfall builder) or "fund" (the web Venture Capital Model). |
list_conceptsList Hemrock modeling conceptsARead-onlyInspect
Lists Hemrock financial-modeling concept docs โ the methodology behind the math (exit waterfalls, anti-dilution, convertibles, cohorts, circular references, unit economics, and more). Returns a compact index of slugs, titles, and descriptions. Optionally filter by template_name or tag. Call get_concept to read the full text of any entry.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Optional. Filter to concepts whose tags contain this string (e.g. "cap tables"). | |
| template_name | No | Optional. Filter to concepts relevant to a specific Hemrock template. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is known. The description adds useful context about the return format (compact index of slugs, titles, and descriptions) and the optional filters, going beyond what annotations provide without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two well-organized sentences that cover the tool's purpose, return format, filtering options, and a pointer to the sibling tool, with no wasted words. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple read-only nature, the schema with full parameter descriptions, and the read-only annotation, the description adequately covers what the tool does, what it returns, and how to use it further. It doesn't mention ordering or pagination, but these are not critical for a compact index tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for both parameters and an enum for template_name, so the schema carries the parameter documentation. The description only mentions optional filtering without adding extra semantic detail, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Hemrock financial-modeling concept docs, provides specific topic examples, and distinguishes it from the sibling get_concept tool by noting it returns a compact index. The verb 'lists' precisely describes the action and the resource is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call get_concept to read the full text of any entry, providing a direct alternative and guiding when to use this tool vs its sibling. It also implies usage for obtaining an overview or filtered index, which is clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsList Hemrock model enginesARead-onlyInspect
Lists the hosted Hemrock calculation engines (cap table, exit waterfall, fund economics), what each computes, and its price and checkout link. Free and needs no sign-in, so call it when the user asks what Hemrock can calculate or what it costs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds that the tool is free and requires no sign-in, which is beyond the annotation. It also discloses that output includes pricing and checkout links, which informs the agent about the nature of responses. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence front-loads the core action and content, and the second provides the usage trigger. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with no output schema, the description tells the agent what will be returned (engines, what they compute, price, checkout link) and when to call. Given the tool's simplicity, nothing necessary is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document. Schema coverage is 100% (empty object), and the description appropriately focuses on behavior rather than parameters. Baseline 4 applies because no parameter guidance is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Lists') and resource ('hosted Hemrock calculation engines'), and enumerates the engines and the information included (what each computes, price, checkout link). This distinguishes it from compute siblings like cap_table_compute because it is the overview/list tool. The phrase 'call it when the user asks what Hemrock can calculate' reinforces its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to call: 'when the user asks what Hemrock can calculate or what it costs.' It also notes 'Free and needs no sign-in,' implying no prerequisites. It does not explicitly contrast with sibling compute tools, but the description's focus on listing vs computing implies the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_saved_modelsList saved modelsRead-onlyInspect
Lists the cap tables, exit waterfalls and fund models saved to the user's Hemrock account, plus fund models others have shared with them, newest first. Each has its kind, id, name, the user's role (owner, editor, viewer) and a url that opens it in the browser builder. Call this when the user mentions "my cap table", "my fund model" or a model by name, before building one from scratch. Free: uses no calculations. Needs a signed-in connection.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | "cap-table" (Cap Table builder), "waterfall" (Exit Waterfall builder) or "fund" (the web Venture Capital Model). |
run_saved_modelRun a saved modelRead-onlyInspect
Calculates a saved model as it stands, with the same engine as the browser builder: ownership after every event for a cap table, proceeds by holder for a waterfall (at the saved exit, or up to 10 exitValuations you pass), or a fund's lifetime totals plus the fund by year (granularity "quarter" or "none" to change that). For a fund, workbook true adds a 24-hour link to the live Excel workbook; that needs the Venture Capital Model, the same as the browser's Excel export. Free: uses no calculations. Needs a signed-in connection.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The model id from list_saved_models. | |
| kind | Yes | "cap-table" (Cap Table builder), "waterfall" (Exit Waterfall builder) or "fund" (the web Venture Capital Model). | |
| workbook | No | Fund only: add a link to the live Excel workbook. | |
| granularity | No | Fund only. | |
| exitValuations | No | Waterfall only: sale prices to run, up to 10. |
update_saved_modelChange a saved modelIdempotentInspect
Saves a change to a model in the user's account; the browser builder shows it the next time it opens. Send only the fields that change. Owners can change anything; invited editors of a fund model can change its inputs while the owner has access; viewers can't change anything. Tell the user what you changed, run the model to show the effect, and give them the url. Free: uses no calculations. Needs a signed-in connection.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The model id from list_saved_models. | |
| kind | Yes | "cap-table" (Cap Table builder), "waterfall" (Exit Waterfall builder) or "fund" (the web Venture Capital Model). | |
| name | No | The model name shown in the builder. Owner only. | |
| model | No | Waterfall only: the cap stack, the same shape as exit_waterfall_compute's model. Replaces the saved one. | |
| events | No | Cap table only: the full list of financing events, in order, the same shape cap_table_compute takes. Replaces the saved list, so read the model first and send back the whole list with your change. | |
| inputs | No | Fund only: fund inputs to change, the same fields as fund_economics_compute inputs. Merged onto the saved inputs, so send only what changes. | |
| options | No | Cap table: { wholeShares, pricePrecision }. Waterfall: { exitValuation, exitDate, wholeShares, pricePrecision }. Merged onto the saved options. | |
| features | No | Fund only: features to switch on or off, keyed capTable, fees, waterfall, recycling, lpClasses, mgmtCo or followOn, with the same shapes as fund_economics_compute features. An object switches the feature on with that config; false switches it off and keeps its config. The user switches these on deliberately, so only change one they asked about. | |
| fundName | No | Fund only: the fund name used in the model and its workbook. | |
| cashFlows | No | Fund only: show the Forecast and Statements tabs in the builder. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- Changed
cap_table_compute3 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / dealsAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / dealsMixAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / navMarkupYearsAdded value: +{ + "maximum": 100, + "minimum": 0, + "type": "number" +}
- Added
create_saved_model - Changed
exit_waterfall_compute3 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / dealsAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / dealsMixAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / navMarkupYearsAdded value: +{ + "maximum": 100, + "minimum": 0, + "type": "number" +}
- Changed
fund_economics_compute6 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / dealsAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / dealsMixAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / navMarkupYearsAdded value: +{ + "maximum": 100, + "minimum": 0, + "type": "number" +} - added
Input schema / properties / features / properties / dealsAdded 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" +} - added
Input schema / properties / features / properties / dealsMixAdded 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" +} - added
Input schema / properties / inputs / properties / navMarkupYearsAdded value: +{ + "maximum": 100, + "minimum": 0, + "type": "number" +}
- Added
get_saved_model - Added
list_saved_models - Added
run_saved_model - Added
update_saved_model
3 tool updates
- Changed
cap_table_compute1 field changed- added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / gpCommitBearsCarryAdded value: +{ + "type": "boolean" +}
- Changed
exit_waterfall_compute1 field changed- added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / gpCommitBearsCarryAdded value: +{ + "type": "boolean" +}
- Changed
fund_economics_compute2 fields changed- added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / gpCommitBearsCarryAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / inputs / properties / gpCommitBearsCarryAdded value: +{ + "type": "boolean" +}
3 tool updates
- Changed
cap_table_compute13 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / fees / properties / scheduleAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / lpClasses / items / properties / overrides / properties / carryTiers / items / properties / irrThresholdAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / recyclingAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / basisAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / carryTiers / items / properties / irrThresholdAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / catchupMeasureAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / clawbackAdded value: +{ + "type": "boolean" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / preferredReturnBaseAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / preferredReturnCompoundingAdded value: +{ + "description": "IRR pref: compound annually (the default) or simple interest.", + "enum": [ + "annual", + "none" + ], + "type": "string" +} - changed
Input schema / definitions / FundDetail / properties / lpClasses / descriptionPrevious 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." - changed
Input schema / definitions / FundDetail / properties / periods / properties / carriedInterest / descriptionPrevious value: -"GP carry paid each period, catchups included."New value: +"GP carry paid each period, catchups included, net of the clawback." - added
Input schema / definitions / FundDetail / properties / periods / properties / gpClawbackAdded 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" +} - added
Input schema / definitions / FundDetail / properties / periods / properties / recycledDeemedAdded 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." +}
- Changed
exit_waterfall_compute13 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / fees / properties / scheduleAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / lpClasses / items / properties / overrides / properties / carryTiers / items / properties / irrThresholdAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / recyclingAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / basisAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / carryTiers / items / properties / irrThresholdAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / catchupMeasureAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / clawbackAdded value: +{ + "type": "boolean" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / preferredReturnBaseAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / preferredReturnCompoundingAdded value: +{ + "description": "IRR pref: compound annually (the default) or simple interest.", + "enum": [ + "annual", + "none" + ], + "type": "string" +} - changed
Input schema / definitions / FundDetail / properties / lpClasses / descriptionPrevious 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." - changed
Input schema / definitions / FundDetail / properties / periods / properties / carriedInterest / descriptionPrevious value: -"GP carry paid each period, catchups included."New value: +"GP carry paid each period, catchups included, net of the clawback." - added
Input schema / definitions / FundDetail / properties / periods / properties / gpClawbackAdded 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" +} - added
Input schema / definitions / FundDetail / properties / periods / properties / recycledDeemedAdded 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." +}
- Changed
fund_economics_compute22 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / fees / properties / scheduleAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / lpClasses / items / properties / overrides / properties / carryTiers / items / properties / irrThresholdAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / recyclingAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / basisAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / carryTiers / items / properties / irrThresholdAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / catchupMeasureAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / clawbackAdded value: +{ + "type": "boolean" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / preferredReturnBaseAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / features / properties / waterfall / properties / preferredReturnCompoundingAdded value: +{ + "description": "IRR pref: compound annually (the default) or simple interest.", + "enum": [ + "annual", + "none" + ], + "type": "string" +} - changed
Input schema / definitions / FundDetail / properties / lpClasses / descriptionPrevious 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." - changed
Input schema / definitions / FundDetail / properties / periods / properties / carriedInterest / descriptionPrevious value: -"GP carry paid each period, catchups included."New value: +"GP carry paid each period, catchups included, net of the clawback." - added
Input schema / definitions / FundDetail / properties / periods / properties / gpClawbackAdded 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" +} - added
Input schema / definitions / FundDetail / properties / periods / properties / recycledDeemedAdded 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." +} - added
Input schema / properties / features / properties / fees / properties / scheduleAdded 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" +} - added
Input schema / properties / features / properties / lpClasses / items / properties / overrides / properties / carryTiers / items / properties / irrThresholdAdded 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" +} - added
Input schema / properties / features / properties / recyclingAdded 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" +} - added
Input schema / properties / features / properties / waterfall / properties / basisAdded 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" +} - added
Input schema / properties / features / properties / waterfall / properties / carryTiers / items / properties / irrThresholdAdded 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" +} - added
Input schema / properties / features / properties / waterfall / properties / catchupMeasureAdded 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" +} - added
Input schema / properties / features / properties / waterfall / properties / clawbackAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / features / properties / waterfall / properties / preferredReturnBaseAdded 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" +} - added
Input schema / properties / features / properties / waterfall / properties / preferredReturnCompoundingAdded value: +{ + "description": "IRR pref: compound annually (the default) or simple interest.", + "enum": [ + "annual", + "none" + ], + "type": "string" +}
3 tool updates
- Changed
cap_table_compute2 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / lpClasses / items / properties / callScheduleAdded 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" +} - added
Input schema / definitions / FundDetail / properties / lpClasses / descriptionAdded 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."
- Changed
exit_waterfall_compute2 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / lpClasses / items / properties / callScheduleAdded 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" +} - added
Input schema / definitions / FundDetail / properties / lpClasses / descriptionAdded 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."
- Changed
fund_economics_compute3 fields changed- added
Input schema / definitions / FundComputeRequest / properties / features / properties / lpClasses / items / properties / callScheduleAdded 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" +} - added
Input schema / definitions / FundDetail / properties / lpClasses / descriptionAdded 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." - added
Input schema / properties / features / properties / lpClasses / items / properties / callScheduleAdded 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" +}
3 tool updates
- Changed
cap_table_compute7 fields changed- added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / maxFundLifeYearsAdded value: +{ + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / operationalExpenseLines / items / properties / quarterlyAdded value: +{ + "items": [ + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + } + ], + "maxItems": 4, + "minItems": 4, + "type": "array" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / partnershipExpenseLines / items / properties / quarterlyAdded value: +{ + "items": [ + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + } + ], + "maxItems": 4, + "minItems": 4, + "type": "array" +} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / balanceSheet / propertiesAdded 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" + } +} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / cashFlow / propertiesAdded 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" + } +} - removed
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / incomeStatementRemoved value: -{ - "type": "object" -} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / operationsAdded 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" +}
- Changed
exit_waterfall_compute7 fields changed- added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / maxFundLifeYearsAdded value: +{ + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / operationalExpenseLines / items / properties / quarterlyAdded value: +{ + "items": [ + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + } + ], + "maxItems": 4, + "minItems": 4, + "type": "array" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / partnershipExpenseLines / items / properties / quarterlyAdded value: +{ + "items": [ + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + } + ], + "maxItems": 4, + "minItems": 4, + "type": "array" +} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / balanceSheet / propertiesAdded 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" + } +} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / cashFlow / propertiesAdded 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" + } +} - removed
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / incomeStatementRemoved value: -{ - "type": "object" -} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / operationsAdded 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" +}
- Changed
fund_economics_compute10 fields changed- added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / maxFundLifeYearsAdded value: +{ + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / operationalExpenseLines / items / properties / quarterlyAdded value: +{ + "items": [ + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + } + ], + "maxItems": 4, + "minItems": 4, + "type": "array" +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / properties / partnershipExpenseLines / items / properties / quarterlyAdded value: +{ + "items": [ + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + } + ], + "maxItems": 4, + "minItems": 4, + "type": "array" +} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / balanceSheet / propertiesAdded 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" + } +} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / cashFlow / propertiesAdded 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" + } +} - removed
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / incomeStatementRemoved value: -{ - "type": "object" -} - added
Input schema / definitions / FundDetail / properties / statements / properties / periods / items / properties / operationsAdded 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" +} - added
Input schema / properties / inputs / properties / maxFundLifeYearsAdded value: +{ + "exclusiveMinimum": 0, + "type": "number" +} - added
Input schema / properties / inputs / properties / operationalExpenseLines / items / properties / quarterlyAdded value: +{ + "items": [ + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + } + ], + "maxItems": 4, + "minItems": 4, + "type": "array" +} - added
Input schema / properties / inputs / properties / partnershipExpenseLines / items / properties / quarterlyAdded value: +{ + "items": [ + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + }, + { + "minimum": 0, + "type": "number" + } + ], + "maxItems": 4, + "minItems": 4, + "type": "array" +}
3 tool updates
- Changed
cap_table_compute3 fields changed- added
Input schema / definitions / FundComputeRequest / properties / formatAdded value: +{ + "enum": [ + "json", + "xlsx", + "xlsx_url" + ], + "type": "string" +} - added
Input schema / definitions / FundComputeRequest / properties / fundNameAdded value: +{ + "maxLength": 200, + "type": "string" +} - added
Input schema / definitions / FundResultResponse / properties / data / properties / workbookAdded 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" +}
- Changed
exit_waterfall_compute3 fields changed- added
Input schema / definitions / FundComputeRequest / properties / formatAdded value: +{ + "enum": [ + "json", + "xlsx", + "xlsx_url" + ], + "type": "string" +} - added
Input schema / definitions / FundComputeRequest / properties / fundNameAdded value: +{ + "maxLength": 200, + "type": "string" +} - added
Input schema / definitions / FundResultResponse / properties / data / properties / workbookAdded 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" +}
- Changed
fund_economics_compute5 fields changed- added
Input schema / definitions / FundComputeRequest / properties / formatAdded value: +{ + "enum": [ + "json", + "xlsx", + "xlsx_url" + ], + "type": "string" +} - added
Input schema / definitions / FundComputeRequest / properties / fundNameAdded value: +{ + "maxLength": 200, + "type": "string" +} - added
Input schema / definitions / FundResultResponse / properties / data / properties / workbookAdded 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" +} - added
Input schema / properties / formatAdded value: +{ + "enum": [ + "json", + "xlsx", + "xlsx_url" + ], + "type": "string" +} - added
Input schema / properties / fundNameAdded value: +{ + "maxLength": 200, + "type": "string" +}
3 tool updates
- Changed
cap_table_compute6 fields changed- added
Input schema / definitions / FundComputeRequest / properties / featuresAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / firstCloseDateAdded value: +{ + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / definitions / FundComputeRequest / properties / granularityAdded value: +{ + "enum": [ + "year", + "quarter", + "none" + ], + "type": "string" +} - added
Input schema / definitions / FundDetailAdded 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" +} - added
Input schema / definitions / FundResultResponseAdded 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" +} - added
Input schema / definitions / FundSeriesAdded 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" +}
- Changed
exit_waterfall_compute6 fields changed- added
Input schema / definitions / FundComputeRequest / properties / featuresAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / firstCloseDateAdded value: +{ + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / definitions / FundComputeRequest / properties / granularityAdded value: +{ + "enum": [ + "year", + "quarter", + "none" + ], + "type": "string" +} - added
Input schema / definitions / FundDetailAdded 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" +} - added
Input schema / definitions / FundResultResponseAdded 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" +} - added
Input schema / definitions / FundSeriesAdded 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" +}
- Changed
fund_economics_compute9 fields changed- added
Input schema / definitions / FundComputeRequest / properties / featuresAdded 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" +} - added
Input schema / definitions / FundComputeRequest / properties / firstCloseDateAdded value: +{ + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / definitions / FundComputeRequest / properties / granularityAdded value: +{ + "enum": [ + "year", + "quarter", + "none" + ], + "type": "string" +} - added
Input schema / definitions / FundDetailAdded 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" +} - added
Input schema / definitions / FundResultResponseAdded 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" +} - added
Input schema / definitions / FundSeriesAdded 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" +} - added
Input schema / properties / featuresAdded 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" +} - added
Input schema / properties / firstCloseDateAdded value: +{ + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / properties / granularityAdded value: +{ + "enum": [ + "year", + "quarter", + "none" + ], + "type": "string" +}
3 tool updates
- Changed
cap_table_compute1 field changed- added
Input schema / definitions / ProductAccess / properties / remaining / descriptionAdded value: +"Calculations this account can run now: the paid balance while a paid period is active, otherwise the lifetime free balance."
- Changed
exit_waterfall_compute1 field changed- added
Input schema / definitions / ProductAccess / properties / remaining / descriptionAdded value: +"Calculations this account can run now: the paid balance while a paid period is active, otherwise the lifetime free balance."
- Changed
fund_economics_compute1 field changed- added
Input schema / definitions / ProductAccess / properties / remaining / descriptionAdded value: +"Calculations this account can run now: the paid balance while a paid period is active, otherwise the lifetime free balance."
3 tool updates
- Changed
cap_table_compute7 fields changed- added
Input schema / definitions / ProductAccess / properties / active / descriptionAdded value: +"Active paid term; use state/freeRemaining for trial access." - added
Input schema / definitions / ProductAccess / properties / freeRemainingAdded value: +{ + "minimum": 0, + "type": "integer" +} - added
Input schema / definitions / ProductAccess / properties / nextActionAdded value: +{ + "type": "string" +} - added
Input schema / definitions / ProductAccess / properties / paidExpirationAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Input schema / definitions / ProductAccess / properties / paidRemainingAdded value: +{ + "minimum": 0, + "type": "integer" +} - added
Input schema / definitions / ProductAccess / properties / sourceAdded value: +{ + "enum": [ + "free", + "paid" + ], + "type": "string" +} - added
Input schema / definitions / ProductAccess / properties / stateAdded value: +{ + "enum": [ + "free_available", + "free_exhausted", + "paid_active", + "paid_expired", + "paid_quota_exhausted" + ], + "type": "string" +}
- Changed
exit_waterfall_compute7 fields changed- added
Input schema / definitions / ProductAccess / properties / active / descriptionAdded value: +"Active paid term; use state/freeRemaining for trial access." - added
Input schema / definitions / ProductAccess / properties / freeRemainingAdded value: +{ + "minimum": 0, + "type": "integer" +} - added
Input schema / definitions / ProductAccess / properties / nextActionAdded value: +{ + "type": "string" +} - added
Input schema / definitions / ProductAccess / properties / paidExpirationAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Input schema / definitions / ProductAccess / properties / paidRemainingAdded value: +{ + "minimum": 0, + "type": "integer" +} - added
Input schema / definitions / ProductAccess / properties / sourceAdded value: +{ + "enum": [ + "free", + "paid" + ], + "type": "string" +} - added
Input schema / definitions / ProductAccess / properties / stateAdded value: +{ + "enum": [ + "free_available", + "free_exhausted", + "paid_active", + "paid_expired", + "paid_quota_exhausted" + ], + "type": "string" +}
- Changed
fund_economics_compute7 fields changed- added
Input schema / definitions / ProductAccess / properties / active / descriptionAdded value: +"Active paid term; use state/freeRemaining for trial access." - added
Input schema / definitions / ProductAccess / properties / freeRemainingAdded value: +{ + "minimum": 0, + "type": "integer" +} - added
Input schema / definitions / ProductAccess / properties / nextActionAdded value: +{ + "type": "string" +} - added
Input schema / definitions / ProductAccess / properties / paidExpirationAdded value: +{ + "type": [ + "string", + "null" + ] +} - added
Input schema / definitions / ProductAccess / properties / paidRemainingAdded value: +{ + "minimum": 0, + "type": "integer" +} - added
Input schema / definitions / ProductAccess / properties / sourceAdded value: +{ + "enum": [ + "free", + "paid" + ], + "type": "string" +} - added
Input schema / definitions / ProductAccess / properties / stateAdded value: +{ + "enum": [ + "free_available", + "free_exhausted", + "paid_active", + "paid_expired", + "paid_quota_exhausted" + ], + "type": "string" +}
3 tool updates
- Changed
cap_table_compute50 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / definitions / AccessResponseAdded 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" +} - removed
Input schema / definitions / ApiKeyRemoved 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" -} - removed
Input schema / definitions / CapTableEventRemoved 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" - } - ] -} - added
Input schema / definitions / CapTableSnapshotAdded 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" +} - added
Input schema / definitions / ComputeRequest / additionalPropertiesAdded value: +false - removed
Input schema / definitions / ComputeRequest / properties / events / descriptionRemoved value: -"Ordered list of cap-table events to fold." - removed
Input schema / definitions / ComputeRequest / properties / events / items / $refRemoved value: -"#/definitions/CapTableEvent" - added
Input schema / definitions / ComputeRequest / properties / events / items / descriptionAdded value: +"One cap-table event, discriminated by `type`. Pass events in chronological order." - added
Input schema / definitions / ComputeRequest / properties / events / items / discriminatorAdded 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" +} - added
Input schema / definitions / ComputeRequest / properties / events / items / oneOfAdded 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" + } +] - added
Input schema / definitions / ComputeRequest / properties / events / maxItemsAdded value: +200 - added
Input schema / definitions / ComputeResponse / properties / data / properties / final / $refAdded value: +"#/definitions/CapTableSnapshot" - removed
Input schema / definitions / ComputeResponse / properties / data / properties / final / descriptionRemoved value: -"The final cap-table state." - removed
Input schema / definitions / ComputeResponse / properties / data / properties / final / typeRemoved value: -"object" - added
Input schema / definitions / ComputeResponse / properties / data / properties / snapshots / items / $refAdded value: +"#/definitions/CapTableSnapshot" - removed
Input schema / definitions / ComputeResponse / properties / data / properties / snapshots / items / typeRemoved value: -"object" - removed
Input schema / definitions / CreateKeyRequestRemoved value: -{ - "properties": { - "name": { - "description": "Label for the key, written into the audit trail.", - "type": "string" - } - }, - "type": "object" -} - added
Input schema / definitions / DailyUsageAdded 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" +} - changed
Input schema / definitions / Error / properties / error / properties / code / enumPrevious 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" +] - added
Input schema / definitions / FundComputeRequest / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / definitions / FundComputeRequest / additionalPropertiesAdded value: +false - changed
Input schema / definitions / FundComputeRequest / properties / inputs / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / definitions / FundComputeRequest / properties / inputs / descriptionRemoved value: -"Fund Economics inputs: committed capital, fees, portfolio construction, carry tiers." - added
Input schema / definitions / FundComputeRequest / properties / inputs / propertiesAdded 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" + } +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / requiredAdded value: +[ + "committedCapital", + "gpCommitPct", + "gpCommitCountedTowardInvested", + "organizationalExpenses", + "operationalExpensesAnnual", + "mgmtFeePct", + "recycledCapitalPct", + "carryPct", + "newInvestmentPeriodYears", + "mgmtFeesPeriodYears", + "portfolio", + "returnTiers" +] - added
Input schema / definitions / FundResultAdded 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" +} - added
Input schema / definitions / LineTotalsAdded value: +{ + "properties": { + "gp": { + "type": "number" + }, + "lp": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "total", + "lp", + "gp" + ], + "type": "object" +} - added
Input schema / definitions / MonthlyUsageAdded 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" +} - added
Input schema / definitions / ProductAccessAdded 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" +} - added
Input schema / definitions / ResultResponse / properties / data / properties / result / oneOfAdded value: +[ + { + "$ref": "#/definitions/WaterfallResult" + }, + { + "$ref": "#/definitions/FundResult" + } +] - removed
Input schema / definitions / ResultResponse / properties / data / properties / result / typeRemoved value: -"object" - added
Input schema / definitions / UsagePeriodAdded 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" +} - added
Input schema / definitions / WaterfallComputeRequest / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / definitions / WaterfallComputeRequest / additionalPropertiesAdded value: +false - removed
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / descriptionRemoved value: -"Total exit proceeds to distribute." - added
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / maximumAdded value: +1000000000000000 - added
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / minimumAdded value: +0 - changed
Input schema / definitions / WaterfallComputeRequest / properties / model / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / definitions / WaterfallComputeRequest / properties / model / descriptionRemoved value: -"Exit-waterfall model: preferred series, common holders, options, warrants, convertibles." - added
Input schema / definitions / WaterfallComputeRequest / properties / model / propertiesAdded 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" + } +} - added
Input schema / definitions / WaterfallComputeRequest / properties / model / requiredAdded value: +[ + "common", + "preferred" +] - changed
Input schema / definitions / WaterfallComputeRequest / requiredPrevious value: -[ - "model", - "exitValuation" -]New value: +[ + "exitValuation", + "model" +] - added
Input schema / definitions / WaterfallResultAdded 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" +} - removed
Input schema / properties / events / descriptionRemoved value: -"Ordered list of cap-table events to fold." - removed
Input schema / properties / events / items / $refRemoved value: -"#/definitions/CapTableEvent" - added
Input schema / properties / events / items / descriptionAdded value: +"One cap-table event, discriminated by `type`. Pass events in chronological order." - added
Input schema / properties / events / items / discriminatorAdded 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" +} - added
Input schema / properties / events / items / oneOfAdded 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" + } +] - added
Input schema / properties / events / maxItemsAdded value: +200
- Changed
exit_waterfall_compute53 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / definitions / AccessResponseAdded 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" +} - removed
Input schema / definitions / ApiKeyRemoved 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" -} - removed
Input schema / definitions / CapTableEventRemoved 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" - } - ] -} - added
Input schema / definitions / CapTableSnapshotAdded 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" +} - added
Input schema / definitions / ComputeRequest / additionalPropertiesAdded value: +false - removed
Input schema / definitions / ComputeRequest / properties / events / descriptionRemoved value: -"Ordered list of cap-table events to fold." - removed
Input schema / definitions / ComputeRequest / properties / events / items / $refRemoved value: -"#/definitions/CapTableEvent" - added
Input schema / definitions / ComputeRequest / properties / events / items / descriptionAdded value: +"One cap-table event, discriminated by `type`. Pass events in chronological order." - added
Input schema / definitions / ComputeRequest / properties / events / items / discriminatorAdded 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" +} - added
Input schema / definitions / ComputeRequest / properties / events / items / oneOfAdded 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" + } +] - added
Input schema / definitions / ComputeRequest / properties / events / maxItemsAdded value: +200 - added
Input schema / definitions / ComputeResponse / properties / data / properties / final / $refAdded value: +"#/definitions/CapTableSnapshot" - removed
Input schema / definitions / ComputeResponse / properties / data / properties / final / descriptionRemoved value: -"The final cap-table state." - removed
Input schema / definitions / ComputeResponse / properties / data / properties / final / typeRemoved value: -"object" - added
Input schema / definitions / ComputeResponse / properties / data / properties / snapshots / items / $refAdded value: +"#/definitions/CapTableSnapshot" - removed
Input schema / definitions / ComputeResponse / properties / data / properties / snapshots / items / typeRemoved value: -"object" - removed
Input schema / definitions / CreateKeyRequestRemoved value: -{ - "properties": { - "name": { - "description": "Label for the key, written into the audit trail.", - "type": "string" - } - }, - "type": "object" -} - added
Input schema / definitions / DailyUsageAdded 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" +} - changed
Input schema / definitions / Error / properties / error / properties / code / enumPrevious 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" +] - added
Input schema / definitions / FundComputeRequest / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / definitions / FundComputeRequest / additionalPropertiesAdded value: +false - changed
Input schema / definitions / FundComputeRequest / properties / inputs / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / definitions / FundComputeRequest / properties / inputs / descriptionRemoved value: -"Fund Economics inputs: committed capital, fees, portfolio construction, carry tiers." - added
Input schema / definitions / FundComputeRequest / properties / inputs / propertiesAdded 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" + } +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / requiredAdded value: +[ + "committedCapital", + "gpCommitPct", + "gpCommitCountedTowardInvested", + "organizationalExpenses", + "operationalExpensesAnnual", + "mgmtFeePct", + "recycledCapitalPct", + "carryPct", + "newInvestmentPeriodYears", + "mgmtFeesPeriodYears", + "portfolio", + "returnTiers" +] - added
Input schema / definitions / FundResultAdded 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" +} - added
Input schema / definitions / LineTotalsAdded value: +{ + "properties": { + "gp": { + "type": "number" + }, + "lp": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "total", + "lp", + "gp" + ], + "type": "object" +} - added
Input schema / definitions / MonthlyUsageAdded 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" +} - added
Input schema / definitions / ProductAccessAdded 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" +} - added
Input schema / definitions / ResultResponse / properties / data / properties / result / oneOfAdded value: +[ + { + "$ref": "#/definitions/WaterfallResult" + }, + { + "$ref": "#/definitions/FundResult" + } +] - removed
Input schema / definitions / ResultResponse / properties / data / properties / result / typeRemoved value: -"object" - added
Input schema / definitions / UsagePeriodAdded 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" +} - added
Input schema / definitions / WaterfallComputeRequest / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / definitions / WaterfallComputeRequest / additionalPropertiesAdded value: +false - removed
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / descriptionRemoved value: -"Total exit proceeds to distribute." - added
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / maximumAdded value: +1000000000000000 - added
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / minimumAdded value: +0 - changed
Input schema / definitions / WaterfallComputeRequest / properties / model / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / definitions / WaterfallComputeRequest / properties / model / descriptionRemoved value: -"Exit-waterfall model: preferred series, common holders, options, warrants, convertibles." - added
Input schema / definitions / WaterfallComputeRequest / properties / model / propertiesAdded 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" + } +} - added
Input schema / definitions / WaterfallComputeRequest / properties / model / requiredAdded value: +[ + "common", + "preferred" +] - changed
Input schema / definitions / WaterfallComputeRequest / requiredPrevious value: -[ - "model", - "exitValuation" -]New value: +[ + "exitValuation", + "model" +] - added
Input schema / definitions / WaterfallResultAdded 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" +} - removed
Input schema / properties / exitValuation / descriptionRemoved value: -"Total exit proceeds to distribute." - added
Input schema / properties / exitValuation / maximumAdded value: +1000000000000000 - added
Input schema / properties / exitValuation / minimumAdded value: +0 - changed
Input schema / properties / model / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / model / descriptionRemoved value: -"Exit-waterfall model: preferred series, common holders, options, warrants, convertibles." - added
Input schema / properties / model / propertiesAdded 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" + } +} - added
Input schema / properties / model / requiredAdded value: +[ + "common", + "preferred" +] - changed
Input schema / requiredPrevious value: -[ - "model", - "exitValuation" -]New value: +[ + "exitValuation", + "model" +]
- Changed
fund_economics_compute49 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / definitions / AccessResponseAdded 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" +} - removed
Input schema / definitions / ApiKeyRemoved 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" -} - removed
Input schema / definitions / CapTableEventRemoved 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" - } - ] -} - added
Input schema / definitions / CapTableSnapshotAdded 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" +} - added
Input schema / definitions / ComputeRequest / additionalPropertiesAdded value: +false - removed
Input schema / definitions / ComputeRequest / properties / events / descriptionRemoved value: -"Ordered list of cap-table events to fold." - removed
Input schema / definitions / ComputeRequest / properties / events / items / $refRemoved value: -"#/definitions/CapTableEvent" - added
Input schema / definitions / ComputeRequest / properties / events / items / descriptionAdded value: +"One cap-table event, discriminated by `type`. Pass events in chronological order." - added
Input schema / definitions / ComputeRequest / properties / events / items / discriminatorAdded 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" +} - added
Input schema / definitions / ComputeRequest / properties / events / items / oneOfAdded 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" + } +] - added
Input schema / definitions / ComputeRequest / properties / events / maxItemsAdded value: +200 - added
Input schema / definitions / ComputeResponse / properties / data / properties / final / $refAdded value: +"#/definitions/CapTableSnapshot" - removed
Input schema / definitions / ComputeResponse / properties / data / properties / final / descriptionRemoved value: -"The final cap-table state." - removed
Input schema / definitions / ComputeResponse / properties / data / properties / final / typeRemoved value: -"object" - added
Input schema / definitions / ComputeResponse / properties / data / properties / snapshots / items / $refAdded value: +"#/definitions/CapTableSnapshot" - removed
Input schema / definitions / ComputeResponse / properties / data / properties / snapshots / items / typeRemoved value: -"object" - removed
Input schema / definitions / CreateKeyRequestRemoved value: -{ - "properties": { - "name": { - "description": "Label for the key, written into the audit trail.", - "type": "string" - } - }, - "type": "object" -} - added
Input schema / definitions / DailyUsageAdded 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" +} - changed
Input schema / definitions / Error / properties / error / properties / code / enumPrevious 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" +] - added
Input schema / definitions / FundComputeRequest / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / definitions / FundComputeRequest / additionalPropertiesAdded value: +false - changed
Input schema / definitions / FundComputeRequest / properties / inputs / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / definitions / FundComputeRequest / properties / inputs / descriptionRemoved value: -"Fund Economics inputs: committed capital, fees, portfolio construction, carry tiers." - added
Input schema / definitions / FundComputeRequest / properties / inputs / propertiesAdded 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" + } +} - added
Input schema / definitions / FundComputeRequest / properties / inputs / requiredAdded value: +[ + "committedCapital", + "gpCommitPct", + "gpCommitCountedTowardInvested", + "organizationalExpenses", + "operationalExpensesAnnual", + "mgmtFeePct", + "recycledCapitalPct", + "carryPct", + "newInvestmentPeriodYears", + "mgmtFeesPeriodYears", + "portfolio", + "returnTiers" +] - added
Input schema / definitions / FundResultAdded 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" +} - added
Input schema / definitions / LineTotalsAdded value: +{ + "properties": { + "gp": { + "type": "number" + }, + "lp": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "total", + "lp", + "gp" + ], + "type": "object" +} - added
Input schema / definitions / MonthlyUsageAdded 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" +} - added
Input schema / definitions / ProductAccessAdded 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" +} - added
Input schema / definitions / ResultResponse / properties / data / properties / result / oneOfAdded value: +[ + { + "$ref": "#/definitions/WaterfallResult" + }, + { + "$ref": "#/definitions/FundResult" + } +] - removed
Input schema / definitions / ResultResponse / properties / data / properties / result / typeRemoved value: -"object" - added
Input schema / definitions / UsagePeriodAdded 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" +} - added
Input schema / definitions / WaterfallComputeRequest / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / definitions / WaterfallComputeRequest / additionalPropertiesAdded value: +false - removed
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / descriptionRemoved value: -"Total exit proceeds to distribute." - added
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / maximumAdded value: +1000000000000000 - added
Input schema / definitions / WaterfallComputeRequest / properties / exitValuation / minimumAdded value: +0 - changed
Input schema / definitions / WaterfallComputeRequest / properties / model / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / definitions / WaterfallComputeRequest / properties / model / descriptionRemoved value: -"Exit-waterfall model: preferred series, common holders, options, warrants, convertibles." - added
Input schema / definitions / WaterfallComputeRequest / properties / model / propertiesAdded 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" + } +} - added
Input schema / definitions / WaterfallComputeRequest / properties / model / requiredAdded value: +[ + "common", + "preferred" +] - changed
Input schema / definitions / WaterfallComputeRequest / requiredPrevious value: -[ - "model", - "exitValuation" -]New value: +[ + "exitValuation", + "model" +] - added
Input schema / definitions / WaterfallResultAdded 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" +} - changed
Input schema / properties / inputs / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / inputs / descriptionRemoved value: -"Fund Economics inputs: committed capital, fees, portfolio construction, carry tiers." - added
Input schema / properties / inputs / propertiesAdded 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" + } +} - added
Input schema / properties / inputs / requiredAdded value: +[ + "committedCapital", + "gpCommitPct", + "gpCommitCountedTowardInvested", + "organizationalExpenses", + "operationalExpensesAnnual", + "mgmtFeePct", + "recycledCapitalPct", + "carryPct", + "newInvestmentPeriodYears", + "mgmtFeesPeriodYears", + "portfolio", + "returnTiers" +]
5 tool updates
- Changed
cap_table_compute5 fields changed- added
Input schema / definitionsAdded 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" + } +} - changed
Input schema / properties / events / descriptionPrevious 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." - added
Input schema / properties / events / items / $refAdded value: +"#/definitions/CapTableEvent" - removed
Input schema / properties / events / items / typeRemoved value: -"object" - added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Optional retry key; reuse only with identical input.", + "type": "string" +}
- Changed
exit_waterfall_compute4 fields changed- added
Input schema / definitionsAdded 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" + } +} - added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Optional retry key; reuse only with identical input.", + "type": "string" +} - added
Input schema / properties / model / additionalPropertiesAdded value: +true - changed
Input schema / properties / model / descriptionPrevious value: -"Waterfall model: { common: [...], preferred: [...], options?, warrants?, convertibles? }. See list_concepts (\"waterfall\") for the structure."New value: +"Exit-waterfall model: preferred series, common holders, options, warrants, convertibles."
- Changed
fund_economics_compute4 fields changed- added
Input schema / definitionsAdded 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" + } +} - added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Optional retry key; reuse only with identical input.", + "type": "string" +} - added
Input schema / properties / inputs / additionalPropertiesAdded value: +true - changed
Input schema / properties / inputs / descriptionPrevious value: -"Fund inputs: committed capital, fees, portfolio construction, carry tiers. See list_concepts and the Fund Economics template for fields."New value: +"Fund Economics inputs: committed capital, fees, portfolio construction, carry tiers."
- Added
get_account_access - Added
get_account_usage
5 tool updates
- Added
cap_table_compute - Added
exit_waterfall_compute - Added
fund_economics_compute - Added
get_access - Added
list_models
5 tool updates
- Changed
get_checks1 field changed- changed
Input schema / properties / template_name / enumPrevious value: -[ - "standard", - "cap_table", - "venture_fund", - "runway", - "all" -]New value: +[ + "standard", + "cap_table", + "venture_fund", + "venture_fund_quarterly", + "runway", + "saas", + "ecommerce", + "unit_economics", + "fund_economics", + "fund_economics_tool_web", + "venture_valuation", + "all" +]
- Added
get_concept - Changed
get_context1 field changed- changed
Input schema / properties / template_name / enumPrevious value: -[ - "standard", - "cap_table", - "venture_fund", - "runway" -]New value: +[ + "standard", + "cap_table", + "venture_fund", + "venture_fund_quarterly", + "runway", + "saas", + "ecommerce", + "unit_economics", + "fund_economics", + "fund_economics_tool_web", + "venture_valuation" +]
- Changed
get_prompts1 field changed- changed
Input schema / properties / template_name / enumPrevious value: -[ - "standard", - "cap_table", - "venture_fund", - "runway" -]New value: +[ + "standard", + "cap_table", + "venture_fund", + "venture_fund_quarterly", + "runway", + "saas", + "ecommerce", + "unit_economics", + "fund_economics", + "fund_economics_tool_web", + "venture_valuation" +]
- Added
list_concepts
4 tool updates
- First observed
get_best_practices - First observed
get_checks - First observed
get_context - First observed
get_prompts
Related MCP Connectors
Deterministic company valuation and corporate finance tools for AI agents โ IRR, NPV, MOIC, DCF, WACC, enterprise value, EV multiples, CAPM, beta and sensitivity analysis via Model Context Protocol. Useful for financial analysis, equity analysis, quantitative analysis, financial projections, financial formulas and financial modeling.
Structured financial modeling for AI agents: build, version, audit models, export to Excel.
SEC & financial-data MCP: filings, financials, ownership, factors, fund letters, prompts.
Deterministic finance tools for AI agents โ IRR, NPV, MOIC, DCF, WACC and sensitivity.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables synthesis of multi-tab financial models with circular-reference detection, formula dependency DAG compilation (SUMIFS, XLOOKUP, CAGR, NPV), and deterministic preview cell matrix evaluation through MCP.7MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server that provides tools, resources, and prompts for financial analysis using the Financial Modeling Prep API.51MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to synthesize multi-tab enterprise spreadsheet financial models, detect circular references, compile formula dependency DAGs with functions like SUMIFS/XLOOKUP/CAGR/NPV, and evaluate deterministic preview cell matrices.7MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to perform multi-stage residual income projections, discounting, and enterprise value bridging analysis using standardized financial data inputs.137 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.