About OpenFeds

What is this?

OpenFeds is a data journalism project that makes federal workforce data accessible and explorable. We process raw data from the Office of Personnel Management (OPM) FedScope dataset to reveal patterns in federal employment, salaries, hiring, and separations.

Data Sources

OpenFeds uses two distinct types of OPM FedScope data: employment snapshots and flow data. Employment snapshots capture the state of the federal workforce at a single point in time — who works where, in what occupation, at what salary. Flow data (separations and accessions) tracks employees entering and leaving federal service over time, enabling trend analysis.

Employment Snapshot (December 2025)

Point-in-time federal workforce snapshot with ~2.07M employee records. Each record represents one or more employees sharing identical characteristics. Includes agency, sub-agency, occupation series, duty location (state), salary, pay plan and grade, education level, age bracket, supervisory status, and work schedule. This powers agency profiles, occupation pages, state pages, and salary analysis.

Separations (FY2020–2025)

~953K records of employees leaving federal service. Each record includes the separation type (coded SA through SL — covering transfers, quits, retirements, RIFs, terminations, and more), effective date, agency, occupation, and salary at separation. This flow data enables tracking of monthly separation trends by type, agency, and occupation.

Accessions (FY2020–2025)

~1.17M records of new hires entering federal service. Includes accession type (new hire, transfer in, reinstatement), effective date, agency, and starting salary. Combined with separations data, this powers net workforce change analysis.

All data from OPM FedScope. FedScope is a public data source maintained by the U.S. Office of Personnel Management.

Update Schedule

OPM publishes FedScope data on a monthly basis. OpenFeds currently reflects:

  • Employment snapshot: December 2025
  • Separations data: October 2019 through November 2025
  • Accessions data: October 2019 through November 2025

We update OpenFeds after each new OPM data release. There is typically a 1–2 month lag between the end of a reporting period and when OPM publishes the corresponding data.

Methodology

Employee Counts

Employee counts are summed from individual FedScope records. Each record may represent one or more employees sharing identical characteristics (agency, occupation, location, salary, etc.). The "count" field in each record is summed to produce totals by agency, occupation, state, and other dimensions.

Average Salaries

Average salaries are weighted averages based on employee counts per record. Records with redacted, null, or zero salary values are excluded from salary calculations but still included in headcounts. Salary figures represent adjusted basic pay as reported by OPM.

Separation Types

Separation types follow OPM's standard coding: SA (Transfer Out), SB (Transfer Out — Mass), SC (Quit), SD (Retirement), SE (Early Retirement), SF (Disability Retirement), SG (Termination), SH (RIF — Reduction in Force), SI (Resignation in Lieu of Termination), SK (Death), and SL (Other). Monthly separation counts are aggregated by type to produce trend charts and breakdowns.

Net Workforce Change

Net workforce change is computed as accessions minus separations for a given month or period. A negative value indicates the workforce shrank (more departures than hires).

Limitations

  • Civilian only. FedScope covers civilian federal employees only. Active-duty military personnel, federal contractors, and U.S. Postal Service employees are not included (USPS publishes its own workforce data separately).
  • Military agency salary redaction. Salary data for Department of Defense military agencies (DD, AR, AF, NV) is redacted by OPM. These agencies show "N/A" for salary figures rather than misleading $0 values. Employee counts for these agencies are still accurate.
  • Privacy redactions. Some records have values marked as "REDACTED" or "*" to protect individual privacy, typically when a combination of attributes would identify a specific person. These records are excluded from salary and demographic calculations but included in headcounts.
  • Snapshot vs. flow data. The employment snapshot is a point-in-time view (December 2025), while separations and accessions data spans FY2020–2025. An agency's current employee count may not match the net of historical accessions and separations due to agency reorganizations, reclassifications, and data corrections.
  • OPM reporting lag. There is a 1–2 month lag between events and their appearance in FedScope data. Recent months may undercount separations or accessions that have not yet been processed.

Embeddable Charts

OpenFeds offers embeddable charts that you can include on your own website via iframe. Each embed is a self-contained HTML page with no external dependencies.

DOGE Timeline — Monthly Separations

<iframe src="/api/embed/doge-timeline" width="100%" height="400" frameborder="0"></iframe>

Agency Risk Scores — Top 20

<iframe src="/api/embed/risk-scores" width="100%" height="600" frameborder="0"></iframe>

State Impact — Top 15 by Job Losses

<iframe src="/api/embed/state-impact" width="100%" height="500" frameborder="0"></iframe>

Open Source

This project is open source. The code and data processing scripts are available on GitHub.