From carta-cap-table
Analyze cap structure patterns across the portfolio as market benchmarks. Use when asked about market benchmarks, typical option pool sizes, average SAFE terms, what's normal for a Series A, cap structure patterns, or portfolio-wide statistics.
npx claudepluginhub carta/plugins --plugin carta-cap-tableThis skill uses the workspace's default tool permissions.
Compute portfolio-wide benchmarks from your own Carta data: option pool sizes, SAFE valuation caps, and round sizes. Useful for sanity-checking a new deal's terms against your existing portfolio.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Compute portfolio-wide benchmarks from your own Carta data: option pool sizes, SAFE valuation caps, and round sizes. Useful for sanity-checking a new deal's terms against your existing portfolio.
Note: This reflects your firm's portfolio, not Carta-wide market data. Present results as "portfolio benchmarks" not "market data."
No inputs required — this skill loops the full portfolio automatically. Cap at 20 companies.
list_accounts — get all portfolio companiesfetch("cap_table:get:cap_table_by_share_class", {"corporation_id": corporation_id}) — option pool datafetch("cap_table:get:convertible_notes", {"corporation_id": corporation_id}) — SAFE/note termsfetch("cap_table:get:financing_history", {"corporation_id": corporation_id}) — round sizesFrom cap table (option pool):
option_plans[].authorized_shares: shares authorized per plantotals.total_fully_diluted: total fully diluted share countFrom convertible notes:
price_cap: SAFE/note valuation capdiscount_percent: discount rate (e.g. "20.00" = 20%)interest_rate: annual interest rateis_debt: false = SAFE, true = convertible noteFrom financing history:
round_name: round namecash_paid: amount paid per security (sum by round_name for round total)issue_date: close dateSee Step 4 below. Present as benchmark tables grouped by metric.
Call list_accounts. Filter to corporation_pk: accounts. Extract up to 20 numeric corporation IDs.
For each company, fetch in sequence:
Cap table by share class (for option pool %):
fetch("cap_table:get:cap_table_by_share_class", {"corporation_id": corporation_id})option_plans[]: sum authorized_shares across all planstotals.total_fully_diluted: compute option pool % = option_pool_authorized / total_fully_dilutedSAFE / convertible note terms:
fetch("cap_table:get:convertible_notes", {"corporation_id": corporation_id})price_cap, discount_percent, interest_rate, is_debt (false=SAFE, true=note)Financing history (for round sizes):
fetch("cap_table:get:financing_history", {"corporation_id": corporation_id})round_name, amount_raised, issue_dateFor each metric, compute across companies that have data:
Metrics:
Portfolio Benchmarks (N companies)
Option Pool Size (% Fully Diluted)
| Metric | Value |
|---|---|
| Median | 12.5% |
| Range | 8% – 20% |
| Companies with data | 14 |
SAFE Valuation Caps
| Metric | Value |
|---|---|
| Median | $8,000,000 |
| Range | $3M – $25M |
| SAFEs analyzed | 28 |
Last Priced Round Size
| Metric | Value |
|---|---|
| Median | $5,000,000 |
| Range | $500K – $30M |
| Companies with priced rounds | 10 |
If the user asks about a specific company ("how does Acme's option pool compare?"), show that company's value alongside the portfolio median.