Carta Market Benchmarks

by carta6ab81016389cNo license14 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated today

Computed statistics across portfolio companies — median, average, typical, range — used as market benchmarks. Returns aggregate numbers and percentiles, not raw per-company listings.

AI-generated overview

Computes portfolio-wide cap table benchmarks such as option pool percentages, SAFE valuation caps and round sizes from Carta data.

What it does
This skill enumerates a firm's Carta portfolio companies, fetches cap table, convertible note and financing history summaries for each, and computes aggregate statistics. It produces median, minimum and maximum values for option pool size as a percentage of fully diluted shares, SAFE valuation caps and last priced round sizes, presented as benchmark tables. Results are described as portfolio benchmarks rather than Carta-wide market data.
When to use it
Use it when asked what is typical or normal for a structural metric at a given stage, such as median option pool size, average SAFE discount, or how a specific deal's terms compare with portfolio norms. It is also suited to sanity-checking a new deal's terms against existing portfolio companies.
Requirements
Requires access to the Carta MCP tools (call_tool, list_contexts, set_context, list_accounts) and an authenticated Carta account with portfolio data. It ships no scripts and needs no user-supplied inputs; portfolio enumeration is automatic, with a limit of 20 companies per invocation.
<!-- carta:plugin-version -->

<carta-plugin>carta-cap-table:6.89.2</carta-plugin>

<!-- Part of the official Carta AI Agent Plugin -->

Market Benchmarks

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."

Prerequisites

No inputs required — this skill loops the full portfolio automatically.

Data Retrieval

Portfolio Enumeration

Call list_accounts. Filter to corporation_pk: accounts. Extract up to 20 numeric corporation IDs. If more than 20 companies exist, ask the user to narrow scope.

Per-Company Commands

For each company, the relevant commands are:

  • call_tool({"name": "cap_table__get__cap_table_by_share_class", "arguments": {"corporation_id": corporation_id}}) -- option pool data
  • call_tool({"name": "cap_table__get__convertible_notes", "arguments": {"corporation_id": corporation_id}}) -- SAFE/note terms (summary includes median/min/max price_cap, avg_discount, by_type)
  • call_tool({"name": "cap_table__get__financing_history", "arguments": {"corporation_id": corporation_id}}) -- round sizes (summary includes per-round cash_raised and latest_date)

The gateway defaults to detail=summary for all three commands. The enriched summaries include all fields needed for portfolio benchmarks — no individual records required.

Parallel execution: The fetch tool has readOnlyHint=true, so Claude Code executes parallel fetch calls concurrently. Issue ALL fetch calls for ALL companies in a single response — do NOT loop company-by-company. See Workflow Step 2.

Key Fields

From cap table (option pool):

  • option_plans[].authorized_shares: shares authorized per plan
  • totals.total_fully_diluted: total fully diluted share count

From convertible notes (summary):

  • median_price_cap, min_price_cap, max_price_cap: valuation cap statistics
  • avg_discount: average discount rate
  • by_type: count of SAFEs vs Convertible Notes
  • total_dollar_amount: total invested across all instruments

From financing history (summary):

  • by_round: per-round {count, cash_raised, latest_date}
  • total_cash_raised: aggregate across all rounds

Workflow

Step 1 — Get Portfolio

Call list_accounts. Filter to corporation_pk: accounts. Extract up to 20 numeric corporation IDs.

Step 2 — Collect Data for All Companies (parallel)

Issue ALL fetch calls for ALL companies in a single response — do NOT loop company-by-company. Each fetch call is independent and will execute concurrently.

For example, with 5 companies and all 3 data types, issue all 15 fetch calls at once:

call_tool({"name": "cap_table__get__cap_table_by_share_class", "arguments": {"corporation_id": 1}})call_tool({"name": "cap_table__get__convertible_notes", "arguments": {"corporation_id": 1}})call_tool({"name": "cap_table__get__financing_history", "arguments": {"corporation_id": 1}})call_tool({"name": "cap_table__get__cap_table_by_share_class", "arguments": {"corporation_id": 2}})call_tool({"name": "cap_table__get__convertible_notes", "arguments": {"corporation_id": 2}})call_tool({"name": "cap_table__get__financing_history", "arguments": {"corporation_id": 2}})... (all companies)

Then from the results:

