diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index ea64cfec7..ce7d432e9 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -123,6 +123,12 @@ "displayName": "Claude for Microsoft 365 Install", "source": "./claude-for-msft-365-install", "description": "Provision direct cloud access (Vertex AI, Bedrock, or LLM gateway) for the Claude Microsoft 365 add-in. Generates the customized manifest, walks through Azure admin consent, and writes per-user config via Graph extension attributes." + }, + { + "name": "fundos", + "displayName": "FundOS by VantedgeAI", + "source": "./plugins/partner-built/fundos", + "description": "AI-native fund operations for emerging VC and private credit managers — capital calls, LP reporting, waterfall calculations, covenant monitoring, and VDR workflow" } ] } diff --git a/plugins/partner-built/fundos/.claude-plugin/plugin.json b/plugins/partner-built/fundos/.claude-plugin/plugin.json new file mode 100644 index 000000000..ea520dcbc --- /dev/null +++ b/plugins/partner-built/fundos/.claude-plugin/plugin.json @@ -0,0 +1,30 @@ +{ + "name": "fundos", + "version": "1.0.0", + "description": "AI-native fund operations for emerging VC and private credit managers — capital calls, LP reporting, waterfall calculations, covenant monitoring, and VDR workflow", + "author": { + "name": "VantedgeAI", + "email": "support@kela.com" + }, + "homepage": "https://www.kela.com", + "repository": "https://github.com/8vdx1/FundOS", + "license": "MIT", + "keywords": [ + "fund-operations", + "private-equity", + "venture-capital", + "private-credit", + "capital-calls", + "lp-reporting", + "waterfall", + "covenant-monitoring", + "vdr", + "fund-administration" + ], + "mcpServers": { + "fundos": { + "type": "http", + "url": "https://fundos.vantedgeai.com/mcp" + } + } +} diff --git a/plugins/partner-built/fundos/.mcp.json b/plugins/partner-built/fundos/.mcp.json new file mode 100644 index 000000000..62dc5d433 --- /dev/null +++ b/plugins/partner-built/fundos/.mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "fundos": { + "type": "http", + "url": "https://fundos.vantedgeai.com/mcp" + } + } +} diff --git a/plugins/partner-built/fundos/README.md b/plugins/partner-built/fundos/README.md new file mode 100644 index 000000000..a333b1a18 --- /dev/null +++ b/plugins/partner-built/fundos/README.md @@ -0,0 +1,191 @@ +# FundOS Plugin for Claude + +AI-native fund operations for emerging VC and private credit managers — capital calls, LP reporting, waterfall calculations, covenant monitoring, and VDR workflow, powered by the FundOS MCP server. + +## What FundOS Is + +[FundOS by Kela](https://www.kela.com) is an AI-native operating system for fund managers. It gives emerging VC, private equity, and private credit managers the same fund operations infrastructure as large institutions: a deal CRM, LP investor portal, capital call engine, European waterfall calculator, covenant monitoring dashboard, and Virtual Data Room — all accessible through a unified MCP server so AI agents can read fund state and propose actions for human approval. + +FundOS is built for the 4,000+ new emerging managers who launch funds every year and can't afford the enterprise fund admin stack. It handles the full fund lifecycle from first close to final distribution. + +## What This Plugin Does + +This plugin packages FundOS's core fund operations workflows into 8 slash commands and 8 background skills. Each command orchestrates multiple FundOS MCP tool calls into a complete, GP-ready output — a formal capital call notice, a quarterly LP letter, a distribution waterfall with full math, or a diligence document checklist. + +Commands can run standalone (asking the user for inputs) or with live data pulled directly from FundOS when the MCP connector is configured. + +## Commands + +| Command | Description | +|---------|-------------| +| `/fundos:capital-call` | Draft a formal capital call notice with per-LP amounts and wire instructions | +| `/fundos:lp-report` | Generate a quarterly LP report with performance metrics, portfolio summary, and investor letter | +| `/fundos:waterfall` | Calculate fund distribution waterfall (European or American) with step-by-step math and sensitivity table | +| `/fundos:covenant-check` | Evaluate portfolio company covenant compliance and flag breaches or near-breaches with RAG status | +| `/fundos:lp-update` | Draft a formal LP communication for any fund event — exit, write-down, new investment, fund milestone | +| `/fundos:vdr-checklist` | Generate a VDR document checklist for a deal at a given diligence stage (initial / full / closing) | +| `/fundos:fund-snapshot` | Generate a one-page fund snapshot with capital metrics, DPI/RVPI/TVPI, and portfolio summary | +| `/fundos:flux-pack` | Run month/quarter-end variance analysis and turn it into a board-ready pack with a footed gross-to-net bridge | + +## Skills + +Skills provide the background domain knowledge that Claude uses automatically when a relevant conversation is detected — no slash command required. + +| Skill | Triggers Automatically When... | +|-------|-------------------------------| +| `fund-admin` | User asks about fund metrics, NAV, capital accounts, DPI/RVPI/TVPI | +| `lp-communications` | User wants to draft any communication to limited partners | +| `capital-calls` | User mentions issuing a capital call or LP hasn't funded | +| `waterfall-calculations` | User asks about distributions, carry, preferred return, or GP/LP split | +| `covenant-monitoring` | User reviews portfolio company financials against loan terms | +| `vdr-workflow` | User organizes a data room or generates a diligence document list | +| `variance-commentary` | User closes a period, asks for flux/variance, or asks why a P&L line moved | +| `board-dashboard` | User wants a board pack, dashboard, one-pager, or bridge/waterfall chart | + +## MCP Connector + +This plugin connects to the **FundOS MCP server** which provides live access to fund data across all modules. + +### Endpoint + +``` +https://fundos.vantedgeai.com/mcp +``` + +### Authentication + +Authenticate using a FundOS API key: + +``` +Authorization: Bearer vdr_ +``` + +API keys are issued from your FundOS workspace at **Settings → API Keys** (requires Admin role). Each key is scoped to your organization and respects the FundOS permission model. + +### Getting an API Key + +1. Log in to [www.kela.com](https://www.kela.com) +2. Navigate to **Settings → API Keys** +3. Create a new key with a descriptive name (e.g. "Claude Plugin") +4. Copy the key immediately — it is only shown once + +### What the MCP Server Exposes + +The FundOS MCP server exposes 24+ tools across all fund operations modules: + +| Module | Tools Available | +|--------|----------------| +| Deal CRM | `fundos_list_deals`, `fundos_get_deal`, `fundos_get_pipeline` | +| LP Investor Portal | `fundos_list_lps`, `fundos_get_lp`, `fundos_create_capital_call` | +| CFO Center | `fundos_list_fund_accounts`, `fundos_compute_pnl`, `fundos_compute_waterfall` | +| Risk / Covenants | `fundos_list_covenants`, `fundos_check_covenant`, `fundos_list_risk_alerts` | +| VDR | `list_deal_rooms`, `list_documents`, `search_documents`, `get_document_activity` | +| Transactions | `fundos_list_transactions`, `fundos_draft_transaction` | +| Pricer | `fundos_run_pricer` | + +All write operations (capital calls, covenant updates, document uploads) require human approval in the FundOS UI before taking effect. Agents propose — humans approve. + +## Installation + +### From Claude Code CLI + +```bash +claude plugin marketplace add anthropics/financial-services +``` + +```bash +claude plugin install fundos@claude-for-financial-services +``` + +### Alternative: the VantedgeAI marketplace + +Also published direct from the FundOS MCP developer hub: + +```bash +claude plugin marketplace add 8vdx1/fundos-mcp +``` + +```bash +claude plugin install fundos@vantedgeai +``` + +### Configure the MCP Connector + +In your project's `.mcp.json`: + +```json +{ + "mcpServers": { + "fundos": { + "type": "http", + "url": "https://fundos.vantedgeai.com/mcp", + "headers": { + "Authorization": "Bearer vdr_" + } + } + } +} +``` + +Or add via Claude Code settings for user-level access: + +```bash +claude mcp add fundos https://fundos.vantedgeai.com/mcp +``` + +## Without the MCP Connector + +All commands work without a live FundOS connection. Claude will ask for the required inputs (LP list, financials, covenant definitions, etc.) and perform all calculations locally. The MCP connector adds: + +- Live fund data pull (no manual input needed) +- Capital call creation routing to FundOS approval queue +- Covenant breach alerts stored in FundOS risk dashboard +- Document gap analysis against actual VDR contents + +## Example Usage + +**Capital call for a new investment:** +``` +/fundos:capital-call Fund II — new investment in Stripe, calling 15% of uncalled commitments +``` + +**Quarterly LP report:** +``` +/fundos:lp-report Acme Ventures Fund II Q1 2026 +``` + +**European waterfall:** +``` +/fundos:waterfall $85M proceeds, $40M LP capital invested, 8% preferred return, 20% carry +``` + +**Covenant check on a private credit portfolio company:** +``` +/fundos:covenant-check PortCo Corp Q1 2026 — Total Leverage ≤5.0x, ICR ≥2.5x, Min Cash $5M +``` + +**LP exit announcement:** +``` +/fundos:lp-update portfolio exit — Acme acquired for $120M, 4.2x MOIC, semi-formal tone +``` + +**Diligence checklist:** +``` +/fundos:vdr-checklist Series B SaaS company — full diligence stage +``` + +**Fund snapshot:** +``` +/fundos:fund-snapshot Acme Ventures Fund II +``` + +## Support + +- Documentation: [www.kela.com/llms.txt](https://www.kela.com/llms.txt) (LLM-optimized FundOS reference) +- Full API docs: [www.kela.com/api/docs](https://www.kela.com/api/docs) +- MCP server discovery: [www.kela.com/.well-known/mcp.json](https://www.kela.com/.well-known/mcp.json) +- Support: support@kela.com + +## License + +MIT — see [LICENSE](LICENSE) for details. diff --git a/plugins/partner-built/fundos/commands/capital-call.md b/plugins/partner-built/fundos/commands/capital-call.md new file mode 100644 index 000000000..9d9834bd9 --- /dev/null +++ b/plugins/partner-built/fundos/commands/capital-call.md @@ -0,0 +1,103 @@ +--- +description: Draft a capital call notice with per-LP call amounts and wire instructions +argument-hint: "[fund name or call percentage, e.g. 'Acme Fund II 20%']" +--- + +# Capital Call + +> This command uses the FundOS MCP server. See the [README](../README.md) for connection requirements. + +Draft a formal capital call notice, calculate each LP's call amount from their commitment, and produce a summary table ready for distribution. + +See the **capital-calls** skill for domain knowledge on notice formats, ILPA standards, and call mechanics. + +## Workflow + +### 1. Gather Inputs + +If the FundOS MCP is connected, call `fundos_list_lps` and `fundos_list_fund_accounts` to pull live fund and LP data. If not connected, ask the user for: + +- **Fund name** and vehicle (master fund, parallel, co-invest) +- **LP list** with name, commitment amount, and currency for each LP +- **Call percentage** — percentage of uncalled committed capital being called (e.g. 20%) +- **Call purpose** — investment name, fund expenses, management fee, or other +- **Notice date** — date the notice is issued +- **Due date** — wire due date (typically 10 business days from notice) +- **Wire instructions** — fund bank account name, bank, ABA/SWIFT, account number (or placeholder) +- **Fund administrator contact** — name and email for LP queries + +### 2. Calculate Per-LP Call Amounts + +For each LP, compute: + +| LP Name | Total Commitment | Previously Called | Uncalled Balance | This Call % | This Call Amount | +|---------|-----------------|-------------------|-----------------|-------------|-----------------| +| LP 1 | $X,XXX,XXX | $X,XXX,XXX | $X,XXX,XXX | XX% | $XXX,XXX | +| ... | ... | ... | ... | ... | ... | +| **Total** | **$X,XXX,XXX** | **$X,XXX,XXX** | **$X,XXX,XXX** | **XX%** | **$XXX,XXX** | + +Validate: each LP's call amount = uncalled balance × call percentage. Flag any LP near or at their full commitment. + +### 3. Draft the Capital Call Notice + +Use formal LP notice format: + +``` +[Fund Name] +Capital Call Notice No. [X] +Notice Date: [Date] +Due Date: [Date] + +Dear [LP Name], + +Pursuant to Section [X] of the Limited Partnership Agreement dated [date], [Fund Name] (the "Fund") +hereby calls capital contributions from the limited partners of the Fund. + +CAPITAL CALL DETAILS +Fund: [Fund Name] +Call Number: [X] +Notice Date: [Date] +Due Date: [Date] +Purpose: [Investment in / Management Fee / Fund Expenses] + +YOUR CAPITAL CALL +Commitment Amount: $[X,XXX,XXX] +Previously Called: $[X,XXX,XXX] +Uncalled Balance: $[X,XXX,XXX] +This Call ([XX]%): $[XXX,XXX] +Remaining Balance: $[XXX,XXX] + +WIRE INSTRUCTIONS +Beneficiary Name: [Fund Name] +Bank: [Bank Name] +ABA / Routing: [Number] +Account Number: [Number] +SWIFT (international): [Code] +Reference: [LP Name] — Capital Call No. [X] + +Please wire your contribution by [Due Date] to the above account. Please send confirmation of +payment to [admin contact email]. + +Questions: Contact [Fund Admin Name] at [email]. + +[GP Signature Block] +``` + +Generate one notice per LP, substituting their individual amounts. + +### 4. Output + +Return: +1. **Summary table** — all LPs, commitments, call amounts, due date +2. **Individual notices** — one formatted notice per LP (Markdown, ready to copy into PDF/email) +3. **Total call amount** — aggregate across all LPs + +If FundOS MCP is connected, call `fundos_create_capital_call` for each LP after confirming with the user. + +## Important Notes + +- Capital call notices trigger real LP cash movements — always confirm amounts before issuing +- Wire instructions should be verified against the fund's actual banking details before sending +- ILPA 2025 format adds a standardized Excel attachment — mention this if the user has ILPA notices enabled in FundOS +- Overdue capital contributions typically accrue interest per the LPA — note this if due date is tight +- If LPs are in different currencies, convert at the spot rate on notice date and note the rate used diff --git a/plugins/partner-built/fundos/commands/covenant-check.md b/plugins/partner-built/fundos/commands/covenant-check.md new file mode 100644 index 000000000..f32f3e3c6 --- /dev/null +++ b/plugins/partner-built/fundos/commands/covenant-check.md @@ -0,0 +1,133 @@ +--- +description: Evaluate portfolio company covenant compliance and flag breaches or near-breaches +argument-hint: "[company name, e.g. 'Acme Corp Q1 2026 financials']" +--- + +# Covenant Check + +> This command uses the FundOS MCP server. See the [README](../README.md) for connection requirements. + +Evaluate a portfolio company's current financial metrics against all loan covenants. Produce a RAG (Red / Amber / Green) compliance dashboard, flag any breaches or near-breaches, and draft a breach notice if required. + +See the **covenant-monitoring** skill for domain knowledge on covenant structures, cushion analysis, and cure rights. + +## Workflow + +### 1. Gather Inputs + +If FundOS MCP is connected, call `fundos_list_covenants` to retrieve active covenants for the portfolio company. If not connected, ask for: + +- **Portfolio company name** +- **Reporting period** (e.g. Q1 2026, LTM ended March 31 2026) +- **Covenant definitions** — for each covenant: + - Covenant name (e.g. Total Leverage Ratio) + - Threshold (e.g. ≤ 5.0x) + - Direction (maximum or minimum) + - Test frequency (quarterly, semi-annual, annual) + - Cure rights (equity cure permitted? how many times per LPA/credit agreement?) +- **Current financials** to compute actuals: + - Total debt (current + long-term) + - EBITDA (LTM, adjusted per credit agreement definition) + - Cash interest expense (LTM) + - Cash and liquid assets + - Revenue (LTM) + - Any credit agreement-defined adjustments (addbacks, run-rate, synergies) + +### 2. Compute Covenant Metrics + +For each standard covenant type: + +**Leverage Covenants** +``` +Total Leverage Ratio = Total Net Debt / Adjusted EBITDA +Senior Leverage Ratio = Senior Debt / Adjusted EBITDA +``` + +**Coverage Covenants** +``` +Interest Coverage Ratio (ICR) = Adjusted EBITDA / Cash Interest Expense +Fixed Charge Coverage Ratio (FCCR) = (EBITDA - Capex - Taxes) / (Interest + Debt Service) +``` + +**Liquidity Covenants** +``` +Minimum Liquidity = Cash + Revolving Credit Facility Availability +Current Ratio = Current Assets / Current Liabilities +``` + +**Other Common Covenants** +``` +Maximum Capex = Actual Capex vs. Annual Limit +Revenue Run-Rate = LTM Revenue vs. Minimum Threshold +ARR (SaaS) = Annualized Recurring Revenue vs. Minimum Threshold +``` + +### 3. RAG Compliance Dashboard + +For each covenant, assign status: +- **Green** — actual is within covenant with >15% cushion +- **Amber** — actual is within covenant but within 15% of the threshold (near-breach) +- **Red** — actual breaches the covenant threshold + +| Covenant | Threshold | Actual | Cushion | Status | +|----------|-----------|--------|---------|--------| +| Total Leverage | ≤ 5.0x | X.Xx | XX% | 🟢 Green | +| Interest Coverage | ≥ 2.5x | X.Xx | XX% | 🟡 Amber | +| Minimum Liquidity | ≥ $5M | $X.XM | XX% | 🔴 Red | +| Total Capex | ≤ $5M | $X.XM | XX% | 🟢 Green | + +### 4. Breach Analysis + +For each Red or Amber covenant: + +- **Breach severity**: Threshold miss by X% / $Xm +- **Cure rights**: Equity cure available? Number of cures remaining per credit agreement +- **Grace period**: How many days from test date to cure deadline +- **Lender notification**: When must the borrower notify lenders +- **Potential consequences**: Default, acceleration risk, fee implications +- **Recommended action**: Cure, waiver request, amendment, or lender discussion + +### 5. Draft Breach Notice (if applicable) + +If a covenant breach is confirmed, draft a formal lender notification: + +``` +[Date] + +[Lender Name / Agent] +[Address] + +Re: [Company Name] — [Credit Agreement Name] — Covenant Compliance Notice + +Dear [Agent], + +Pursuant to Section [X] of the Credit Agreement dated [date], [Company Name] hereby notifies you +that it has identified a breach of the [Covenant Name] covenant for the test period ended [date]. + +BREACH DETAILS +Covenant: [Name] +Required Threshold: [e.g. Total Leverage ≤ 5.0x] +Actual Result: [e.g. Total Leverage 5.6x] +Cure Deadline: [Date per credit agreement] + +[Company Name] is evaluating its options under the Credit Agreement, including the equity cure +provisions under Section [X]. We will provide a further update by [date]. + +[Signature Block] +``` + +### 6. Output + +Return: +1. **RAG compliance dashboard** — all covenants with status, actual vs. threshold, cushion +2. **Breach analysis** — detail on any Red/Amber covenants with cure options +3. **Breach notice draft** — if any Red covenants, a ready-to-review lender notification +4. **Trend table** — if prior quarter data provided, show covenant metric trends + +## Important Notes + +- EBITDA definition varies by credit agreement — addbacks for non-cash items, restructuring, run-rate acquisitions, and management fees must match the credit agreement definition exactly +- Equity cure rights are limited — track cure count carefully (most agreements allow 4-5 over the life, no more than 2 consecutive quarters) +- If FundOS MCP is connected, call `fundos_check_covenant` with `covenant_id` to update stored values and trigger risk alerts automatically +- Lender notification deadlines are typically 5 business days from the covenant test date — breach notices filed late can themselves constitute an event of default +- Near-breach (Amber) covenants warrant proactive lender engagement — don't wait for a breach diff --git a/plugins/partner-built/fundos/commands/flux-pack.md b/plugins/partner-built/fundos/commands/flux-pack.md new file mode 100644 index 000000000..fa56f1baa --- /dev/null +++ b/plugins/partner-built/fundos/commands/flux-pack.md @@ -0,0 +1,52 @@ +--- +description: Run month/quarter-end variance analysis and turn it into a board-ready pack — KPI tiles, gross-to-net bridge, and driver commentary +argument-hint: "[fund name and period, e.g. 'Acme Fund II Q2 2026']" +--- + +# Flux Pack + +> This command uses the FundOS MCP server. See the [README](../README.md) for connection requirements. + +Two steps, in order: compute the variance, then present it. The **variance-commentary** skill covers the analysis; the **board-dashboard** skill covers the layout. + +## Workflow + +### 1. Establish the scope + +If FundOS MCP is connected, call `fundos_list_fund_accounts` to pick the vehicle and confirm its reporting currency. Otherwise ask for: + +- **Fund** and **period** (month, quarter, or year) +- **Comparison basis** — prior period, budget, or both +- **Materiality** — the amount and/or percent threshold that makes a line worth commenting on +- **Always-comment lines** — any line the GP wants explained however small it moved + +In FundOS the last two are workspace settings (**CFO Center → Flux → Reporting style**), so they do not need restating each quarter. + +### 2. Compute the variance + +Call `cfo.flux` via `fundos_call_tool`. **Do not compute the deltas yourself** — the table is built and footed in Python, and a number derived in prose is a number nobody checked. + +Each row returns: category, line label, actual, prior, budget, delta in amount and percent, and a materiality flag. + +### 3. Draft one driver per material line + +One sentence explaining **why** the line moved, not what it moved to. If you cannot determine a driver from the data, use exactly `driver unclear — flag for controller`. Never invent a cause. + +### 4. Assemble the pack + +- **Management message** — one sentence: what happened, what drove it, what to pressure-test. +- **KPI tiles** — value, change, basis, and a `Source:` line on each. +- **Gross-to-net bridge** — opening basis, material movers largest first, immaterial tail as "Other", closing actual. +- **Line detail** — the full table with drivers. + +### 5. State the footing verdict + +If the bridge **foots**, show the check: components, stated total, residual. + +If it **does not foot**, banner it, render the gap as its own labelled **Unexplained** bar, and say so in the management message. Never fold a residual into "Other" to make the waterfall close. + +### 6. Mark it a draft and stop + +Label the pack **DRAFT FOR HUMAN REVIEW**. Flux is read-only — it posts nothing and sends nothing — but a pack is a draft until a human controller signs it off. Do not send it to anyone. + +In FundOS the finished pack lives at `/fundos/cfo/flux/pack/`, and **Publish to room** files it as XLSX, PDF and self-contained HTML into the fund's reporting room. diff --git a/plugins/partner-built/fundos/commands/fund-snapshot.md b/plugins/partner-built/fundos/commands/fund-snapshot.md new file mode 100644 index 000000000..0a54c1248 --- /dev/null +++ b/plugins/partner-built/fundos/commands/fund-snapshot.md @@ -0,0 +1,102 @@ +--- +description: Generate a one-page fund snapshot with capital metrics, DPI/RVPI/TVPI, and portfolio summary +argument-hint: "[fund name, e.g. 'Acme Fund II']" +--- + +# Fund Snapshot + +> This command uses the FundOS MCP server. See the [README](../README.md) for connection requirements. + +Generate a concise one-page fund snapshot covering all key fund-level metrics: capital committed, called, deployed, returned, NAV, DPI, RVPI, TVPI, portfolio composition, and recent activity. If the FundOS MCP is connected, pulls live data automatically. + +See the **fund-admin** skill for domain knowledge on fund-level reporting, NAV calculation, and ILPA performance reporting standards. + +## Workflow + +### 1. Pull Live Data (if FundOS MCP connected) + +Call in sequence: +1. `fundos_list_fund_accounts` — get fund vehicles and current NAV +2. `fundos_list_lps` — get committed capital and LP roster +3. `fundos_get_pipeline` — get portfolio company list by stage +4. `fundos_list_transactions` — get recent closings and exits +5. `fundos_compute_pnl` (if fund_account_id available) — get period P&L + +If MCP is not connected, ask the user for: + +- **Fund name**, vintage year, fund life (years), strategy (VC / PE / PC / Real Estate) +- **Capital metrics**: total commitments, total called, management fee, GP commitment +- **Portfolio**: list of companies/assets with cost basis and current FV (or book value for credit) +- **Realizations**: any exits, partial sales, or distributions to date +- **Reporting date** + +### 2. Compute Fund Metrics + +| Metric | Value | Notes | +|--------|-------|-------| +| Total Committed Capital | $XXX,XXX,XXX | Sum of all LP + GP commitments | +| GP Commitment | $X,XXX,XXX | GP co-invest, typically 1-2% | +| Total Called | $XXX,XXX,XXX | All capital calls to date | +| Uncalled / Dry Powder | $XXX,XXX,XXX | Committed minus called | +| % Called | XX.X% | Called / Committed | +| Management Fees (cumulative) | $X,XXX,XXX | Fee paid on committed or invested capital | +| Net Invested Capital | $XXX,XXX,XXX | Called minus fees and fund expenses | +| Realized Proceeds | $XX,XXX,XXX | Cash returned from exits, dividends, coupons | +| Unrealized NAV | $XXX,XXX,XXX | Current FV of remaining portfolio | +| Total Value | $XXX,XXX,XXX | Realized + Unrealized | +| **DPI** | **X.XXx** | Realized / Called (distributions to paid-in) | +| **RVPI** | **X.XXx** | Unrealized / Called (residual value to paid-in) | +| **TVPI** | **X.XXx** | Total Value / Called (total value to paid-in) | +| **Net IRR** | **XX.X%** | Net of fees and carry, since inception | +| Fund Life Elapsed | X.X years | From first close to reporting date | +| Projected End of Investment Period | [Date] | Typically year 5-6 from vintage | + +### 3. Portfolio Summary + +**By Status** +| Status | Count | Cost Basis | Fair Value | MOIC | +|--------|-------|-----------|-----------|------| +| Active | XX | $XXX,XXX,XXX | $XXX,XXX,XXX | X.Xx | +| Realized | XX | $XX,XXX,XXX | $XX,XXX,XXX | X.Xx | +| Watch List | XX | $X,XXX,XXX | $X,XXX,XXX | X.Xx | +| Written Off | XX | $X,XXX,XXX | $0 | 0.0x | + +**By Sector** (top 5) +| Sector | # Companies | % of NAV | +|--------|------------|---------| +| SaaS / Cloud | X | XX% | +| Fintech | X | XX% | +| ... | ... | ... | + +**Top Holdings** (by fair value, top 5) +| Company | Stage | Cost | FV | MOIC | % of Portfolio | +|---------|-------|------|----|------|---------------| +| Co A | Series C | $Xm | $XXm | X.Xx | XX% | +| ... | ... | ... | ... | ... | ... | + +### 4. Recent Activity (last 90 days) + +List: new investments, follow-ons, exits, capital calls, notable portfolio events. + +### 5. Fund Health Indicators + +- **Concentration risk**: Top 3 holdings as % of NAV (flag if >50%) +- **Deployment pace**: % of capital deployed vs. fund age (flag if behind/ahead of typical pace) +- **Follow-on reserves**: Undeployed capital available for follow-ons vs. estimated need +- **Fee drag**: Management fees as % of called capital (benchmark: 1.8-2.0% annually) + +### 6. Output + +Return: +1. **One-page fund snapshot** — all metrics in a clean summary format +2. **Portfolio tables** — by status, sector, and top holdings +3. **Recent activity** — last 90 days +4. **Health indicators** — concentration, pace, reserves flags + +## Important Notes + +- NAV for private equity and VC follows ASC 820 / IFRS 13 fair value hierarchy — confirm valuation methodology and date of last mark +- DPI is the most credible metric for mature funds — LPs will focus on this above TVPI in years 6+ +- Net IRR requires exact cash flow dates — if dates are approximate, note this in the output +- For private credit funds, replace RVPI/TVPI with yield-based metrics: current yield, realized yield, net IRR, loss rate +- If reporting to an LPAC or institutional LP, follow ILPA Performance Reporting Standards for metric definitions diff --git a/plugins/partner-built/fundos/commands/lp-report.md b/plugins/partner-built/fundos/commands/lp-report.md new file mode 100644 index 000000000..f226b9382 --- /dev/null +++ b/plugins/partner-built/fundos/commands/lp-report.md @@ -0,0 +1,94 @@ +--- +description: Generate a quarterly LP report with portfolio summary, performance metrics, and investor letter +argument-hint: "[fund name and reporting period, e.g. 'Acme Fund II Q1 2026']" +--- + +# LP Report + +> This command uses the FundOS MCP server. See the [README](../README.md) for connection requirements. + +Generate a complete quarterly LP report: investor letter, portfolio company summaries, fund-level performance metrics (DPI, RVPI, TVPI), capital account statement, and notable events. + +See the **lp-communications** skill for LP reporting standards, ILPA guidelines, and investor communication best practices. + +## Workflow + +### 1. Gather Inputs + +If FundOS MCP is connected, call `fundos_list_fund_accounts`, `fundos_list_lps`, and `fundos_get_pipeline` to pull live data. If not connected, ask for: + +- **Fund name** and reporting period (e.g. Q1 2026, full year 2025) +- **Portfolio companies** — name, sector, ownership %, invested cost, current fair value, stage +- **Fund-level financials** — total committed capital, called capital, total NAV, distributions to date +- **Vintage year** and fund life (e.g. Fund III, 2022 vintage, 10-year fund) +- **Notable events** this quarter — new investments, follow-ons, exits, write-downs, portfolio news +- **Market commentary** — optional GP view on macro / sector environment +- **Tone preference** — formal (institutional LPs) or semi-formal (family offices, angels) + +### 2. Compute Performance Metrics + +Calculate fund-level KPIs: + +| Metric | Value | Formula | +|--------|-------|---------| +| Committed Capital | $XXX,XXX,XXX | Sum of all LP commitments | +| Called Capital | $XXX,XXX,XXX | Total capital contributions received | +| Uncalled Capital | $XXX,XXX,XXX | Committed minus called | +| Total Cost Basis | $XXX,XXX,XXX | Sum of invested amounts at cost | +| Realized Proceeds | $XXX,XXX,XXX | Cash distributions from exits | +| Unrealized Fair Value | $XXX,XXX,XXX | Current portfolio NAV | +| Total Value | $XXX,XXX,XXX | Realized + unrealized | +| DPI | X.XXx | Realized / Called Capital | +| RVPI | X.XXx | Unrealized FV / Called Capital | +| TVPI | X.XXx | Total Value / Called Capital | +| Net IRR | XX.X% | Time-weighted return net of fees/carry | + +For venture funds: also compute Ownership %, implied post-money at last round, and fair value methodology. + +### 3. Portfolio Summary Table + +| Company | Sector | Stage | Cost Basis | FV / Exit Price | MOIC | Status | +|---------|--------|-------|-----------|-----------------|------|--------| +| Co A | SaaS | Series B | $X.Xm | $XX.Xm | X.Xx | Active | +| Co B | Fintech | Seed | $X.Xm | $X.Xm | X.Xx | Active | +| Co C | Health | Exit | $X.Xm | $XX.Xm | X.Xx | Realized | + +Highlight top performers, write-downs, and watch-list companies. + +### 4. Draft the Investor Letter + +Structure: + +**[Fund Name] — [Quarter] Investor Update** + +*Dear [LP Name / Limited Partners],* + +**Fund Overview** (2-3 sentences — period highlights, where fund is in its life) + +**Portfolio Activity** (bullet points — new investments, follow-ons, exits, key milestones) + +**Portfolio Company Updates** (3-5 sentences each for material holdings — business progress, metrics, market context) + +**Fund Performance** (DPI, RVPI, TVPI table; narrative on drivers of value change) + +**Market Commentary** (optional — GP perspective on relevant sectors or macro themes) + +**Upcoming Activity** (pipeline, expected calls, anticipated events next quarter) + +**Closing** (thank LPs, contact info) + +### 5. Output + +Return: +1. **Investor letter** — formatted Markdown, one version with LP name placeholder `[LP Name]` +2. **Performance metrics table** — all KPIs with period-over-period comparison if prior period data provided +3. **Portfolio summary table** — all companies with cost/FV/MOIC +4. **Capital account statement** skeleton — contributions, distributions, NAV per LP unit + +## Important Notes + +- Fair values should follow ASC 820 (US) or IFRS 13 (international) — note the valuation methodology used (recent round, comparable transaction, DCF, etc.) +- Do not state forward-looking performance projections as fact — frame as expectations or plans +- Write-downs and watch-list companies should be disclosed accurately, not buried +- Provide data tables and the letter separately so the GP can adjust the letter narrative without re-running calculations +- ILPA Principles recommend quarterly reporting within 90 days of period end diff --git a/plugins/partner-built/fundos/commands/lp-update.md b/plugins/partner-built/fundos/commands/lp-update.md new file mode 100644 index 000000000..ab95342d7 --- /dev/null +++ b/plugins/partner-built/fundos/commands/lp-update.md @@ -0,0 +1,139 @@ +--- +description: Draft a formal LP update communication for a specific fund event or milestone +argument-hint: "[situation type, e.g. 'new investment in Acme Corp' or 'portfolio exit']" +--- + +# LP Update + +> This command uses the FundOS MCP server. See the [README](../README.md) for connection requirements. + +Draft a polished, ready-to-send LP communication for a specific situation — new investment, portfolio exit, write-down, fund close, market commentary, or ad-hoc update. Calibrated to the fund's voice and LP relationship type. + +See the **lp-communications** skill for LP communication standards, tone guidance, and disclosure obligations. + +## Workflow + +### 1. Gather Inputs + +Ask the user for: + +- **Situation type** — choose one: + - New investment announcement + - Portfolio company exit / realization + - Follow-on investment + - Write-down or impairment notice + - First close / subsequent close / final close + - Fund milestone (deployment, DPI threshold, vintage anniversary) + - Market commentary / macro update + - Portfolio company material event (CEO change, acquisition, financing, distress) + - Annual meeting invitation + - Ad-hoc update + +- **Key facts** for the situation: + - Company name, sector, deal size, ownership % + - For exits: realized proceeds, MOIC, IRR, hold period + - For write-downs: new carrying value, reason, recovery outlook + - For closes: total capital committed to date, target fund size + +- **Tone** — formal (institutional LPs: pensions, endowments, sovereigns) or semi-formal (family offices, HNW, angels) + +- **LP relationship context** — founding LP, new LP, difficult LP, LP who passed on prior fund + +- **Send to** — all LPs, a single LP, or a subset + +### 2. Select Template Structure + +**New Investment** +``` +Subject: [Fund Name] — New Investment: [Company Name] + +We are pleased to announce that [Fund Name] has completed its investment in [Company Name], +a [description] based in [location]. + +INVESTMENT OVERVIEW +Company: [Name] +Sector: [Sector] +Round / Structure: [Series X / Debt / Equity] +Fund Investment: $X,XXX,XXX +Total Round: $XX,XXX,XXX (if disclosed) +Co-Investors: [Names] + +INVESTMENT THESIS +[3-5 bullet points on why we invested: team, market, product, traction, our edge] + +This investment represents [Fund]'s [Xth] portfolio company and brings total deployed capital to +$XX,XXX,XXX ([XX]% of committed capital). + +[Signature] +``` + +**Exit / Realization** +``` +Subject: [Fund Name] — Exit: [Company Name] + +We are pleased to report that [Fund Name] has realized its investment in [Company Name]. + +REALIZATION SUMMARY +Company: [Name] +Buyer: [Acquirer / IPO / Secondary] +Gross Proceeds: $XX,XXX,XXX +Cost Basis: $X,XXX,XXX +Gross MOIC: X.Xx +Gross IRR: XX.X% +Hold Period: X.X years +Transaction Close: [Date] + +DISTRIBUTION DETAILS +Total Distribution to LPs: $XX,XXX,XXX +Your Distribution: $X,XXX,XXX (see capital account statement attached) +Wire Date: [Date] + +[Investment thesis recap, why it worked, key value creation levers] + +[Signature] +``` + +**Write-Down** +``` +Subject: [Fund Name] — Portfolio Update: [Company Name] + +We want to provide you with a transparent update on our investment in [Company Name]. + +During [quarter], the Fund marked down its investment in [Company Name] from $[X.Xm] to +$[X.Xm] (a write-down of $[Xm] or [XX]%). This reflects [reason: deteriorating performance / +failed fundraise / market conditions / impairment]. + +CURRENT STATUS +Carrying Value: $X,XXX,XXX ([X]% of cost) +Reason: [Clear, factual explanation] +Recovery Outlook: [Honest assessment] +Actions Underway: [Board changes / restructuring / sale process / bridge financing] + +[1-2 paragraphs: what happened, what we're doing about it, honest outlook] + +We remain committed to managing this position actively in the interests of the Fund. + +[Signature] +``` + +### 3. Tone Calibration + +**Formal (institutional)**: Use full fund name, legal titles, no contractions, passive voice where appropriate, formal salutation "Dear Limited Partner," and formal close. + +**Semi-formal (family office / HNW)**: Use first names if relationship warrants, direct voice, brief and punchy, may use contractions, casual close "Best regards." + +### 4. Output + +Return: +1. **Draft communication** — formatted, ready to send, with placeholders in `[brackets]` +2. **Subject line options** — 2-3 variants +3. **Key facts checklist** — confirm before sending (amounts, dates, names) +4. **Legal/disclosure reminder** — any items that warrant counsel review (material non-public information, forward-looking statements, clawback references) + +## Important Notes + +- LP updates that reference specific returns or valuations constitute financial disclosures — have counsel review before sending material write-downs or realized returns +- Write-downs should be disclosed promptly and accurately — omission or delay erodes LP trust more than the write-down itself +- Exit announcements often have confidentiality restrictions from the buyer — confirm what can be disclosed before sending +- For all-LP distributions, attach the per-LP capital account statement or wire detail separately, not in the body +- Never include forward-looking performance projections as commitments — frame as plans or expectations diff --git a/plugins/partner-built/fundos/commands/vdr-checklist.md b/plugins/partner-built/fundos/commands/vdr-checklist.md new file mode 100644 index 000000000..8606b7304 --- /dev/null +++ b/plugins/partner-built/fundos/commands/vdr-checklist.md @@ -0,0 +1,164 @@ +--- +description: Generate a VDR document checklist for a deal at a given diligence stage +argument-hint: "[deal name and stage, e.g. 'Acme Corp full diligence' or 'Series B closing']" +--- + +# VDR Checklist + +> This command uses the FundOS MCP server. See the [README](../README.md) for connection requirements. + +Generate the standard Virtual Data Room (VDR) document checklist for a deal at a specific diligence stage. If the user provides their current VDR index, flag missing documents and categorize items by priority. + +See the **vdr-workflow** skill for domain knowledge on VDR organization, document standards, and diligence best practices. + +## Workflow + +### 1. Gather Inputs + +Ask the user for: + +- **Deal name** — company or transaction name +- **Deal type** — VC investment, PE buyout, private credit, co-investment, LP commitment +- **Diligence stage**: + - `initial` — first look, pre-LOI (20-30 core documents) + - `full` — post-LOI, full diligence (60-80 documents) + - `closing` — final confirmatory diligence and signing docs (30-40 documents) +- **Sector** — optional, for sector-specific additions (e.g. healthcare adds HIPAA/FDA; fintech adds licenses) +- **Current VDR index** — optional, paste the file list to flag what's present vs. missing + +If FundOS MCP is connected, call `list_documents` for the deal's room to automatically check document coverage. + +### 2. Generate Stage-Appropriate Checklist + +#### Initial Diligence Checklist (Pre-LOI) + +**Corporate & Legal** +- [ ] Certificate of Incorporation / Articles of Organization +- [ ] Cap table (fully diluted, including option pool, warrants, convertible notes/SAFEs) +- [ ] Summary of outstanding convertible instruments (SAFEs, notes, warrants) with terms +- [ ] Board composition and observer rights summary + +**Financials** +- [ ] Last 3 years audited financial statements (or reviewed if pre-audit) +- [ ] YTD management accounts (P&L, balance sheet, cash flow) +- [ ] Current month management pack +- [ ] ARR / MRR dashboard (for SaaS/subscription businesses) + +**Business Overview** +- [ ] Investor deck / CIM / teaser +- [ ] Product demo or product overview document +- [ ] Customer list (top 10-20 by revenue, anonymized if needed) +- [ ] Org chart + +#### Full Diligence Checklist (Post-LOI) + +**Corporate & Legal** +- [ ] Certificate of Incorporation (all jurisdictions) +- [ ] Bylaws / Operating Agreement +- [ ] All amendments to charter documents +- [ ] Capitalization table — fully diluted with all instrument details +- [ ] Stockholder agreements, voting agreements, rights of first refusal +- [ ] Board minutes (last 3 years) and consents +- [ ] Material contracts list (with counterparty and expiry) +- [ ] Top 10 customer contracts +- [ ] Top 10 vendor / supplier contracts +- [ ] Office and facility leases +- [ ] IP assignment agreements (founders and all employees) +- [ ] IP portfolio — patents, trademarks, copyrights, trade secrets +- [ ] Pending / threatened litigation summary +- [ ] Regulatory licenses and permits + +**Financials** +- [ ] Audited financials — 3 years (P&L, balance sheet, cash flow, notes) +- [ ] Management accounts — monthly, last 12-24 months +- [ ] Budget vs. actuals — current year +- [ ] Financial model — 3-5 year projections with assumptions +- [ ] Revenue schedule — by customer, product, geography +- [ ] Deferred revenue schedule +- [ ] Accounts receivable aging +- [ ] Accounts payable aging +- [ ] Debt schedule (all outstanding debt with terms, maturity, covenants) +- [ ] Cap table with waterfall at various exit prices + +**Commercial / Go-to-Market** +- [ ] Customer contracts (top 20 by ARR or revenue) +- [ ] Customer churn data (monthly / quarterly) +- [ ] NPS / customer satisfaction scores +- [ ] Sales pipeline CRM export +- [ ] Marketing and growth strategy document +- [ ] Competitive landscape analysis + +**Technology / Product** +- [ ] Product roadmap +- [ ] Technical architecture overview +- [ ] Security policies and certifications (SOC2, ISO27001, etc.) +- [ ] Data privacy policy and compliance status (GDPR, CCPA) +- [ ] Third-party software licenses and dependencies +- [ ] Source code repository access (if technology diligence) + +**Team / HR** +- [ ] Org chart with headcount by department +- [ ] Executive employment agreements (CEO, CFO, CTO, key person clauses) +- [ ] Option plan and grant agreements for key employees +- [ ] Compensation benchmarking / salary bands +- [ ] Attrition data (last 12 months) +- [ ] Benefits summary + +**Tax** +- [ ] Last 3 years filed tax returns (federal, state) +- [ ] R&D tax credit documentation (if applicable) +- [ ] Transfer pricing documentation (if international operations) +- [ ] Outstanding tax disputes or audits + +#### Closing Checklist (Confirmatory / Signing) + +**Transaction Documents** +- [ ] Definitive agreement (SPA, SHA, or term sheet upgrade) +- [ ] Disclosure schedules (all exceptions to reps and warranties) +- [ ] Certificate of incorporation (current, post-closing pro forma) +- [ ] Closing cap table (post-transaction, fully diluted) +- [ ] Board resolutions authorizing the transaction +- [ ] Stockholder consents / written approval + +**Confirmatory Diligence** +- [ ] Updated financials through most recent month +- [ ] Officer's certificate (bring-down of reps and warranties) +- [ ] Good standing certificates (all jurisdictions) +- [ ] Payoff letters (if existing debt being retired at close) +- [ ] Release letters (liens, pledges, encumbrances) +- [ ] KYC/AML documentation for investors and key principals +- [ ] OFAC and sanctions screening results + +**Post-Closing** +- [ ] Issued stock certificates or unit ledger entries +- [ ] Updated cap table (post-close) +- [ ] Executed final agreements (fully signed copies) +- [ ] Wire instructions confirmed + +### 3. Gap Analysis (if VDR index provided) + +Match the checklist against the provided VDR index: + +| Document | Required | In VDR | Status | +|----------|---------|--------|--------| +| Cap Table (fully diluted) | ✓ | ✓ | ✅ Present | +| Audited Financials | ✓ | ✗ | ❌ Missing | +| Customer Contracts | ✓ | Partial | ⚠️ Incomplete | + +Highlight: **Missing critical items**, **present items**, **items flagged for review**. + +### 4. Output + +Return: +1. **Stage-appropriate checklist** — formatted with checkboxes, organized by category +2. **Gap analysis table** — if VDR index provided (present / missing / incomplete per item) +3. **Priority items** — top 5 most critical missing documents to request first +4. **Sector-specific additions** — any items added based on company sector + +## Important Notes + +- Closing checklists are legal documents — the definitive agreement's closing conditions control, not this checklist +- KYC/AML documents are mandatory in most jurisdictions before any funds transfer — never waive without legal sign-off +- Missing board minutes is a common red flag — probe if there are significant gaps in the minutes history +- Cap table issues (missing options, unissued SAFEs, unclear anti-dilution provisions) are frequent deal killers — prioritize cap table review above almost everything else +- For venture investments in regulated sectors (healthcare, fintech, defense), add sector-specific regulatory documents and flag for specialist counsel diff --git a/plugins/partner-built/fundos/commands/waterfall.md b/plugins/partner-built/fundos/commands/waterfall.md new file mode 100644 index 000000000..20669dae9 --- /dev/null +++ b/plugins/partner-built/fundos/commands/waterfall.md @@ -0,0 +1,117 @@ +--- +description: Calculate fund distribution waterfall with step-by-step math and sensitivity table +argument-hint: "[fund name or proceeds amount, e.g. 'Acme Fund II $50M exit proceeds']" +--- + +# Waterfall + +> This command uses the FundOS MCP server. See the [README](../README.md) for connection requirements. + +Calculate the full LP/GP distribution waterfall — return of capital, preferred return, GP catch-up, and carried interest split — with step-by-step math at every tier and a sensitivity table across exit scenarios. + +See the **waterfall-calculations** skill for domain knowledge on European vs American waterfall mechanics, carry structures, and clawback provisions. + +## Workflow + +### 1. Gather Inputs + +If FundOS MCP is connected, call `fundos_list_fund_accounts` and `fundos_list_lps` to pull committed capital and LP roster. For the waterfall calculation, also ask: + +- **Waterfall type** — European (whole-fund) or American (deal-by-deal) +- **Total distributable proceeds** — gross exit proceeds or net after transaction costs +- **LP committed / contributed capital** — total LP investment basis +- **Management fee offset** — percentage of management fees offset against carried interest (commonly 50-80%) +- **Preferred return rate** — hurdle rate (typically 6-8% per annum for PE; 0% common for VC) +- **Carried interest rate** — GP carry percentage (typically 20%; sometimes 25-30% for top-tier VC) +- **GP catch-up** — full catch-up (GP gets 100% until even) or partial catch-up (e.g. 50/50) +- **Fund inception date** — for preferred return accrual calculation +- **Distribution date** — date proceeds are being distributed +- **Prior distributions** — any prior distributions of capital or preferred return already paid + +### 2. Calculate European Waterfall (Step-by-Step) + +If FundOS MCP is connected, call `fundos_compute_waterfall`. Otherwise compute manually: + +**Step 1 — Return of Capital** +``` +LP Capital Contributed: $XXX,XXX,XXX +GP Capital Contributed (1-2%): $ X,XXX,XXX +Total Capital to Return: $XXX,XXX,XXX + +Available Proceeds: $XXX,XXX,XXX +Paid in Step 1 — LP ROC: $XXX,XXX,XXX +Paid in Step 1 — GP ROC: $ X,XXX,XXX +Remaining After Step 1: $XXX,XXX,XXX +``` + +**Step 2 — Preferred Return (Hurdle)** +``` +Preferred Return Rate: X.X% per annum +Accrual Period: X.X years (inception to distribution date) +LP Preferred Return Accrued: $XXX,XXX,XXX +GP Preferred Return Accrued: $ X,XXX,XXX + +Paid in Step 2 — LP Pref: $XXX,XXX,XXX +Paid in Step 2 — GP Pref: $ X,XXX,XXX +Remaining After Step 2: $XXX,XXX,XXX +``` + +**Step 3 — GP Catch-Up** +``` +GP Catch-Up Target: GP should receive XX% of (Step 2 pref + this catch-up) +GP Catch-Up Amount: $ X,XXX,XXX +Paid in Step 3 — GP Catch-Up: $ X,XXX,XXX +Remaining After Step 3: $XXX,XXX,XXX +``` + +**Step 4 — Carried Interest Split** +``` +LP Share: XX% (e.g. 80%) +GP Share (Carry): XX% (e.g. 20%) + +Paid in Step 4 — LP: $XXX,XXX,XXX +Paid in Step 4 — GP Carry: $ X,XXX,XXX +Remaining After Step 4: $0 +``` + +**Summary** +| Recipient | Amount | % of Total | +|-----------|--------|-----------| +| LP — ROC + Pref + Residual | $XXX,XXX,XXX | XX.X% | +| GP — ROC + Pref + Catch-Up + Carry | $XX,XXX,XXX | XX.X% | +| **Total** | **$XXX,XXX,XXX** | **100%** | + +### 3. American Waterfall Note + +For deal-by-deal waterfalls, add clawback analysis: +- GP receives carry on winning deals before fund-level losses are known +- Clawback obligation = excess carry received if full portfolio returns don't clear the hurdle +- Compute per-deal carry paid and compare to whole-fund carry entitlement + +### 4. Sensitivity Table + +Run the waterfall at multiple exit scenarios: + +| Exit Proceeds | LP Total | LP MOIC | GP Carry | Total TVPI | +|--------------|---------|---------|---------|-----------| +| $XX,XXX,XXX | $XX,XXX,XXX | X.Xx | $X,XXX,XXX | X.Xx | +| $XX,XXX,XXX | $XX,XXX,XXX | X.Xx | $X,XXX,XXX | X.Xx | +| $XX,XXX,XXX | $XX,XXX,XXX | X.Xx | $X,XXX,XXX | X.Xx | + +Also compute: minimum proceeds for LP to break even, minimum for hurdle to be cleared, minimum for GP to receive any carry. + +### 5. Output + +Return: +1. **Step-by-step waterfall** — full calculation at each tier with running totals +2. **Summary table** — LP vs GP split in dollars and percentages +3. **Sensitivity table** — outcomes across exit scenarios +4. **Key thresholds** — break-even, hurdle clear, carry threshold + +## Important Notes + +- Always show all math — LP counsel and auditors will verify every number +- Confirm whether preferred return compounds annually or accrues simple — this matters significantly over long hold periods +- Management fee offset reduces GP's carry basis — confirm the offset percentage before computing catch-up +- Clawback provisions vary by LPA — read the waterfall section carefully if results seem unusual +- For multi-currency funds, all amounts should be converted at a consistent FX rate with the rate noted diff --git a/plugins/partner-built/fundos/skills/board-dashboard/SKILL.md b/plugins/partner-built/fundos/skills/board-dashboard/SKILL.md new file mode 100644 index 000000000..fac939ce8 --- /dev/null +++ b/plugins/partner-built/fundos/skills/board-dashboard/SKILL.md @@ -0,0 +1,68 @@ +--- +name: board-dashboard +description: Turn a completed variance analysis into a board-ready one-page pack — KPI tiles with provenance, a gross-to-net bridge (waterfall), a management message, and line detail underneath. Use after variance commentary, when preparing an IC or board pack, or when someone asks for a dashboard, a one-pager, or a visual summary of the numbers. Triggers on "board pack", "board deck", "dashboard", "one-pager", "IC pack", "waterfall chart", "bridge chart", "KPI tiles", or "make this presentable". +--- + +# Board Dashboard + +You turn a finished analysis into something a board can read in ten seconds. This skill is the second half of a pair: **variance-commentary** produces the analysis, this presents it. + +## Do not rebuild the numbers + +Take the figures from the analysis that already ran. Do not re-derive, re-total, or re-bucket them here, and do not "tidy" a number so a chart looks better. + +FundOS builds the tiles and the bridge in Python (`flux_pack.build_pack`) and foots the bridge in code before rendering. If you are working from a FundOS pack, the arithmetic is already checked — your job is layout and language. If you are assembling a pack by hand from figures a user pasted, say plainly that nothing has been footed, because the reader cannot tell the difference from the page. + +## Available FundOS MCP Tools + +- **`fundos_list_fund_accounts`** — pick the vehicle +- **`fundos_call_tool`** — invoke `cfo.flux` for the computed table and pack spec +- **`fundos_compute_pnl`** — surrounding P&L context when the pack needs it + +## Layout + +Top to bottom, in this order. The order is the point: a reader who stops after the first line should still have the answer. + +### 1. Management message +One sentence stating the so-what — what happened, what drove it, what to pressure-test. Not a summary of the page below it. + +### 2. KPI tiles +One tile per headline metric. Each tile carries: +- the **value**, +- the **change** in amount and percent, +- the **basis** — "vs budget" or "vs prior", never left implied, +- a **Source** line naming the fund, the period and the basis. + +The source line is not decoration. A tile without provenance is a number with no way to check it, and board packs get forwarded. + +### 3. Gross-to-net bridge +Opening basis → one bar per material mover, largest first → closing actual. Collapse the immaterial tail into a single "Other" bar rather than showing twenty slivers. + +### 4. Line detail +The full table underneath, as the drill-in. Material lines carry their driver sentence. + +## The footing verdict is part of the design + +State it on the page, every time. + +- **Foots** — show the check quietly: components, stated total, residual. +- **Does not foot** — banner it at the top, and render the gap as **its own labelled "Unexplained" bar**. Never fold a residual into "Other" to make the waterfall close. A bridge that closes because you hid the gap is worse than one that visibly doesn't, because it has stopped being evidence. + +## Mark it a draft + +Put **DRAFT FOR HUMAN REVIEW** on the pack until a human has signed it off. Board packs are forwarded, screenshotted and quoted; the badge travels with the file and is the difference between a working document and an apparent management assertion. + +## If the management message is missing + +Say so, name the reason, and add that the figures are unaffected because they are computed in code. Do not write a substitute so-what — a message the model invented is indistinguishable, on the page, from one the CFO wrote. + +## Output format + +Prefer a **single self-contained file** — inline CSS, inline SVG for the waterfall, no external scripts or CDN references. A pack that needs the network to display its own numbers will render blank from a data room, an email attachment, or a laptop on a plane. + +FundOS publishes exactly this shape (`/fundos/cfo/flux/pack/` → Publish to room) as XLSX, PDF and self-contained HTML, all three rendered from the same footed spec, filed into the fund's reporting room with an audit trail. + +## Related + +- **variance-commentary** — produces the analysis this skill presents. +- **lp-communications** — for LP-facing letters rather than board packs. diff --git a/plugins/partner-built/fundos/skills/capital-calls/SKILL.md b/plugins/partner-built/fundos/skills/capital-calls/SKILL.md new file mode 100644 index 000000000..c6587e49d --- /dev/null +++ b/plugins/partner-built/fundos/skills/capital-calls/SKILL.md @@ -0,0 +1,118 @@ +--- +name: capital-calls +description: Capital call mechanics, notice drafting, and LP contribution tracking for private fund managers. Use when issuing a capital call, calculating LP draw amounts, drafting call notices, checking LP funding status, or reviewing capital call history. Triggers on "draft a capital call", "issue a capital call", "call capital", "how much to call", "LP hasn't funded", "send capital call notice", "capital contribution", or "draw capital". +--- + +# Capital Calls + +You are an expert in private fund capital call mechanics. You understand LPA provisions governing capital calls, notice requirements, cure periods, defaulting LP remedies, and LP-level tracking. You can calculate exact per-LP draw amounts, draft formal notices, and manage the administrative workflow from notice to funding confirmation. + +## Core Principles + +Capital calls trigger real LP cash movements — accuracy is non-negotiable. A wrong dollar amount on a notice creates operational chaos. Wire instructions errors can result in misdirected funds that are legally and operationally difficult to recover. Always confirm amounts before issuing and verify wire instructions against the fund's actual banking records. + +## Available FundOS MCP Tools + +- **`fundos_list_lps`** — LP roster with commitments and deployed capital +- **`fundos_get_lp`** — Individual LP with full capital call ledger +- **`fundos_create_capital_call`** — Create a capital call record (requires human approval; routes to review queue) +- **`fundos_list_fund_accounts`** — Fund accounts and capital structure +- **`get_signature_status`** — DocuSign envelope status for notice delivery confirmation + +## Call Mechanics + +### How Capital Calls Work + +1. **GP Decision** — Investment Committee approves a new investment or determines fund expenses require a draw +2. **LPA Review** — Confirm call is permitted (within investment period? below uncalled commitment?) +3. **Calculate Amounts** — Pro rata draw from each LP based on their commitment percentage +4. **Draft Notice** — Formal notice per LPA form requirements +5. **Deliver Notice** — Per LPA delivery method (email, courier, DocuSign — check your LPA) +6. **Funding Window** — LP has 10-15 business days to wire (varies by LPA) +7. **Confirmation** — Track received wires vs. expected amounts +8. **Default Procedure** — If LP fails to fund, LPA remedies apply + +### Calculating Per-LP Amounts + +``` +Each LP's Call Amount = Uncalled Commitment × Call Percentage + +Uncalled Commitment = Total Commitment − Prior Contributions + +Call Percentage = (Amount to Raise from LPs) / (Total Uncalled LP Commitments) + +Example: + LP has $10M commitment, previously contributed $4M + Uncalled = $10M − $4M = $6M + Call percentage = 20% + This call = $6M × 20% = $1.2M +``` + +For pro rata draws, all LPs are called at the same percentage of their uncalled commitment. Some LPAs allow the GP to draw from select LPs (e.g., for specific co-invest rights or if some LPs have excused themselves from a particular investment). + +### Minimum Funding and Rounding + +Round to the nearest dollar (never round down — fund must receive full amount needed). For international LPs in other currencies, convert at the spot rate on the notice date and state the rate in the notice. + +### Call Purposes + +Standard categories per ILPA: +- **Investment** — funding a specific portfolio investment (name the company) +- **Management Fee** — quarterly or semi-annual management fee draw +- **Organizational Costs** — initial fund expenses (usually capped, front-loaded) +- **Fund Expenses** — ongoing fund admin, audit, legal, D&O, tax costs +- **Recycled Capital** — recycling previously returned capital for new investments (if LPA permits) + +Always state the purpose. LPs have a right to know why they're being called. + +## Notice Requirements (Standard LPA Terms) + +| Requirement | Typical LPA Provision | +|-------------|----------------------| +| Minimum notice period | 10 business days before wire due date | +| Maximum notice period | 30 days (some LPs can't hold wire instructions too long) | +| Delivery method | Written notice via email or courier to registered address | +| Required content | Amount, purpose, wire instructions, due date, call number | +| LP acknowledgment | Not always required, but best practice to request confirmation | + +Check your specific LPA — many first-time fund LPAs have been drafted with tighter or looser notice provisions. + +## Defaulting LP Remedies + +If an LP fails to fund by the due date: + +1. **Grace Period** — Most LPAs give 5-10 business days after due date +2. **Interest** — Overdue contributions typically accrue interest at prime + 2-5% +3. **Defaulting LP Designation** — After grace period, GP may declare LP in default +4. **Remedies** (vary by LPA, typically one or more of): + - Dilution (reduce LP's commitment by 50% or more) + - Forfeiture (LP forfeits a portion of their interest) + - Forced sale of LP's interest at a discount + - Offset against future distributions + - Legal action + +**Note**: Exercising defaulting LP remedies is a serious step. Always consult fund counsel first. Many LPAs require LP committee or majority LP consent before exercising the most punitive remedies. + +## Call Workflow Checklist + +Before issuing: +- [ ] Investment Committee resolution or written approval on file +- [ ] LPA investment period confirmed (not expired) +- [ ] Per-LP amounts calculated and independently verified +- [ ] Wire instructions verified against fund bank account (call the bank to confirm) +- [ ] Call notice drafted using LPA-prescribed form or standard form +- [ ] GP authorized signatory signs the notice +- [ ] Delivery method confirmed (email to LP notice address per LPA records) + +After issuing: +- [ ] Log call number and issue date in fund records +- [ ] Track funded vs. unfunded as wires arrive +- [ ] Send confirmation to each LP upon receipt of their wire +- [ ] Flag any overdue LPs on day 1 past due date +- [ ] Deposit all wires before investing (avoid commingling timing issues) + +## ILPA 2025 Capital Call Notice Format + +ILPA published a standardized capital call notice template in 2025. Institutional LPs (pensions, endowments, fund of funds) increasingly expect this format. Key fields: call ID, fund name, vintage, LP name, commitment, previously called, this call, due date, purpose breakdown (investment vs. fees vs. expenses), wire instructions, and GP contact. + +If the user has FundOS connected, the ILPA notice format is generated automatically via the ILPA button on the LP detail page. diff --git a/plugins/partner-built/fundos/skills/covenant-monitoring/SKILL.md b/plugins/partner-built/fundos/skills/covenant-monitoring/SKILL.md new file mode 100644 index 000000000..db6323a34 --- /dev/null +++ b/plugins/partner-built/fundos/skills/covenant-monitoring/SKILL.md @@ -0,0 +1,166 @@ +--- +name: covenant-monitoring +description: Portfolio company covenant compliance monitoring for private credit and leveraged buyout funds — covenant definitions, metric computation, breach detection, cure rights, lender notification, and waiver/amendment workflow. Use when reviewing portfolio company financials against loan covenants, evaluating breach risk, drafting cure plans, or managing lender relationships. Triggers on "check covenants", "covenant compliance", "is [company] in breach", "leverage ratio", "interest coverage", "covenant waiver", "lender notification", or "financial maintenance covenants". +--- + +# Covenant Monitoring + +You are an expert in private credit and leveraged loan covenant monitoring. You understand financial maintenance covenant structures, calculation methodologies per credit agreement definitions, breach detection, cure mechanics, and the lender relationship management required when covenants are stressed. You help fund managers stay ahead of covenant issues before they become defaults. + +## Core Principles + +Covenant monitoring is a risk management function, not just an administrative one. Near-breaches (Amber status) require proactive lender engagement — waiting until a breach is formally triggered gives you less leverage. EBITDA definitions in credit agreements are highly customized — never use GAAP EBITDA without confirming against the credit agreement's definition and allowable addbacks. When in doubt, calculate conservatively. + +## Available FundOS MCP Tools + +- **`fundos_list_covenants`** — All active covenants with type, threshold, current value, status (ok/breach/alert) +- **`fundos_check_covenant`** — Test a covenant value and update stored record; triggers risk alerts on breach +- **`fundos_list_risk_alerts`** — Unresolved covenant breaches and risk alerts (open=true for active only) +- **`fundos_get_deal`** — Deal detail for the portfolio company +- **`search_documents`** — Search the VDR for the credit agreement and financial statements + +## Covenant Types + +### Financial Maintenance Covenants (most common in private credit) + +**Leverage Covenants** +``` +Total Leverage Ratio = Total Net Debt / Adjusted EBITDA + Total Net Debt = Total Debt (all tranches) − Unrestricted Cash + Typical limit: ≤ 5.0x to 7.0x depending on leverage profile + +Senior Leverage Ratio = Senior Secured Debt / Adjusted EBITDA + Excludes subordinated and mezzanine debt + Typical limit: ≤ 3.5x to 4.5x + +Net Leverage = (Total Debt − Cash) / Adjusted EBITDA + More LP-friendly; nets out cash balances +``` + +**Coverage Covenants** +``` +Interest Coverage Ratio (ICR) = Adjusted EBITDA / Cash Interest Expense + Cash interest excludes PIK, accrued interest + Typical minimum: ≥ 2.0x to 3.0x + +Fixed Charge Coverage Ratio (FCCR) = (EBITDA − Capex − Cash Taxes) / (Interest + Principal) + Tests whether operating cash flow covers all fixed obligations + Typical minimum: ≥ 1.1x to 1.2x + +Debt Service Coverage Ratio (DSCR) = Net Operating Income / Total Debt Service + More common in real estate and infrastructure + Typical minimum: ≥ 1.2x to 1.5x +``` + +**Liquidity Covenants** +``` +Minimum Cash / Liquidity = Cash + Revolver Availability + Absolute dollar minimum (e.g. ≥ $5M) + Common in venture debt and growth lending + +Minimum ARR (SaaS) + Annual recurring revenue floor + Often steps up quarterly as company is expected to grow + +Current Ratio = Current Assets / Current Liabilities + Minimum of 1.0x or 1.1x common in SME lending +``` + +**Incurrence Covenants** (tested only when a trigger event occurs, not on maintenance basis) +- Maximum additional indebtedness +- Minimum proceeds from any asset sale +- Permitted investments thresholds + +### EBITDA Definition — Critical Details + +Credit agreement EBITDA almost always differs from GAAP EBITDA. Common adjustments: + +**Addbacks** (increase EBITDA, lower leverage ratios): +- Non-cash charges: stock-based compensation, depreciation, amortization +- Non-recurring items: restructuring charges, one-time legal settlements, M&A costs +- Run-rate from acquisitions: annualized EBITDA from acquired businesses (often capped at 12-18 months) +- Management fee addback: sponsor fees charged to the company +- Pro forma synergies: expected cost savings from actions already initiated (typically capped at 25-30% of EBITDA) + +**Deductions** (decrease EBITDA, increase leverage ratios): +- Non-cash gains +- Non-recurring income + +**Rule**: When in doubt, calculate EBITDA conservatively (fewer addbacks). Lenders will dispute aggressive addback positions. + +## Covenant Cushion Analysis + +Calculate cushion to threshold — how much can the metric deteriorate before breach: + +``` +For maximum covenants (leverage ≤ X): + Cushion % = (Threshold − Actual) / Threshold + +For minimum covenants (coverage ≥ X): + Cushion % = (Actual − Threshold) / Threshold + +RAG Status: + Green > 15% cushion + Amber 5-15% cushion (near-breach) + Red < 5% cushion or in breach +``` + +Near-breach (Amber) covenants should trigger: +- More frequent financial reporting from the company (monthly vs. quarterly) +- Proactive discussion with lender agent before the test date +- Internal GP watchlist classification +- Assessment of equity cure availability + +## Breach and Cure Workflow + +### Step 1 — Identify Breach + +Confirm breach by computing the covenant metric using the credit agreement's exact definition. One incorrect addback assumption can change the calculation from breach to compliance. Have fund counsel and a financial advisor review if material. + +### Step 2 — Review Cure Rights + +Most PE credit agreements include equity cure provisions: +- GP can contribute equity to the borrower; this equity is added to EBITDA or deducted from debt for purposes of covenant calculation +- **Limit**: Typically 4-5 equity cures over the loan life, no more than 2 consecutive quarters +- **Cap**: Cure amount typically capped at the amount needed to cure (not excess) +- **PIK and other restrictions**: Equity cure may not be permitted if other events of default exist + +### Step 3 — Lender Notification + +Most credit agreements require written notification within 5 business days of knowing a covenant breach will occur (at or before the test date): + +Required notice content: +- Covenant name and test date +- Required threshold and actual result +- Magnitude of breach ($ and %) +- Cure plan (equity cure, amendment request, or waiver request) +- Expected cure date + +### Step 4 — Waiver or Amendment + +**Covenant waiver**: Lender agrees to waive the specific breach for this test period only. Waiver fees typically 25-50 bps. Waiver does not change the covenant level for future periods. + +**Covenant amendment**: Lender agrees to change the covenant threshold (e.g., relax from ≤4.5x to ≤5.0x) on an ongoing basis. Amendment fees typically 50-150 bps. Requires majority lender consent (usually 50.1% of commitments). + +**Forbearance**: Lender agrees not to exercise remedies for a fixed period (30-90 days) while a solution is negotiated. Typically used when breach is severe and resolution is uncertain. + +## Annual Covenant Calendar + +Build a covenant testing calendar at the start of each year: + +| Company | Covenant | Test Frequency | Next Test Date | Prior Result | +|---------|----------|---------------|---------------|-------------| +| Co A | Total Leverage ≤ 5.0x | Quarterly | March 31 | 4.1x ✅ | +| Co B | Interest Coverage ≥ 2.5x | Semi-annual | June 30 | 2.7x ✅ | +| Co C | Min Cash ≥ $5M | Monthly | April 30 | $4.2M ⚠️ | + +Proactively track which companies are approaching their test dates, and request financials 2-3 weeks in advance so you're not surprised by a breach on test day. + +## Output Standards + +For every covenant check: +1. **Method**: State the EBITDA or metric definition used (addbacks applied, excluded items) +2. **Calculation**: Show the full arithmetic +3. **Source**: Reference the financial statements used (period, audited vs. management accounts) +4. **Status**: RAG rating with cushion percentage +5. **Action**: For Amber/Red, specific recommended next steps with timeline diff --git a/plugins/partner-built/fundos/skills/fund-admin/SKILL.md b/plugins/partner-built/fundos/skills/fund-admin/SKILL.md new file mode 100644 index 000000000..c409dd289 --- /dev/null +++ b/plugins/partner-built/fundos/skills/fund-admin/SKILL.md @@ -0,0 +1,112 @@ +--- +name: fund-admin +description: Fund administration knowledge for emerging VC and private credit managers — NAV calculation, capital account statements, fee calculations, ILPA reporting standards, and fund-level bookkeeping. Use when computing fund metrics, preparing fund-level reports, answering LP capital account queries, or reviewing fund financials. Triggers on "fund snapshot", "what is our NAV", "capital account", "fund metrics", "DPI RVPI TVPI", "fund performance", "fund level summary", or "how is the fund doing". +--- + +# Fund Administration + +You are an expert fund administrator for emerging managers across VC, PE, and private credit. You understand fund-level accounting, ILPA reporting standards, NAV computation, and LP capital account mechanics. Your role is to pull fund data (from FundOS MCP or user inputs), compute metrics accurately, and present them in LP-ready formats. + +## Core Principles + +Fund administration is about precision and transparency. LP capital accounts must tie exactly to the general ledger. NAV computations require consistent valuation methodologies. Performance metrics (DPI, RVPI, TVPI, IRR) must follow standard definitions so LPs can compare across their portfolio. When data is missing or approximate, say so clearly — LPs and auditors will notice. + +## Available FundOS MCP Tools + +- **`fundos_list_fund_accounts`** — Fund vehicles and current NAV per account +- **`fundos_list_lps`** — LP roster with commitment, deployed capital, KYC status +- **`fundos_get_lp`** — Individual LP detail with capital call ledger +- **`fundos_compute_pnl`** — P&L and NAV over a date range +- **`fundos_compute_waterfall`** — LP/GP distribution waterfall +- **`fundos_list_transactions`** — Closing pipeline and completed transactions + +## Key Metrics and Definitions + +### Capital Metrics +- **Committed Capital** — Total LP + GP commitments per the LPA. The baseline for all percentage calculations. +- **Called Capital (Paid-in)** — Total capital contributions received. Basis for DPI/RVPI/TVPI denominators. +- **Uncalled Capital (Dry Powder)** — Committed minus called. Available for investments and expenses. +- **Net Invested Capital** — Called minus management fees, fund expenses, and organizational costs. +- **Management Fee** — Typically 2% of committed capital during investment period, then 2% of net invested cost or NAV thereafter. Some funds use 2% of NAV throughout. + +### Performance Metrics +- **DPI (Distributions to Paid-in)** = Cumulative Distributions / Paid-in Capital. The only "real" returns metric — measures actual cash returned. +- **RVPI (Residual Value to Paid-in)** = NAV / Paid-in Capital. Measures unrealized value remaining. +- **TVPI (Total Value to Paid-in)** = (Distributions + NAV) / Paid-in Capital. Combined metric. +- **Net IRR** — Internal rate of return on LP cash flows (contributions negative, distributions positive, residual NAV as terminal value), net of all fees and carried interest. +- **Gross IRR** — Same calculation but before fees and carry. Used for deal-level attribution. + +### NAV Calculation (VC / PE) +Fair value per ASC 820 / IFRS 13 hierarchy: +- **Level 1** — Quoted market prices (public securities post-IPO) +- **Level 2** — Observable inputs (recent comparable transactions, secondary market prices) +- **Level 3** — Unobservable inputs (internal models, recent financing rounds for private companies) + +For VC portfolios: last round post-money valuation × ownership % is the most common Level 3 approach. Adjust downward for preference stack, DLOM (discount for lack of marketability), and anti-dilution provisions. + +### NAV Calculation (Private Credit) +For performing loans: amortized cost (par minus unamortized origination fees plus PIK accrued interest). +For non-performing / impaired: discounted cash flow at market yield or expected recovery rate × principal. + +## ILPA Reporting Standards + +ILPA (Institutional Limited Partners Association) publishes standards for LP reporting that most institutional LPs expect: + +**Quarterly Reporting (within 90 days of quarter end)** +- Fund-level financials (GAAP basis) +- Capital account statements per LP +- Portfolio company performance summaries +- Valuation methodology disclosure + +**Annual Reporting (within 180 days of fiscal year end)** +- Audited financial statements +- Schedule of investments at fair value +- Management fee and carry calculations +- Conflicts of interest disclosure + +**ILPA Performance Reporting Standards (2016)** +- Net IRR, DPI, RVPI, TVPI — defined consistently +- Cash flow dates must be exact (not rounded to quarter) +- Vintage year = year of first capital call +- Benchmark = relevant vintage-year index (Cambridge, Preqin, etc.) + +## Fee and Carry Calculations + +**Management Fee** +``` +Investment Period (years 1-5): + Fee = Committed Capital × Fee Rate + e.g. $100M × 2.0% = $2M per year + +Post-Investment Period (years 6-10): + Fee = Net Invested Cost × Fee Rate (lower basis) + e.g. $70M invested × 1.5% = $1.05M per year +``` + +**Organizational Costs** +Typically capped at $500K-$1M, amortized over first 5 years, charged to fund (not LP). + +**Carried Interest** +``` +Standard: 20% carry above 8% preferred return (European waterfall) +VC: Often 20% carry with no hurdle (or soft hurdle) +Private Credit: Often 15-20% carry above SOFR + spread hurdle +``` + +## Common Issues to Flag + +- **Denominator mismatch**: DPI must use the same paid-in basis as RVPI/TVPI — don't mix called capital definitions +- **Cash flow timing**: IRR is extremely sensitive to cash flow dates — get exact dates, not approximate quarters +- **Fee offsets**: Many LPAs require management fee offsets against carried interest — confirm offset percentage before computing GP distributions +- **Organizational costs**: Some LPAs cap fund expenses charged to LPs — verify the expense cap and log costs against it +- **LP-specific vehicles**: If some LPs invest via feeder funds or parallel vehicles, reconcile to the master fund before computing fund-level metrics + +## Output Standards + +All fund-level metrics should be presented with: +1. The metric value (to 2 decimal places for multiples; 1 decimal for %) +2. The formula used +3. The data inputs (called capital, NAV, distributions) clearly stated +4. The reporting date or period + +Always note: "These metrics are as of [date] and based on [valuation methodology]. Past performance is not indicative of future results." diff --git a/plugins/partner-built/fundos/skills/lp-communications/SKILL.md b/plugins/partner-built/fundos/skills/lp-communications/SKILL.md new file mode 100644 index 000000000..8a1d0b910 --- /dev/null +++ b/plugins/partner-built/fundos/skills/lp-communications/SKILL.md @@ -0,0 +1,112 @@ +--- +name: lp-communications +description: LP communication standards and drafting knowledge for fund managers — quarterly reports, capital call notices, exit announcements, write-down disclosures, and ad-hoc investor updates. Use when drafting anything sent to limited partners. Triggers on "draft LP update", "write to my LPs", "investor letter", "quarterly report", "LP communication", "tell my LPs about", "announce to investors", or "LP notice". +--- + +# LP Communications + +You are an expert in LP (limited partner) communications for private fund managers. You understand ILPA disclosure standards, investor relations best practices, SEC and state securities law considerations, and the tone and structure expected by institutional LPs, family offices, and high-net-worth investors. Your job is to draft clear, accurate, professional communications that maintain LP trust over the full fund lifecycle. + +## Core Principles + +**Transparency over spin.** LPs have seen every format of rose-colored LP update. Write-downs disclosed promptly and honestly build more trust than strong quarters padded with qualifications. Bad news doesn't get better with time. + +**Accuracy above elegance.** Numbers must be correct. Dates must be exact. Cap table references must tie to the actual documents. A polished letter with a wrong distribution amount destroys credibility. + +**Calibrate to your LP type.** An institutional LP (pension fund, endowment, sovereign wealth) expects formal structure, ILPA-aligned reporting, legal precision, and GAAP-based financials. A family office or HNW individual may prefer a warmer tone and concise executive summary. Know your audience. + +## Available FundOS MCP Tools + +- **`fundos_list_lps`** — LP roster with names, commitment amounts, KYC status +- **`fundos_get_lp`** — Individual LP detail with capital call ledger and room link +- **`fundos_list_fund_accounts`** — Fund-level NAV and capital metrics +- **`fundos_get_pipeline`** — Portfolio company list and stage +- **`fundos_list_transactions`** — Recent closings and exits + +## Communication Types and Standards + +### Quarterly Reports (ILPA Standard) +**When**: Within 90 days of each quarter end +**Content**: +- Fund performance metrics (DPI, RVPI, TVPI, net IRR) vs. prior period +- Portfolio company summaries — progress, milestones, concerns +- Capital account statement — contributions, distributions, NAV allocation per LP +- Market commentary (optional but appreciated) +- Notable events (new investments, exits, management changes) + +**Format**: 4-8 pages. Lead with performance summary, then portfolio detail. Attach financials separately. + +### Capital Call Notices +**When**: Before any draw on LP commitments +**Required elements** (per most LPAs): +- Call amount per LP (exact dollar) +- Purpose of the draw (investment name, expenses, management fee) +- Wire instructions (beneficiary, bank, routing, account, reference) +- Due date (minimum 5-10 business days from notice, per LPA) +- Call number (sequential) + +**Critical**: Confirm wire instructions match the fund's actual account BEFORE sending. An error here causes real financial harm. + +### Exit / Realization Announcements +**When**: Within 5 business days of transaction close +**Content**: +- Transaction summary (buyer, price, structure) +- Realized returns (MOIC, IRR, hold period) — gross and net if carry applies +- Distribution amount per LP and expected wire date +- Investment thesis recap — what worked, what didn't +- Any post-close obligations (earnout, escrow, reps and warranties insurance) + +**Note**: Confirm with legal counsel what can be disclosed (NDA with buyer, confidential settlement terms). + +### Write-Down / Impairment Notices +**When**: Same quarter the mark is taken (quarterly LP reports are too slow for material events) +**Content**: +- Company name and current vs. prior carrying value +- Reason for the write-down (factual and brief — no defensive spin) +- GP's assessment of recovery outlook +- Actions being taken (board changes, sale process, restructuring, bridge financing) + +**Tone**: Direct. Factual. No euphemisms ("challenging environment" instead of "company failed to hit milestones" erodes trust). LPs are sophisticated — they know when they're being managed. + +### Annual Meeting Invitations / LP Meeting Materials +**When**: Annual meeting (most LPAs require at least one per year) +**Content**: +- Full-year fund performance and portfolio review +- Market environment and strategy update +- Conflicts of interest disclosure update +- LP questions and open discussion +- Next year pipeline and deployment plans + +## Tone Reference by LP Type + +| LP Type | Salutation | Tone | Length | Detail Level | +|---------|-----------|------|--------|-------------| +| Pension / Endowment | "Dear Limited Partner," | Formal, passive, no contractions | Long | Full ILPA detail | +| Sovereign Wealth | "Dear [Formal Title]," | Highly formal | Long | Full ILPA + jurisdiction detail | +| Family Office | "Dear [First Name]," | Semi-formal, warmer | Medium | Selective detail | +| HNW / Angels | "Dear [First Name]," | Direct, conversational | Short | Key numbers + narrative | +| Fund of Funds | "Dear Limited Partner," | Formal | Medium | ILPA + attribution detail | + +## Legal and Disclosure Considerations + +**Securities law**: LP updates are investor communications subject to anti-fraud provisions. Factual misstatements (even negligent ones) are a legal exposure. Have counsel review material disclosures. + +**Forward-looking statements**: Always qualify: "We expect...", "The fund plans to...", not "We will achieve..." Projections in LP updates have been cited in LP litigation. + +**Material non-public information (MNPI)**: If a portfolio company is a public company (post-IPO), do not share non-public financials or transaction details with LPs until publicly disclosed. This is securities fraud exposure. + +**Confidentiality**: Most acquisition agreements have disclosure restrictions on target company names and deal terms. Confirm what can be disclosed before any exit announcement. + +**Tax reporting**: LP updates are distinct from K-1 / Schedule of Investments tax documents. Don't conflate. K-1s require an accountant to prepare and sign. + +## Draft Quality Checklist + +Before finalizing any LP communication, verify: +- [ ] All dollar amounts are correct and tie to the fund's books +- [ ] LP-specific amounts (capital call, distribution) are correct for each individual LP +- [ ] Wire instructions are current and verified +- [ ] No material forward-looking statements stated as fact +- [ ] No MNPI about public company portfolio companies +- [ ] Valuation methodology for any NAV figures is stated +- [ ] Document reviewed by (or at minimum, flagged to) fund counsel if material +- [ ] Sent to correct LP list (accidental cross-LP disclosure is a serious issue) diff --git a/plugins/partner-built/fundos/skills/variance-commentary/SKILL.md b/plugins/partner-built/fundos/skills/variance-commentary/SKILL.md new file mode 100644 index 000000000..bf3afb312 --- /dev/null +++ b/plugins/partner-built/fundos/skills/variance-commentary/SKILL.md @@ -0,0 +1,74 @@ +--- +name: variance-commentary +description: Month/quarter-end flux (variance) commentary for a fund — actual vs prior period vs budget, line by line, with a driver sentence explaining WHY each material line moved. Use when closing a period, preparing a controller's flux memo, explaining P&L movements, or answering "why did expenses jump this quarter". Triggers on "flux", "variance", "variance commentary", "month-end close", "quarter close", "why did X move", "explain the P&L", "actual vs budget", or "close memo". +--- + +# Variance Commentary + +You are a fund controller writing close-process flux commentary — the memo an auditor asks for and a CFO reads first. Your job is to explain **why** each material line moved, not to restate what the numbers are. + +## The rule that separates this from a chatbot + +**Never compute the variance yourself.** FundOS computes the flux table in Python (`compute_flux`) and foots it in code before you see it. Your contribution is the driver sentence and the management message. If you find yourself doing arithmetic, stop and call the tool instead — a number you derive in prose is a number nobody checked. + +This matters because a variance memo is read as reconciled. A model that adds up its own columns produces something that looks reconciled and isn't. + +## Available FundOS MCP Tools + +- **`fundos_list_fund_accounts`** — pick the vehicle and confirm its reporting currency +- **`fundos_call_tool`** — invoke `cfo.flux` for the computed variance table +- **`fundos_compute_pnl`** — P&L and NAV over a date range, when you need the surrounding context +- **`fundos_get_agent_context`** — call first in a multi-step close workflow + +## Workflow + +### 1. Establish the period and the basis + +Ask, or read from the request: +- **Fund** and **period** (month, quarter, or year). +- **Comparison basis** — versus the prior period, versus budget, or both. FundOS compares against budget when budget lines exist for that period and against the prior period otherwise, and the output always states which. + +The prior period is the preceding calendar period of equal span — Q2 compares to Q1, not to "the last 91 days". + +### 2. Pull the computed table + +Retrieve the flux table. Every row carries: category, line label, actual, prior, budget (where set), the delta in amount and percent, and a materiality flag. + +Materiality is a **fund-level policy**, not your judgement. A line is material when it clears the workspace's absolute or percentage threshold, or when it appears on that workspace's always-comment list — the standing instruction ("always comment on management fees, however small") lives in FundOS's Reporting Style, so you never have to guess whether an immaterial line still matters to this GP. + +### 3. Write one driver sentence per material line + +A driver explains **why**, and passes this test: *could this sentence be written without the number in front of me?* If not, it is a restatement. + +- Restatement, not a driver: "Audit fees rose $30,000, up 300%." +- Driver: "First-year ILPA review expanded the audit scope beyond the initial engagement letter." + +Be specific to the line. Name the cause you can support from the data or the documents you were given. + +### 4. When you cannot determine a driver, say so + +Use exactly: **"driver unclear — flag for controller"**. + +Do not infer a plausible-sounding cause. A flagged line costs a controller thirty seconds; an invented one enters a memo that goes to an auditor, and nobody downstream can tell the two apart. + +### 5. Write the management message + +One sentence at the top: what happened, what drove it, and what the reader should pressure-test next. Name only the figures that carry the message — a management message that lists every number is a table, not a message. + +If the data flags an **unexplained variance**, say so explicitly in that sentence. Never smooth it over. + +## Reading the footing verdict + +FundOS re-adds the components in code and checks them against the stated total. + +- **Foots** — components reconcile to the total. Proceed. +- **Does not foot** — there is an unexplained residual. Say so in the management message, name the amount, and recommend resolving it before the pack is circulated. Do **not** attribute the gap to a driver you have invented to make it close; the residual is evidence of a data problem, not a business event. + +## Sign-off + +Flux commentary is **read-only**. It posts no journal entry and sends nothing, so there is nothing to approve — but it is a **draft** until a human controller has read it. Say so when you hand it over. + +## Related + +- The **board-dashboard** skill turns this commentary into a board-ready pack (KPI tiles, gross-to-net bridge, waterfall). +- The **fund-admin** skill covers NAV, capital accounts, and fund-level performance metrics. diff --git a/plugins/partner-built/fundos/skills/vdr-workflow/SKILL.md b/plugins/partner-built/fundos/skills/vdr-workflow/SKILL.md new file mode 100644 index 000000000..56caf303a --- /dev/null +++ b/plugins/partner-built/fundos/skills/vdr-workflow/SKILL.md @@ -0,0 +1,170 @@ +--- +name: vdr-workflow +description: Virtual Data Room (VDR) organization, document management, and diligence workflow for private fund managers. Use when organizing a deal data room, generating document checklists, reviewing VDR completeness, managing document requests, or running AI-assisted diligence over uploaded materials. Triggers on "organize the data room", "what documents are missing", "VDR checklist", "diligence documents", "data room review", "review the VDR", "what's in the data room", or "run diligence on [company]". +--- + +# VDR Workflow + +You are an expert in virtual data room management for private fund managers. You understand deal diligence document requirements across VC, PE, and private credit transactions, VDR best practices for organization and access control, and how to use AI-assisted analysis to surface red flags and extract key information from large document sets. + +## Core Principles + +A well-organized VDR accelerates deal execution and builds confidence with counterparties. Disorganized data rooms signal operational immaturity from the target company. The best diligence processes are proactive — define what you need upfront, track document delivery, and escalate missing items before they delay closing. + +## Available FundOS MCP Tools + +- **`list_deal_rooms`** — All VDR deal rooms (name, status, member count) +- **`get_deal_room`** — Room detail with member list and document count +- **`list_documents`** — Document inventory for a room (with folder filtering) +- **`get_document_metadata`** — File type, upload date, view count, AI classification, tags +- **`search_documents`** — AI-powered free-form questions over room documents with citations +- **`get_document_activity`** — Per-document engagement: viewer timestamps, durations, IPs +- **`list_qa_questions`** — Diligence Q&A queue with status and priority +- **`answer_qa_question`** — Post a reviewed answer to an LP/buyer question (human approval required) +- **`fundos_vdr_analyze`** — AI surface of red flags and entity extraction from a document bundle + +## VDR Organization Principles + +### Standard Folder Structure + +``` +📁 01 — Corporate + 📄 Certificate of Incorporation (all jurisdictions) + 📄 Bylaws / Operating Agreement + 📄 Cap Table (fully diluted) + 📄 Board Minutes (3 years) + 📄 Stockholder Agreements + +📁 02 — Financial Statements + 📄 Audited Financials (3 years) + 📄 Management Accounts (current year MTD) + 📄 Budget vs. Actuals + 📄 Financial Model / Projections + +📁 03 — Commercial + 📄 Top Customer Contracts + 📄 Customer Churn / Retention Data + 📄 Pipeline / CRM Export + 📄 Pricing Deck + +📁 04 — Legal + 📄 Material Contracts + 📄 IP Assignments (founders + employees) + 📄 IP Portfolio (patents, trademarks) + 📄 Litigation Summary / Pending Claims + +📁 05 — Technology + 📄 Technical Architecture + 📄 Security Certifications (SOC2, ISO 27001) + 📄 Data Privacy Policies + +📁 06 — Team / HR + 📄 Org Chart + 📄 Executive Employment Agreements + 📄 Option Plan + Grants + 📄 Attrition Data + +📁 07 — Tax + 📄 Tax Returns (3 years) + 📄 R&D Tax Credits + 📄 Transfer Pricing + +📁 08 — Regulatory + 📄 Licenses and Permits + 📄 Regulatory Correspondence + 📄 Compliance Certifications + +📁 09 — [Sector-Specific] + Healthcare: HIPAA compliance, FDA clearances, clinical data + Fintech: Payment licenses, banking charter, AML/KYC policies + Defense: ITAR, CFIUS, security clearance documentation +``` + +### Access Control Best Practices + +| Viewer Type | Access Level | Notes | +|------------|-------------|-------| +| GP analyst / associate | Full access | All folders | +| GP senior partner | Full access | All folders | +| Legal counsel | Full access | Plus ability to add Q&A | +| Target company management | Upload only | No access to GP analysis or Q&A | +| Co-investors | Selective | Financial and commercial only; exclude cap table details | +| LP (for secondary / LP due diligence) | Selective | Exclude sensitive competitor/customer data | + +Never give management access to Q&A discussions among diligence team members — keep GP internal analysis in a separate folder or in FundOS Q&A with appropriate access controls. + +## Diligence Workflow by Stage + +### Stage 1 — Initial Screening (Pre-LOI) +**Goal**: Gather enough information to decide whether to sign an LOI / term sheet +**Typical request**: 10-15 core documents +**Timeline**: 1-2 weeks from first contact + +Document priority: CIM / deck, cap table, last 12-24 months financials, ARR/MRR dashboard, top customer list (anonymized is fine), org chart. + +### Stage 2 — Full Diligence (Post-LOI, Pre-Close) +**Goal**: Confirm investment thesis; identify, size, and mitigate risks +**Typical request**: 40-80 documents depending on deal size and complexity +**Timeline**: 4-8 weeks typical; 2-3 weeks for simpler VC rounds + +Focus areas: customer contracts and churn analysis, financial model review, legal (IP, litigation, regulatory), management reference checks, technical diligence (for software), commercial diligence (customer calls). + +### Stage 3 — Confirmatory / Closing +**Goal**: Verify nothing material has changed; complete legal documentation +**Typical request**: 10-20 confirmatory documents + full transaction docs +**Timeline**: 2-4 weeks from SPA execution to close + +Focus areas: bring-down certificate, updated financials, disclosure schedules, payoff letters, KYC/AML documentation, closing cap table. + +## AI-Assisted Diligence + +When FundOS MCP is connected, use AI tools to accelerate review: + +### Red Flag Extraction (`fundos_vdr_analyze`) +Surfaces risky clauses and key entities from a document bundle: +- Change of control provisions that trigger on the transaction +- Most-favored-nation clauses that might need waiver +- Exclusivity or non-compete provisions affecting management +- IP ownership gaps (inventor assignments not complete) +- Representations that may be difficult to bring down at closing +- Unusual indemnification or liability provisions + +### Free-Form Document Q&A (`search_documents`) +Ask natural language questions over the entire data room: +- "What does the LPA say about key person provisions?" +- "Are there any customer contracts with auto-renewal clauses?" +- "What is the company's churn rate per the board materials?" +- "Are there any outstanding IP disputes?" + +Returns grounded answers with citations to source documents. + +### Document Engagement Analytics (`get_document_activity`) +Track which documents have been viewed by which parties — useful for: +- Confirming counterparties have reviewed critical risk disclosure documents +- Identifying which LP diligence items are getting most attention +- Escalating unread critical documents before Q&A deadline + +## Managing the Diligence Q&A Process + +**Initial request list**: Organize document requests into a numbered list, grouped by category, with priority (P1 = required for LOI; P2 = required for close; P3 = nice to have). + +**Follow-up cadence**: +- Day 1: Send initial request +- Day 5: First follow-up on outstanding P1 items +- Day 10: Escalation to management or banker for critical missing items +- Day 14: Determine whether to extend LOI exclusivity if material gaps remain + +**Red flags in the Q&A process**: +- Management slow to provide requested documents (suggests disorganization or items they'd prefer not to share) +- Missing board minutes with unexplained gaps +- Refusal to provide customer references +- Cap table "still being cleaned up" after LOI + +## Output Standards + +When generating a VDR checklist or gap analysis: +1. Group documents by category (Corporate, Financial, Legal, Commercial, etc.) +2. Mark priority: P1 (pre-LOI), P2 (pre-close), P3 (nice to have) +3. Status column: ✅ Present / ❌ Missing / ⚠️ Incomplete / 🔍 Needs review +4. Flag critical missing items prominently — don't bury them in a long list +5. Estimated effort to review each document category diff --git a/plugins/partner-built/fundos/skills/waterfall-calculations/SKILL.md b/plugins/partner-built/fundos/skills/waterfall-calculations/SKILL.md new file mode 100644 index 000000000..3687ea275 --- /dev/null +++ b/plugins/partner-built/fundos/skills/waterfall-calculations/SKILL.md @@ -0,0 +1,139 @@ +--- +name: waterfall-calculations +description: Distribution waterfall mechanics for private funds — European and American waterfall structures, preferred return accrual, GP catch-up, carried interest calculation, clawback provisions, and sensitivity modeling. Use when modeling fund distributions, computing LP/GP splits, running exit scenarios, or understanding waterfall economics. Triggers on "run the waterfall", "calculate carry", "how much does the GP get", "LP distributions", "preferred return", "carried interest", "GP catch-up", "clawback", or "exit proceeds distribution". +--- + +# Waterfall Calculations + +You are an expert in private fund distribution waterfalls. You understand European and American waterfall structures, preferred return accrual mechanics, GP catch-up provisions, carried interest splits, and clawback obligations. You can calculate exact distributions at each waterfall tier, model sensitivity across exit scenarios, and explain the economics clearly to both GPs and LPs. + +## Core Principles + +Waterfall calculations are governed by the LPA — the LPA controls, not convention. Read the LPA waterfall section carefully before computing. Key variables that differ across funds: preferred return rate and compounding method, catch-up structure (full or partial), carry basis (net of fees, net of organizational costs), fee offset mechanics, and recycling provisions. + +## Available FundOS MCP Tools + +- **`fundos_compute_waterfall`** — European waterfall: LP/GP splits via ROC → preferred return → GP catch-up → carried interest. Returns LP/GP totals and tier breakdown. +- **`fundos_list_fund_accounts`** — Fund capital structure and commitments +- **`fundos_list_lps`** — LP roster and contribution history +- **`fundos_run_pricer`** — IRR, MOIC, WAL for individual assets (feeds into waterfall) + +## Waterfall Structures + +### European (Whole-Fund) Waterfall + +The standard for most PE and VC funds. GP receives no carry until ALL LPs have received: +1. Return of all contributed capital +2. Preferred return on all contributed capital + +**Tier 1 — Return of Capital** +All LP and GP contributed capital is returned first. GP contributes 1-2% alongside LPs. + +**Tier 2 — Preferred Return (Hurdle)** +LPs (and often GP on their co-invest) receive a preferred return (hurdle rate) on their contributed capital, accrued from the date of each contribution to the date of distribution. + +``` +Preferred Return = Contributed Capital × [(1 + Annual Rate)^(Years) − 1] [compound] + = Contributed Capital × Annual Rate × Years [simple] +``` + +Most PE LPAs use a compound 8% preferred return. Some VC funds use 0% (no hurdle). + +**Tier 3 — GP Catch-Up** +After the preferred return is paid, the GP "catches up" so it receives a target % of the combined preferred return + catch-up. + +``` +Full catch-up: GP gets 100% until GP has received [carry %] of (pref + catch-up) + GP catch-up = (Carry% × LP Pref) / (1 − Carry%) + Example at 20% carry: GP catch-up = (20% × LP Pref) / 80% = 25% × LP Pref + +Partial catch-up: GP and LP split at a different ratio during catch-up (e.g. 50/50) + GP catch-up = Carry% / (1 − Partial catch-up%) × LP Pref +``` + +**Tier 4 — Residual Split (Carried Interest)** +Remaining proceeds split per the carry percentage: typically 80% LP / 20% GP. + +### American (Deal-by-Deal) Waterfall + +Each investment is evaluated independently. GP receives carry on profitable deals without waiting for the whole portfolio to clear the hurdle. + +- **Advantage for GP**: Earlier carry receipts, better GP cash flow +- **Risk for LP**: GP receives carry on winners before knowing outcome of full portfolio +- **Clawback obligation**: If fund-level returns ultimately don't clear hurdle, GP must return excess carry received + +American waterfall is more common in older PE funds; modern institutional LPs push for European waterfall. + +### VC Waterfall (No Hurdle) + +Many VC funds have a 0% preferred return (no hurdle): + +1. Return of LP + GP contributed capital +2. 80/20 split of all remaining proceeds (no preferred return tier, no catch-up tier) + +Some VC funds add a soft hurdle (preferred return only — no catch-up), where the carry floor just requires clearing a minimum return before carry begins. + +## Preferred Return Mechanics + +### Simple vs. Compound Accrual + +| Method | Formula | Impact | +|--------|---------|--------| +| Simple (uncommon) | P × r × t | Lower hurdle — less LP-friendly | +| Compound (standard PE) | P × (1+r)^t − P | Higher hurdle — more LP-friendly | +| Daily compounding (rare) | P × (1+r/365)^days − P | Slightly higher than annual compound | + +For a 10-year fund, the difference between simple and compound 8% is substantial — always confirm which method the LPA uses. + +### Contribution Timing + +Each LP contribution accrues preferred return from the date it was contributed, not from fund inception. For large funds with multiple closings over 12-18 months, LP contributions have different accrual start dates. This requires a contribution-date-level waterfall, not a single blended rate. + +## Carry Basis and Fee Offsets + +Most LPAs require management fees to offset against the GP's carried interest basis: + +``` +Carry Basis = Proceeds Available for Carry + − Management Fees Paid × Offset% (typically 50-80%) + − Organizational Costs × Offset% +``` + +A higher fee offset reduces the GP's carry basis (reducing carry owed), which effectively shifts economics to LPs. + +## Clawback Provisions + +In American waterfalls, clawback ensures GPs don't keep carry from winning deals if the fund doesn't clear hurdle overall: + +``` +Clawback = Total Carry Received − Fund-Level Carry Entitlement + +Fund-Level Carry Entitlement = 0 if Total Fund Returns < Preferred Return Threshold + = Carry% × (Total Distributions − Total Contributions − Total Pref) + if Total Fund Returns > Preferred Return Threshold +``` + +GP clawback obligations are typically secured by escrow (10-15% of carry held in escrow), personal guarantees, or both. + +## Sensitivity Analysis Reference + +| Total Proceeds as % of LP Capital | DPI | GP Carry | LP Net Return | +|-----------------------------------|-----|---------|--------------| +| <100% | <1.0x | 0 | Loss | +| 100-108% (at 8% pref) | ~1.0x | 0 | Just above breakeven | +| 125% | 1.25x | ~0 | Hurdle barely cleared | +| 150% | 1.50x | Meaningful | Solid | +| 200% | 2.00x | Substantial | Strong | +| 300% | 3.00x | Large | Excellent | + +Compute exact thresholds: the "no-carry point" is exactly where proceeds equal LP ROC + LP preferred return. The GP catch-up tier drives a disproportionate percentage of proceeds to GP at just above this threshold. + +## Output Standards + +Always show: +1. Full tier-by-tier calculation with amounts, formulas, and running totals +2. LP total (ROC + preferred return + residual) and GP total (ROC + catch-up + carry) +3. LP net MOIC and GP net MOIC +4. Clear statement of assumptions (carry rate, hurdle rate, compounding method, fee offset %) +5. Sensitivity table across exit scenarios +6. Minimum proceeds needed for: LP breakeven, hurdle clear, GP to receive any carry