How the federal salary figures are made
How the pages of the Federal salaries hub read what their publishers put out, and what that record can and cannot say. The method every topic shares — where a figure comes from, snapshots, freshness and corrections — is on the site’s methodology page.
What a row is
The U.S. Office of Personnel Management publishes one row per federal civilian employee at the end of each month, from the Enterprise Human Resources Integration system, with the identity removed. This site does not hold those rows. It holds what they add up to: one row for each department, agency, sub-agency, occupation, state, county, metropolitan area, locality pay area, pay plan and grade, for each month — the cells these pages show, computed against the whole file before the rest is discarded.
There is no name here. OPM’s published file carries no employee name and no employee identifier, and OPM’s own catalog marks every system that does hold names as not public. Where this hub names a person, the record is the U.S. House of Representatives’ Statement of Disbursements, which is one chamber of one branch and is labeled as such on every page that uses it.
Whose pay is published, and whose is withheld
Nearly half of the employees in the file have no published salary, and the missing half is not a sample of the whole. Where the salary would be, the file prints the word redacted. OPM’s Data Release Policy (December 2024) says whose, in four parts, and the file follows it.
- The Department of Defense, entirely. OPM forwards requests for record-level data on Defense employees to Defense, “for an appropriate response in accordance with DOD’s policy”. Every Defense employee is counted here, and none has a published salary.
- Ten security and sensitive agencies, outside the Washington metropolitan area: the FBI, the Drug Enforcement Administration, the Bureau of Alcohol, Tobacco, Firearms and Explosives, the Alcohol and Tobacco Tax and Trade Bureau, the Secret Service, Customs and Border Protection, Immigration and Customs Enforcement, the Bureau of Prisons, the Homeland Security intelligence office (HSOS04) and every U.S. Attorneys’ Office. For their employees stationed outside the Washington area, the policy withholds pay, metropolitan area and locality pay area. Those stationed inside it keep their salary, and their duty station is given only as “Washington, D.C.”
- Twenty-six occupational series, in any agency, with duty station and organizational component: correctional officers (0007), U.S. marshals (0082), police (0083), nuclear materials couriers (0084), intelligence (0132, 0134), Homeland Security biologists (0401), plant protection and quarantine (0436), internal revenue agents (0512), nuclear engineering (0840), hearings and appeals (0930), internal revenue officers (1169), IRS property appraisal (1171), the investigation and enforcement series 1801, 1802, 1805, 1810, 1811 and 1812, immigration and customs inspection (1816, 1890), alcohol, tobacco and firearms inspection (1854), customs interdiction and patrol (1881, 1884), and customs and border protection (1895) and border patrol (1896). Several are discontinued and stay on the list so that the years they covered stay withheld.
- Anyone whose pay could reveal a performance rating. In the policy’s words, OPM “may withhold salary, bonus, or other related information for any employee (whether or not in a security/sensitive agency or occupation) whose performance rating(s) may be reverse engineered from release of such records”. OPM keeps a list of the agencies this applies to and does not publish it, so this hub does not say which agencies they are.
These are the policy’s reasons, quoted and summarized. The file does not record which of them applied to a given employee, so no page on this hub says why a particular agency’s or occupation’s pay is withheld beyond what the policy names. The hub page and every agency, occupation and state page print how many employees’ pay was withheld, from the file itself.
So every pay figure on this hub is printed beside the number of employees it was computed over, which is never the number of employees in the group. A group whose pay is entirely withheld keeps its headcount and shows no salary, and says which it is. Nothing here is dropped for being withheld: the employees are counted, and the size of what is missing is a figure on the page rather than an absence.
What the pay figure is, and is not
The published figure is annualized adjusted basic pay: an annual rate including locality pay, and excluding overtime, awards, bonuses and premium pay. It is not what anybody was paid in a year. Figures are taken over employees paid per annum only, because an annualized rate for an intermittent or hourly appointment is a projection rather than a salary, and the other pay bases are counted separately.
A group’s page leads with its median, with its tenth and ninetieth percentiles beside it, rather than an average alone. The rankings by salary use the mean — the average most people mean by the word — and say so in the column heading, beside how many employees it was taken over. A range is a property of the group and never of a person: the file carries no name, so the highest published salary in a group is not an identified employee, and no page says that it is.
Small groups publish no salary
A group of one person, published with a median, is that person’s salary. So no pay figure is published for a group with fewer than five employees whose pay OPM published. The group keeps its headcount, and its pay is left empty rather than shown as zero — the two are different facts, and an empty cell here means the figure would identify someone.
Which month a page is about
Every page names one month, and it is the newest month the publisher has not flagged as incomplete. OPM flags a month when agencies have not all submitted, and a page leading with a flagged month would publish a reporting gap as a fall in the workforce. The flag is not in OPM’s file: it is a notice on OPM’s own site, which this hub reads each time it fetches the data and keeps beside the files. Flagged months are still shown, and labeled provisional.
The history here begins in March 2015, the first month in the layout this hub’s reader is written for. OPM publishes files back to 2005 in older layouts, which are not yet read. OPM also revises past months; a figure is traced to the version of the file it was read from.
What this data cannot show
It cannot show the whole federal workforce: the intelligence community and some Defense positions are left out of the file altogether, on top of the fields withheld within it. It cannot be mapped completely, because the same redaction removes the duty station. It cannot name an executive-branch employee. And it cannot explain a change — a fall in a headcount can be a reduction, a transfer between agencies, or a component that did not report, and this record does not distinguish them.
What this data cannot show
- OPM withholds the salary of nearly half the workforce. In May 2026, the newest month OPM has not flagged as incomplete, 960,207 of 2,025,993 employees have their pay withheld: the Department of Defense entirely, Homeland Security 75.9%, Justice 65.8%. Every pay figure here is over the employees whose pay OPM published, and that count is printed beside it.
- The same withholding hides the map. In May 2026, 957,345 employees have every location field withheld together — state, county, city, country, metropolitan area and locality pay area — so a geographic figure describes the half whose duty station is published.
- The withholding is OPM policy, not a fault in the data. Its Public Data Release Policy withholds all of the Department of Defense, ten security and sensitive agencies outside the Washington area and twenty-six sensitive occupational series, and the file follows it: criminal investigators, customs and border protection, correctional officers, police and intelligence are withheld in full.
- OPM does not publish every federal employee. The intelligence community and some Defense positions are left out of the file altogether, so a total here is the workforce OPM publishes and not the federal workforce.
- No federal employee is named. The file carries no name and no employee identifier, and OPM marks every system that does hold names non-public.
- Pay is an annual rate, not earnings. It excludes overtime, awards, bonuses and premiums, and figures are taken over employees paid per annum — an annualized rate for an intermittent appointment is a projection rather than a salary.
- No pay figure is published for a group of fewer than five paid employees, because a group of one published with a median is that person’s salary. The group keeps its headcount and its pay is left empty.
- Every page names the month it is about. OPM flags a month whose agencies have not all submitted, and a page that led with one would publish a reporting gap as a change in the workforce.
Sources
- Federal Workforce Data: Federal Employment Raw Data (EHRI Status) — U.S. Office of Personnel Management · U.S. Government work, public domain (usa.gov public-domain label, on every dataset in OPM’s own catalog at opm.gov/data.json) · updated monthly
Data retrieved