Cap table by share class (for option pool %):

  • From option_plans[]: sum authorized_shares across all plans
  • From totals.total_fully_diluted: compute option pool % = option_pool_authorized / total_fully_diluted

SAFE / convertible note terms (summary):

  • Use median_price_cap, min_price_cap, max_price_cap directly for SAFE cap benchmarks
  • Use avg_discount for discount benchmarks
  • Use by_type to count SAFEs vs notes per company

Financing history (summary):

  • Use by_round to identify rounds and their cash_raised
  • Use total_cash_raised for aggregate amounts
  • Most recent round = round with latest latest_date

Step 3 — Compute Summary Statistics

For each metric, compute across companies that have data:

  • Median, min, max
  • Skip companies with no data for a given metric (don't count as zero)

Metrics:

  • Option pool % (fully diluted)
  • SAFE valuation cap
  • Last priced round size

Step 4 — Present Results

See Presentation section.

If the user asks about a specific company ("how does Acme's option pool compare?"), show that company's value alongside the portfolio median.

Gates

Required inputs: None — portfolio enumeration is automatic.

AI computation: Yes — portfolio benchmark statistics (median, min, max for option pool sizes, SAFE caps, round sizes) are AI-derived from aggregated cap table data. Trigger the AI computation gate (see carta-interaction-reference §6.2) before outputting any benchmark statistics or portfolio comparisons.

Subagent prohibition: Not applicable.

Presentation

Format: Benchmark tables grouped by metric

BLUF lead: Lead with the number of companies analyzed and the most notable finding (e.g., "median option pool is 12.5% across 14 companies").

Sort order: By metric name (Option Pool, SAFE Caps, Round Sizes).

Portfolio Benchmarks (N companies)

Option Pool Size (% Fully Diluted)

MetricValue
Median12.5%
Range8% – 20%
Companies with data14

SAFE Valuation Caps

MetricValue
Median$8,000,000
Range$3M – $25M
SAFEs analyzed28

Last Priced Round Size

MetricValue
Median$5,000,000
Range$500K – $30M
Companies with priced rounds10

Caveats

  • Portfolio data reflects point-in-time API calls, not a single atomic snapshot
  • Companies with restricted permissions may have incomplete data
  • Rate limit: maximum 20 companies per invocation
  • This reflects your firm's portfolio, not Carta-wide market data — present results as "portfolio benchmarks" not "market data"

Source and attribution

Source:carta/pluginsinplugins/carta-cap-table/skills/carta-market-benchmarksat commit6ab8101

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

More from carta/plugins

Carta Fund Admin Requests

carta

Send work to your Carta Fund Admin team and track it. Opens a request the team reads, acts on, and replies to — the off-ramp for anything no other Carta skill or command can do. TRIGGER: "ask Carta to", "have Carta do", "send this to my fund admin", "ask my fund admin team", "can Carta do this for me", "check on my request", "did Carta reply", "what requests do I have open", "reply to Carta", "follow up on my request", plus ANY action request (create/change/send/restate/reconcile/split/fix) that no other skill or Carta command covers. NOT FOR: reporting a bug or feature request about this plugin (call fa:create:feedback directly); questions answerable from Carta data (use carta-explore-data); capital call reminders to LPs (that is a Carta command, not a Fund Admin request).

Awaiting classification14updated today

Carta Explore Data

carta

Answers Carta Web / Fund Admin investor data questions by querying the Carta data warehouse and formatting results.

Data & Analytics14updated today

Carta Download Tearsheet

carta

Downloads Carta tear sheets for portfolio companies and funds via the Carta MCP server.

Documents & Office14updated today

Update Note

carta

Searches for notes in the Carta CRM and helps the user update deal comments. Use this skill when the user says things like "update a note", "edit note", "update note content", "change a note", or "/update-note". Note: standalone note editing is not available via MCP — notes/comments are attached to deals and updated via the update-deal skill.

Awaiting classification14updated today

Update Investor

carta

Partially updates an existing investor record in the Carta CRM by ID or name.

Business & Finance14updated today

Update Fundraising

carta

Updates an existing fundraising record in the Carta CRM. Use this skill when the user says things like "update a fundraising", "edit fundraising", "update fundraising details", "change fundraising stage", "update fundraising fields", or "/update-fundraising". Accepts a fundraising ID or name (will search if no ID provided). Only the fields explicitly provided are changed — all other fields are left untouched.

Awaiting classification14updated today