# Executive Compensation Tracker — CEO Pay & Pay Ratio (`gochujang/executive-compensation-tracker`) Actor

Extract CEO and executive compensation data from SEC DEF 14A proxy filings. Salary, bonus, equity, total comp, and CEO pay ratio vs median worker. No API key needed.

- **URL**: https://apify.com/gochujang/executive-compensation-tracker.md
- **Developed by:** [Hojun Lee](https://apify.com/gochujang) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 proxy filing returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Executive Compensation Tracker

**Executive Compensation Tracker** extracts **CEO salary, bonus, equity awards, and total compensation** from SEC DEF 14A annual proxy filings — including the mandatory **CEO-to-median-worker pay ratio** that all US public companies must disclose. Data comes directly from SEC EDGAR with no subscription required, covering every US-listed public company.

Use it to benchmark executive pay, research governance issues, build ESG datasets, or screen for companies with extreme pay practices.

***

### Why use Executive Compensation Tracker?

1. **ESG / governance screening** — Screen companies by pay ratio or total CEO compensation to identify governance red flags (e.g., CEO pay > 500× median worker) for ESG funds or activist campaigns.
2. **Executive pay benchmarking** — Compare CEO compensation across sector peers to assess whether a target company's pay practices are in line with the market.
3. **Activist investor research** — High CEO pay ratios and low shareholder returns are a common activist target thesis. Screen for misaligned pay packages.
4. **Proxy voting preparation** — Build a dataset of Say-on-Pay votes and compensation structures ahead of annual meeting season.
5. **Journalism and academic research** — The DEF 14A is the authoritative source for executive compensation disclosure — this actor makes it programmatically accessible at scale.

***

### How to use

1. Open the actor on Apify Store and click **Try for free**.
2. Paste company names into `companies` (e.g. `"Apple,Microsoft,Amazon"`).
3. Set `daysBack` to define your search window (default 365 days covers the full annual proxy cycle).
4. Enable `enrichDetails` to fetch the full proxy document and extract structured compensation data.
5. Click **Start**. Results are structured compensation records per filing.

***

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `companies` | string | `""` | Comma-separated company names (e.g. `"Apple,Microsoft,Amazon"`) |
| `daysBack` | number | `365` | How far back to search SEC EDGAR DEF 14A filings |
| `enrichDetails` | boolean | `true` | Fetch and parse the full proxy document to extract compensation figures |
| `minCeoCompM` | number | `0` | Minimum CEO total compensation in millions USD (0 = no filter) |
| `maxResults` | number | `25` | Maximum proxy filings to return |

***

### Output

```json
{
  "entity_name": "Apple Inc.",
  "fiscal_year": "2025",
  "filing_date": "2026-01-10",
  "ceo_total_compensation": 63208000,
  "base_salary": 3000000,
  "annual_bonus": 12000000,
  "stock_awards": 46000000,
  "option_awards": 0,
  "pay_ratio": "1053:1",
  "executives_mentioned": ["Tim Cook", "Luca Maestri", "Jeff Williams"],
  "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/..."
}
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `entity_name` | string | Company name from SEC EDGAR |
| `fiscal_year` | string | Fiscal year the compensation covers |
| `filing_date` | string | Proxy filing date (YYYY-MM-DD) |
| `ceo_total_compensation` | float | CEO total direct compensation in USD |
| `base_salary` | float | CEO base salary in USD |
| `annual_bonus` | float | Annual cash incentive / non-equity bonus |
| `stock_awards` | float | RSU and equity award grant value |
| `option_awards` | float | Stock option grant value |
| `pay_ratio` | string | CEO-to-median-worker ratio (e.g. `"312:1"`) |
| `executives_mentioned` | string\[] | Named Executive Officers in the proxy |
| `filing_url` | string | URL to the SEC EDGAR filing |

***

### CEO pay ratio — what it means

The CEO pay ratio is **mandatory disclosure** under Dodd-Frank Section 953(b), required since fiscal year 2018. It compares:

- **CEO annual total compensation** (as defined in the Summary Compensation Table)
- **Median annual total compensation** of all other employees (excluding CEO)

High ratios (>500:1) are common in retail, fast food, and large tech. Lower ratios are typical in financial services and professional services.

| Sector | Typical CEO pay ratio |
|--------|----------------------|
| Fast food / retail | 500–1,500:1 |
| Large tech | 200–600:1 |
| Financial services | 100–300:1 |
| Small/mid-cap industrials | 50–150:1 |

***

### Cost estimation

**Pay-Per-Event: $0.005 per actor start + $0.05 per proxy filing returned.**

The $0.05/filing reflects the cost of fetching and parsing the full DEF 14A proxy document (often 50–150 pages of dense text).

| Use case | Filings | Estimated cost |
|----------|---------|----------------|
| Fortune 50 CEOs (enriched) | 50 | ~$2.50/run |
| S\&P 500 sector (100 companies) | 100 | ~$5.00/run |
| Specific 5 companies | 5 | ~$0.25/run |
| Annual benchmark update | 500 | ~$25.00/run |

***

### FAQ

**Does it cover all named executive officers, or just the CEO?**
The actor extracts the **CEO-level** data (total comp, pay ratio) and returns the list of all named executive officers (`executives_mentioned`). Granular per-executive comp tables require additional parsing of the Summary Compensation Table.

**How often are DEF 14A filings updated?**
DEF 14A is an annual filing, typically filed 120 days after fiscal year end. Apple's fiscal year ends September 30, so the proxy is filed ~January. Most calendar-year companies file March–May.

**Is `enrichDetails: false` useful?**
Without enrichment, you get the filing metadata (company name, date, URL) but not the compensation figures. Useful for building a list of which companies filed proxies recently, without fetching each document.

**What if a company doesn't disclose a pay ratio?**
Companies with fewer than 100 employees are exempt from pay ratio disclosure. In these cases, `pay_ratio` will be null.

***

### Related actors

- [SEC Enforcement Actions Tracker](https://apify.com/gochujang/sec-enforcement-tracker) — Regulatory actions that often precede governance scrutiny
- [Activist Investor Tracker](https://apify.com/gochujang/activist-investor-tracker) — High pay ratios are common activist targets
- [M\&A Deals Tracker](https://apify.com/gochujang/ma-deals-tracker) — Executive change-of-control provisions appear in merger proxies

### Feedback

If this actor is useful, a quick review helps researchers find it: [Leave a review on Apify Store](https://apify.com/gochujang/executive-compensation-tracker#reviews)

***

**Keywords:** executive compensation, CEO pay, SEC proxy filing, DEF 14A, salary data scraper, executive salary tracker, stock awards, ESG compensation, corporate governance data, C-suite compensation, SEC EDGAR scraper, proxy statement, total compensation

# Actor input Schema

## `companies` (type: `string`):

Company names to look up, e.g. 'Apple,Microsoft,Tesla'.

## `daysBack` (type: `integer`):

How many days back to look for proxy filings.

## `enrichDetails` (type: `boolean`):

Fetch proxy documents to extract salary, bonus, equity, and pay ratio. Slower but more complete.

## `minCeoCompM` (type: `number`):

Filter out results with CEO comp below this amount in millions.

## `keyword` (type: `string`):

Additional keyword filter.

## `maxResults` (type: `integer`):

Maximum number of proxy filings to return.

## Actor input object example

```json
{
  "companies": "",
  "daysBack": 180,
  "enrichDetails": true,
  "minCeoCompM": 0,
  "keyword": "",
  "maxResults": 20
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("gochujang/executive-compensation-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("gochujang/executive-compensation-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call gochujang/executive-compensation-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gochujang/executive-compensation-tracker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GkYYvnNxgsmaBeRtO/builds/R6PeCP17frOVKkibS/openapi.json
