<!-- Agent Datasets docs · stocks_get_executive_compensation · canonical: https://www.agentdatasets.com/docs/tools/stocks_get_executive_compensation · rendered from https://www.agentdatasets.com -->

# stocks_get_executive_compensation

SEC pay-versus-performance rows for one US public company, newest first.

| Field | Value |
| --- | --- |
| Category | Stocks (`stocks`) |
| Exposure | public |
| MCP tool | `stocks_get_executive_compensation` |
| Documentation | https://www.agentdatasets.com/docs/tools/stocks_get_executive_compensation |

## Description

SEC pay-versus-performance rows for one US public company, newest first.

Use this for executive-pay questions — "what was Apple's CEO paid, and
how does it track shareholder returns?" (e.g.
`stocks_get_executive_compensation(ticker="AAPL")`). For operating
fundamentals use `stocks_get_financial_metrics` or the statement tools
instead. Data is the Item 402(v) pay-versus-performance table filers
tag in DEF 14A proxy statements, normalized from SEC EDGAR XBRL.

The result is the shared envelope: `data` holds the company identity
(`ticker`, `cik`, `company_name`) and the bounded `rows` list; `meta`
holds `source` and `as_of` (freshest row-level timestamp on this page);
`pagination` holds cursor paging state. To page, pass
`pagination.next_cursor` back as `cursor`; when `pagination.has_more`
is false you have reached the oldest year.

Each row is one PEO (principal executive officer) and fiscal year:
`fiscal_year`, `period_start`/`period_end`, `peo_member` (the XBRL
member naming the PEO when a year has more than one — a mid-year CEO
transition renders one row per PEO; empty string when the filer tags
none), `peo_name`, `company_selected_measure_name`, and a `measures`
object keyed by canonical measure names: `peo_total_compensation`,
`peo_compensation_actually_paid`, `avg_non_peo_neo_total_compensation`,
`avg_non_peo_neo_compensation_actually_paid`,
`company_total_shareholder_return`,
`peer_group_total_shareholder_return`, `net_income`, and
`company_selected_measure`. A missing key means the filer did not tag
that fact — never zero. Both TSR measures are the fiscal-year-end value
of a fixed $100 investment (SEC Item 402(v) definition), not a
percentage. Each value carries `value` (exact decimal as a JSON
string), `unit`, `currency`, `as_of`, and the source filing's
`accession_number`.

A covered company with no PvP rows (not yet subject to the rule, or no
proxy ingested) returns an empty `rows` list — that is honest coverage,
not an error. Errors carry a machine `code`: `unknown_entity` for a
well-formed symbol we hold no mapping for (with `Did you mean: …?`
suggestions when close matches exist), `bad_parameter` for a non-ticker
string or a malformed cursor.

## Parameters

Input schema advertised to MCP clients and mirrored by the REST query string.

| Parameter | In | Type | Required | Default | Constraints | Description |
| --- | --- | --- | --- | --- | --- | --- |
| ticker | input | `string` | yes | — | — | Ticker symbol, e.g. 'AAPL' or 'BRK.B' (class separators accepted). |
| limit | input | `integer` | no | 4 | min 1, max 12 | Fiscal years to return, newest first (1–12). Counts years, not rows: a year with multiple PEOs returns one row per PEO, all on the same page. |
| cursor | input | `string \| null` | no | null | — | Opaque pagination cursor from a previous response's `pagination.next_cursor`; omit to start from the newest fiscal year. |

## Provenance

- `sec_edgar_pvp` — U.S. Securities and Exchange Commission (EDGAR), Pay-versus-performance disclosures from DEF 14A XBRL facts tagged with the SEC executive-compensation-disclosure taxonomy (U.S. Government work, public domain (17 U.S.C. § 105)). See https://www.agentdatasets.com/docs/attribution.md

Dataset registry: `stocks_executive_compensation`.
