---
updatedAt: 2026-09-02T06:58:48.000Z
agentTools:
  projectIndex: https://docs.lightcast.io/data-shares/llms.txt
---

# Industry by Occupation Earnings Data

<Callout icon="📘" theme="info">
  Ready to use this data? See the Core LMI [reference documentation](https://docs.lightcast.io/lightcast-api/reference/overview-core-lmi) to get started.
</Callout>

## Description

The dataset shows employment and percentile earnings by year, industry, and occupation for QCEW and Non-QCEW employees (excludes self-employed).

## Use Cases

### Questions answered by this dataset:

* Which industry employs the most special effects animators?
* What is the earnings difference for general contractors employed in residential vs nonresidential building construction?
* What are the median earnings for purchasing managers working at nursing care facilities? How about the 75th percentile earnings?

## Metrics

* Jobs: The number of occupied positions. This is not quite the same as workers because one worker might fill more than one position.
* Earnings
  * Average: Average hourly earnings per job.
  * Median: 50th percentile (median) hourly earnings per job.
  * Percentile10: 10th percentile hourly earnings per job.
  * Percentile25: 25th percentile hourly earnings per job.
  * Percentile50: 50th percentile (median) hourly earnings per job.
  * Percentile75: 75th percentile hourly earnings per job.
  * Percentile90: 90th percentile hourly earnings per job.
  * Average.Annual: Average annual earnings per job.
  * Median.Annual: 50th percentile (median) annual earnings per job.
  * Percentile10.Annual: 10th percentile annual earnings per job.
  * Percentile25.Annual: 25th percentile annual earnings per job.
  * Percentile50.Annual: 50th percentile (median) annual earnings per job.
  * Percentile75.Annual: 75th percentile annual earnings per job.
  * Percentile90.Annual: 90th percentile annual earnings per job.

## Filters

* Class of Worker (QCEW and Non-QCEW employees only)
* Industry (6-digit NAICS)
* Occupation (5-digit SOC)
* Year

## Core LMI Metadata

This dataset is offered via the [Core LMI API.](https://docs.lightcast.io/lightcast-api/reference/overview-core-lmi) The metadata for this Core LMI API dataset is below.

| Attribute   | Description                                                                  |
| :---------- | :--------------------------------------------------------------------------- |
| Dataset ID  | `EMSI.us.Staffing.Earn`                                                      |
| Dataset URL | `https://agnitio.emsicloud.com/meta/dataset/EMSI.us.Staffing.Earn/{version}` |

<Accordion title="Area Aggregation Path">
  The area aggregation path refers to the hierarchy that shows how data is aggregated, starting from the lowest-level geography and progressing to the highest-level geography.

  The levels in the aggregation path include:

  <div style={{ display: 'inline-block', borderRadius: '12px', border: '1px solid #e2e8f0', fontFamily: "'Inter', system-ui, -apple-system, sans-serif", backgroundColor: '#ffffff', overflow: 'hidden', lineHeight: 0, verticalAlign: 'top', margin: 0 }}>
    <table style={{ display: 'table', borderCollapse: 'separate', borderSpacing: 0, textAlign: 'center', fontSize: '14px', color: '#334155', width: 'auto', verticalAlign: 'top', lineHeight: 1.5, margin: 0, border: 'none' }}>
      <thead>
        <tr>
          <th style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', backgroundColor: '#f8fafc', width: '60px' }} />

          <th style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', backgroundColor: '#f8fafc', width: '60px' }} />

          <th colSpan={4} style={{ borderBottom: '1px solid #e2e8f0', backgroundColor: '#f54562', color: '#ffffff', fontWeight: 700, padding: '16px', textTransform: 'uppercase', letterSpacing: '0.1em', fontSize: '12px' }}>
            Aggregation Path
          </th>
        </tr>

        <tr style={{ backgroundColor: '#f8fafc' }}>
          <th style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '12px' }} />

          <th style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '12px' }} />

          <th style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '12px', color: '#94a3b8', fontWeight: 700, fontSize: '11px', textTransform: 'uppercase' }}>1</th>
          <th style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '12px', color: '#94a3b8', fontWeight: 700, fontSize: '11px', textTransform: 'uppercase' }}>2</th>
          <th style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '12px', color: '#94a3b8', fontWeight: 700, fontSize: '11px', textTransform: 'uppercase' }}>3</th>
          <th style={{ borderBottom: '1px solid #e2e8f0', padding: '12px', color: '#94a3b8', fontWeight: 700, fontSize: '11px', textTransform: 'uppercase' }}>4</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td rowSpan={4} style={{ borderRight: '1px solid #e2e8f0', backgroundColor: '#f54562', color: '#ffffff', fontWeight: 800, padding: '16px', textTransform: 'uppercase', writingMode: 'vertical-rl', transform: 'rotate(180deg)', fontSize: '12px', letterSpacing: '0.1em' }}>
            Level
          </td>

          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', backgroundColor: '#f8fafc', fontWeight: 700, color: '#64748b', fontSize: '13px' }}>1</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#1e293b' }}>Nation</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#1e293b' }}>Metropolitan US</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#1e293b' }}>Nation</td>
          <td style={{ borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#1e293b' }}>Metropolitan US</td>
        </tr>

        <tr>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', backgroundColor: '#f8fafc', fontWeight: 700, color: '#64748b', fontSize: '13px' }}>2</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>State</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>MSA</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>State</td>
          <td style={{ borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>MSA</td>
        </tr>

        <tr>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', backgroundColor: '#f8fafc', fontWeight: 700, color: '#64748b', fontSize: '13px' }}>3</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>County</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>County</td>
          <td style={{ borderRight: '1px solid #e2e8f0', borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>County</td>
          <td style={{ borderBottom: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>County</td>
        </tr>

        <tr>
          <td style={{ borderRight: '1px solid #e2e8f0', padding: '16px', backgroundColor: '#f8fafc', fontWeight: 700, color: '#64748b', fontSize: '13px' }}>4</td>
          <td style={{ borderRight: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>Zip Code</td>
          <td style={{ borderRight: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>Zip Code</td>
          <td style={{ borderRight: '1px solid #e2e8f0', padding: '16px', fontWeight: 600, color: '#0f172a' }}>Census Tract</td>
          <td style={{ padding: '16px', fontWeight: 600, color: '#0f172a' }}>Census Tract</td>
        </tr>
      </tbody>
    </table>
  </div>

  > Datasets with lower granularity aggregates only up to **Level 1**
</Accordion>

## Versions

<Tabs>
  <Tab title="2026.3">
    `http://agnitio.emsicloud.com/meta/dataset/EMSI.us.Staffing.Earn/2026.3`

    **Metrics**

    ```json
      {
    "name": "<Metric>.<Year>"
      }
    ```

    **Valid Values for Metrics**

    ```json
      {"Metric": [
            "Jobs",
            "Earnings.Average",
            "Earnings.Median",
            "Earnings.Percentile10",
            "Earnings.Percentile25",
            "Earnings.Percentile50",
            "Earnings.Percentile75",
            "Earnings.Percentile90",
            "Earnings.Average.Annual",
            "Earnings.Percentile10.Annual",
            "Earnings.Percentile25.Annual",
            "Earnings.Percentile50.Annual",
            "Earnings.Percentile75.Annual",
            "Earnings.Percentile90.Annual"
    ]
    "Year": "2005-2025",
    }
    ```

    **Dimensions**

    ```json
    [
    {
      "name": "ClassOfWorker",
      "levelsStored": [
         "2"
      ]
    },
    {
      "name": "Industry",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5",
         "6"
      ]
    },
    {
      "name": "Occupation",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5"
      ]
    }
    ]

    ```

    **Attributes**

    ```json
    {
    "name": "Staffing.Earn",
    "path": "Staffing.Earn",
    "type": "dataset",
    "countryCode": "us",
    "description": "XXXXXXXXXXXXXXX",
    "displayName": "US Industry by Occupation Earnings",
    "minYearInclusive": "2005",
    "maxYearInclusive": "2025",
    "currentYear": "2025",
    "releaseDate": "2026-06-04 02:19:12.1738593Z",
    "datarun": "2026.3"
    }
    ```
  </Tab>

  <Tab title="2026.2">
    `http://agnitio.emsicloud.com/meta/dataset/EMSI.us.Staffing.Earn/2026.2`

    **Metrics**

    ```json
      {
    "name": "<Metric>.<Year>"
      }
    ```

    **Valid Values for Metrics**

    ```json
      {"Metric": [
            "Jobs",
            "Earnings.Average",
            "Earnings.Median",
            "Earnings.Percentile10",
            "Earnings.Percentile25",
            "Earnings.Percentile50",
            "Earnings.Percentile75",
            "Earnings.Percentile90",
            "Earnings.Average.Annual",
            "Earnings.Percentile10.Annual",
            "Earnings.Percentile25.Annual",
            "Earnings.Percentile50.Annual",
            "Earnings.Percentile75.Annual",
            "Earnings.Percentile90.Annual"
    ]
    "Year": "2005-2024",
    }
    ```

    **Dimensions**

    ```json
    [
    {
      "name": "ClassOfWorker",
      "levelsStored": [
         "2"
      ]
    },
    {
      "name": "Industry",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5",
         "6"
      ]
    },
    {
      "name": "Occupation",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5"
      ]
    }
    ]

    ```

    **Attributes**

    ```json
    {
    "name": "Staffing.Earn",
    "path": "Staffing.Earn",
    "type": "dataset",
    "countryCode": "us",
    "description": "XXXXXXXXXXXXXXX",
    "displayName": "US Industry by Occupation Earnings",
    "minYearInclusive": "2005",
    "maxYearInclusive": "2024",
    "currentYear": "2024",
    "releaseDate": "2026-03-13 11:40:32.0999282Z",
    "datarun": "2026.2"
    }
    ```
  </Tab>

  <Tab title="2026.1">
    `http://agnitio.emsicloud.com/meta/dataset/EMSI.us.Staffing.Earn/2026.1`

    **Metrics**

    ```json
      {
    "name": "<Metric>.<Year>"
      }
    ```

    **Valid Values for Metrics**

    ```json
      {"Metric": [
            "Jobs",
            "Earnings.Average",
            "Earnings.Median",
            "Earnings.Percentile10",
            "Earnings.Percentile25",
            "Earnings.Percentile50",
            "Earnings.Percentile75",
            "Earnings.Percentile90",
            "Earnings.Average.Annual",
            "Earnings.Percentile10.Annual",
            "Earnings.Percentile25.Annual",
            "Earnings.Percentile50.Annual",
            "Earnings.Percentile75.Annual",
            "Earnings.Percentile90.Annual"
    ]
    "Year": "2005-2024",
    }
    ```

    **Dimensions**

    ```json
    [
    {
      "name": "ClassOfWorker",
      "levelsStored": [
         "2"
      ]
    },
    {
      "name": "Industry",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5",
         "6"
      ]
    },
    {
      "name": "Occupation",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5"
      ]
    }
    ]

    ```

    **Attributes**

    ```json
    {
    "name": "Staffing.Earn",
    "path": "Staffing.Earn",
    "type": "dataset",
    "countryCode": "us",
    "description": "XXXXXXXXXXXXXXX",
    "displayName": "US Industry by Occupation Earnings",
    "minYearInclusive": "2005",
    "maxYearInclusive": "2024",
    "currentYear": "2024",
    "releaseDate": "2026-02-05 18:30:15.7554995Z",
    "datarun": "2026.1"
    }

    ```
  </Tab>

  <Tab title="2025.4">
    `http://agnitio.emsicloud.com/meta/dataset/EMSI.us.Staffing.Earn/2025.4`

    **Metrics**

    ```json
      {
    "name": "<Metric>.<Year>"
      }
    ```

    **Valid Values for Metrics**

    ```json
      {"Metric": [
            "Jobs",
            "Earnings.Average",
            "Earnings.Median",
            "Earnings.Percentile10",
            "Earnings.Percentile25",
            "Earnings.Percentile50",
            "Earnings.Percentile75",
            "Earnings.Percentile90",
            "Earnings.Average.Annual",
            "Earnings.Percentile10.Annual",
            "Earnings.Percentile25.Annual",
            "Earnings.Percentile50.Annual",
            "Earnings.Percentile75.Annual",
            "Earnings.Percentile90.Annual"
    ]
    "Year": "2005-2024",
    }
    ```

    **Dimensions**

    ```json
    [
    {
      "name": "ClassOfWorker",
      "levelsStored": [
         "2"
      ]
    },
    {
      "name": "Industry",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5",
         "6"
      ]
    },
    {
      "name": "Occupation",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5"
      ]
    }
    ]

    ```

    **Attributes**

    ```json
    {
    "name": "Staffing.Earn",
    "path": "Staffing.Earn",
    "type": "dataset",
    "countryCode": "us",
    "description": "XXXXXXXXXXXXXXX",
    "displayName": "US Industry by Occupation Earnings",
    "minYearInclusive": "2005",
    "maxYearInclusive": "2024",
    "currentYear": "2024",
    "releaseDate": "2025-09-26 08:39:12.4722771Z",
    "datarun": "2025.4"
    }

    ```
  </Tab>

  <Tab title="2025.3">
    `http://agnitio.emsicloud.com/meta/dataset/EMSI.us.Staffing.Earn/2025.3`

    **Metrics**

    ```json
      {
    "name": "<Metric>.<Year>"
      }
    ```

    **Valid Values for Metrics**

    ```json
      {"Metric": [
            "Jobs",
            "Earnings.Average",
            "Earnings.Median",
            "Earnings.Percentile10",
            "Earnings.Percentile25",
            "Earnings.Percentile50",
            "Earnings.Percentile75",
            "Earnings.Percentile90",
            "Earnings.Average.Annual",
            "Earnings.Percentile10.Annual",
            "Earnings.Percentile25.Annual",
            "Earnings.Percentile50.Annual",
            "Earnings.Percentile75.Annual",
            "Earnings.Percentile90.Annual"
    ]
    "Year": "2005-2024",
    }
    ```

    **Dimensions**

    ```json
    [
    {
      "name": "ClassOfWorker",
      "levelsStored": [
         "2"
      ]
    },
    {
      "name": "Industry",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5",
         "6"
      ]
    },
    {
      "name": "Occupation",
      "levelsStored": [
         "1",
         "2",
         "3",
         "4",
         "5"
      ]
    }
    ]

    ```

    **Attributes**

    ```json
    {
    "name": "Staffing.Earn",
    "path": "Staffing.Earn",
    "type": "dataset",
    "countryCode": "us",
    "description": "XXXXXXXXXXXXXXX",
    "displayName": "US Industry by Occupation Earnings",
    "minYearInclusive": "2005",
    "maxYearInclusive": "2024",
    "currentYear": "2024",
    "releaseDate": "2025-06-07 00:20:39.8440462Z",
    "datarun": "2025.3"
    }

    ```
  </Tab>
</Tabs>