All gizmos

High Floor, Low Ceiling: How Public-Sector Wage Compression Erodes Public Service

2026-06

Reading the full piece. Short on time? Try BLUF.

The bargain government used to offer

For most of the post-war period, taking a government job was a solid trade. You gave up the top end of private-sector pay and got back stability, a pension, and the sense that the work mattered. Nobody took a job at the city planning department to get rich. They took it because it was steady, the benefits were good, and building the thing (the transit plan, the benefits system, the water utility) was its own kind of compensation.

I spend most of my life working next to that bargain. My clients are city halls, county IT shops, and state agencies, and the thing I watch them struggle with most is hiring. The work is interesting and the people are capable; I've worked with some of the sharpest people I know inside government. It's the money. The distance between what a good engineer earns on the public payroll and what the same person earns two miles away in the private sector has grown wide enough that fewer and fewer of them are willing to make the move.

There is an older, sharper version of this story, and it is about teachers. For most of the twentieth century the public schools got some of the country's most talented people at a discount, because the women who might otherwise have become doctors, lawyers, or executives were largely shut out of those fields and taught instead. When those doors opened, that talent left: the share of top-decile female high-school graduates who went into teaching fell from about 20% in 1964 to under 4% by 1992 (Corcoran, Evans, and Schwab). Teaching pay never rose to keep them, and the compression that flattens the reward for being excellent did much of the pushing (Hoxby and Leigh). The captive labor pool that quietly subsidized public work is gone, and the gap this piece measures is what is left without it.

I wanted to know how big the gap actually is, which jobs it hits, and whether it has really widened or just feels that way. The answer turned out to be messier than I expected, with a lot of variation across roles and across levels of government. But underneath the variation there was a consistent shape. Public pay is compressed: it holds its own at the bottom of the labor market and falls further behind the higher up you look. The charts below are interactive. You can filter to engineering, law, finance, or management; to federal, state, or local; and across all fifty states and a handful of cities.

Government Employment in America

Government employs about 21.2 million people aged 25 to 64: roughly 4.7 million federal, 5.7 million state, and 10.8 million local. The federal workforce is the one everyone argues about, and it is the smallest of the three. The giant is local government, and local government is mostly schools.

Since 2005, the private sector's 95th-percentile real wage grew 12.4% while the median grew 3.2%. In 2026 dollars the private median is about $67K, the private 95th percentile about $227K, and the government median about $73K. Adjusted for education and experience, federal pay runs 7% versus the private sector, state pay -16.6%, and local pay -17.3%. In software the state gap is -27.8%, legal -26%, engineering -23%.

Real median hourly wage growth, 2005 to 2023. ACS PUMS, BLS, BEA.

Teaching is the single biggest thing government does, by a wide margin. After that it is office and administrative work, then the people who keep the streets safe. The federal government is where a couple of things concentrate: the active-duty military, and the largest share of managers and white-collar professionals. So the typical government employee is a schoolteacher, not a federal bureaucrat. Teachers also have no clean private-sector counterpart, which is why the charts that follow let you exclude them for the sake of an even comparison.

Public vs private earnings distribution by education and experience. Chart in the browser; figures in the methodology appendix.

The median government worker earns about $73k a year, a little more than the private median of about $67k. That happens because government work skews more educated and more white-collar than the private workforce taken as a whole, so the middle of the public distribution sits a notch above the middle of the private one. But that comparison says more about who works where than about pay for the same work. The private sector carries a vast low-wage service economy (retail, food, warehousing) that government barely staffs, while public payrolls lean on college-educated teachers and professionals. The honest version holds education constant, and it comes a few charts down. The trend, meanwhile, runs against government. Since 2010 the private median has risen about 7% in real terms while the government median, teachers aside, has slipped about 6%. The two are quietly converging.

People cite this number to say public workers do fine, and they're right. But a median only shows the middle, and the gap is at the top.

The pay ladder: government tracks the private sector at the bottom and falls away at the top. Chart in the browser.

Since 2005, real pay at the 95th percentile of the private sector has risen about 12.4%. The private median rose about 3.2%. The government median did not move at all. Government pay is anchored to the middle of the private distribution, and the middle has barely budged while the top has pulled steadily away. Filter the chart to the knowledge-economy fields and the spread is wider still. So the real cost of public service is that rising private ceiling, not anything that happened to the government paycheck. Public pay held flat in real terms; the outside option just kept getting better.

Employment Cost Index, public vs private, indexed. Chart in the browser.

One thing complicates this, and it runs in government's favor. Measured as total compensation rather than wages, public pay has roughly held its ground against inflation; measured as wages alone, it slipped. The difference is benefits and pensions, which are richer in the public sector. BLS data put state and local total compensation near $66 an hour against $46 in the private sector, with benefits at 38% of the public figure versus 30% of the private.

That sounds reassuring until you ask who the benefits are worth the most to. Public pensions are back-loaded: they reward people who stay for decades and are worth very little to someone who leaves after a few years, which is to say worth least to the mobile, in-demand professionals who have the best outside options and the least intention of staying for thirty. Costrell and Podgursky found that a teacher who works fifteen years and then moves can forfeit more than half of her expected pension wealth. Younger workers have figured this out and price it accordingly. In a 2024 MissionSquare survey of public employees under 35, retirement benefits ranked seventh among the reasons they took the job, and most of those in their late twenties and early thirties said higher salary was the main reason they would leave. Younger workers value cash most, and cash is the part that lagged; the benefits that kept pace are the part they care about least. So the bargain has gotten worse for the people government most needs to recruit, and the federal workforce shows it: only about 17% of federal employees are under 35, against roughly 34% of the workforce as a whole (Pew, BLS).

To see where the gap actually opens up, you have to stop looking at the whole workforce and break it apart, by skill and by what people do.

Where the gap is widest

Line up the public-private wage gap within each education level, holding the rest constant, and the compression is right there in the shape: every level of government starts at or above the private market for less-educated workers and slopes below it as credentials rise.

Wage compression: the ratio of 90th-percentile to median pay, public vs private. Chart in the browser.

This is the apples-to-apples comparison the raw median couldn't give you, and it splits the difference between two fair objections. Government really does pay at or above market at the bottom, even after you control for education, so the low-end premium is not just a composition trick. But it is mostly a federal story, and mostly a benefits story. Federal pay stays above the market furthest up the ladder; state and local government, where most public workers actually are, cross into a penalty almost immediately. And the federal premium at the bottom is driven less by salary than by richer benefits and pensions, so on wages alone it is smaller than it looks. The Congressional Budget Office finds the same curve in total compensation: federal workers run about 40% ahead at a high-school education or less, roughly even at a bachelor's, and 4% and 22% behind at the master's and doctoral levels.

Part of why the floor sits high is unionization. Government work is far more unionized than private work, about 33% against 6% (BLS), and that density sits in the uniformed and frontline trades, with roughly two-thirds of firefighters and about half of police and teachers under a union contract (EPI), not in the lawyers, analysts, and engineers who look like the largely non-union private professional class. Unions raise pay most at the bottom and least at the top: David Card found the union wage gain large and positive for lower-skilled workers, small or negative for the high-skilled, and that organized labor measurably slowed the growth of wage inequality inside the public sector. So the same force that lifts the floor also helps flatten the ceiling.

Compression has two ends, and the painful one is the top. To see how far the gap opens there, break the workforce apart by field.

DomainGovernment median $/hrPrivate median $/hrGap
Admin and clerical$24.83$23.137%
All occupations$32.23$29.0111%
Education$29.01$25.7912%
Engineering$53.72$51.045%
Finance$35.96$40.04-10%
Healthcare$39.78$40.29-1%
Legal$46.43$45.133%
Management$40.29$42.98-6%
Protective service$34.38$22.3554%
Skilled trades$30.09$28.476%
Software and IT$40.29$48.35-17%
Median of state medians, public vs private real hourly wage by domain, 2023. Public vs private median real hourly wage by state and domain. Private comparator is same-state PUMS (place-of-residence). Explore any state in the browser.

Software is the case I see break most often, so start there. A full-time software or IT worker in state or local government earns roughly a quarter less than a comparable private worker, holding education, age, hours, and state constant. Engineering and law look much the same. These are the starred fields on the chart, and they are where the gap is largest.

Two things on that chart are worth pinning down. The first is raw versus adjusted. Government lawyers look better paid than private lawyers on the raw medians, because federal legal work skews senior and sits in expensive cities. Compare like with like (same education, experience, hours, and place), and the advantage turns into a double-digit penalty. Just how hard to adjust is the whole substance of a long fight in the literature. Control tightly for the public sector's extra schooling and experience and you find a penalty (Allegretto and Mishel at EPI); credit its richer benefits and greater job security and you find a premium (Biggs and Richwine). That swing is real, so I show a range instead of pretending there is a single number.

The second matters more: median versus top of the field. Federal pay seems to beat the private sector in most fields at the median, and often it does. But the median is not where the competition for talent happens, which is why the chart opens on the top of the field. A federal lawyer earns about 24% more than the typical private lawyer at the median and about 50% less at the 90th percentile, where the white-shoe firms pay. The same holds in software, finance, engineering, and management: a gap that looks friendly at the median widens sharply at the top. For an ordinary applicant it is real but survivable; for the kind of person who could go to a top tech company, a white-shoe firm, a bulge-bracket bank, or a name-brand consultancy, it is a chasm.

And the chart understates that chasm three ways:

  • It stops at the 90th percentile. The Census tops out its highest earners, so even the top-of-field figure is a floor.
  • It counts only wages. At the top of the private sector, a large and growing share of pay is the part wages miss: nonproduction bonuses run several times higher than in government (BLS), and equity goes further still — roughly two-thirds of a typical S&P 500 chief executive's pay, and a majority of senior compensation at the big technology firms, against essentially none in government. It is the mirror image of public pensions: the hidden pay that lifts the private top is as invisible here as the hidden benefits that lift the public bottom.
  • It can't see the roles government doesn't staff. The most lucrative private jobs often never enter the comparison at all. The federal government had no standard job classification for a data scientist until 2021, and it built the U.S. Digital Service and 18F to route around a hiring system written in 1949 for clerical work; computer jobs are about half of private-sector STEM employment but closer to a quarter of state government's (BLS).

The best-paid private work is missing from the public payroll, so the gap you can measure is the smaller part of the gap that exists.

Much of that top-of-field gap opened after 2019. When inflation spiked in 2021–22, private pay kept up while government pay, set on fixed schedules, fell in real terms, by about 6% at the federal top in software and management. A good part of the recent divergence is just government being slow to react to inflation.

A small caution about the median while you have the chart open. In a couple of fields, government and private land on nearly the same median to the dollar. That is partly real and partly an artifact: people report round salaries, so the median tends to sit on a common round number that the survey can't resolve any finer. It is one more reason the top of the field, where the two sides are clearly separated, is the honest place to look.

Government doesn't trail the market everywhere, though. The clearest exception is protective service. State and local government pay police and firefighters well above the private comparator, and the gap survives adjustment. But look at who is in that private comparator: the chart's note breaks it out, and the private side is almost entirely security guards, while the government side is sworn police, firefighters, and corrections officers. A state trooper out-earning a mall guard is not the same finding as a government engineer out-earning a private one. The real story is narrower and worse. Government is losing the bidding war for the white-collar, highly educated, digitally skilled workers whose private pay has climbed fastest, which is the worst possible place to lose, because those are the people who build and run modern public services.

Find your government

National averages bury a lot of local variation. Pick a state or one of a few big-city governments, choose a field, and you can see government pay against the private benchmark for that place.

CityCity-government median payPrivate median (metro)Median gapGap at the 90th percentile
New York City$95,373$78,22321.9%-36.3%
Chicago$122,603$73,75366.2%-15.2%
San Francisco$112,092$139,684-19.8%-45.1%
Seattle$122,217$111,7479.4%-38.8%
Los Angeles$90,792$67,04835.4%-10.7%
City-government median/p90 base pay by domain (full-time), constant 2026 dollars, vs the private sector in that city's METRO (central county/counties) from ACS PUMS. Title-to-domain mapping is keyword-based.

The city numbers come from each government's own payroll file, which is why only a handful are here. New York, Los Angeles, Chicago, San Francisco, and Seattle publish individual salaries with usable job titles. Many big cities, including most of Texas, publish nothing you can work with. Even in this small set the spread is wide. In the most expensive private markets, the Bay Area and Los Angeles, city tech pay trails the local private sector, San Francisco worst of all. Chicago is the exception: its city tech pay actually beats the local private sector at the median, and trails least at the top of the field. The comparator here is the city's own metro private sector, not the whole state, which matters for a place like San Francisco where Bay Area pay sits far above the California median.

The state view has its own wrinkle, and I'd treat it as a question rather than a conclusion. In a lot of less-urban states, government beats the private sector in fields like law and engineering, more often than it does in New York or Illinois. The likely reason is mundane: the private market for lawyers and engineers in a rural state is thin and pays accordingly, while government runs a standardized professional pay scale almost everywhere. Whether that lets those states field a more competitive public workforce is a fair thing to wonder, but it is not something these medians can answer, so I'll leave it as a hypothesis.

Why a widening gap is expensive

This isn't, in the end, about fairness to public employees. The gap degrades the services everyone uses, in ways that never show up on a budget line.

And the two ends of the compression are not equally costly. Overpaying somewhat for high-volume, well-defined work is real money — bounded, legible, and not the thing to fix first. Underpaying at the top forfeits something you can't buy back in bulk. The hardest parts of government (untangling a failing benefits system, standing up a new agency, getting three departments to ship one thing) are complex, cross-domain problems where the result turns on a few unusually capable people, and no quantity of average hires substitutes for them. That is the everyday version of what economists call O-ring production: when the work is a chain, one weak link caps the whole, so a few strong people beat a crowd of adequate ones. Government often has the money for the one excellent analyst; what it lacks is a salary band that will pay $200,000 for the role, so it hires three at $60,000 and hopes one turns out well.

That bet rarely pays. A workforce assembled this way can look fully staffed on the org chart, even top-heavy, while the number of people who can actually carry a hard, cross-domain effort stays thin. Titles and grades drift upward when pay can't move, since a regrade is one of the few rewards a rigid scale allows. The jump from inflated titles to thin capability is my read, not something these numbers measure; but the structural pull is real, because the headcount and the budget are already committed, so the misallocation is slow to see and slower to undo. Low pay also shapes who applies in the first place: a randomized study of public hiring found that higher advertised salaries drew more capable candidates without driving off the public-spirited ones, and the logic runs in reverse: price a white-collar job low enough and you fill it with someone who shouldn't be in a white-collar job at all.

When government can't hold the people it needs, the damage shows up in three places:

  • Cost. When a government can't hire a $160,000 engineer onto its own payroll, because the salary band tops out well below that and the process takes nine months, it doesn't do without the engineer. It rents one, through a systems integrator or a staffing firm, at a fully loaded rate that can run two or three times the salary it refused to pay. (I say that as someone whose firm is part of that market.) A large share of government consulting spend exists precisely because the in-house option has been priced out of reach. The gap doesn't save money; it moves the money off the salary line and onto the contract line, usually at a markup, and hollows out the knowledge that comes from building the thing yourself.
  • Speed. More and more of what government does is software: benefits eligibility, permitting portals, tax administration, transit data. Building and running those well takes the same high-skill people the gap drives away. When the fastest builders are all at private employers, government builds slowly, leans on long procurement cycles, and ends up with brittle systems that are late and expensive to change. "Why doesn't the government website work" is, upstream, partly a pay-gap question.
  • Trust. The slowest to show and the hardest to undo. People judge institutions by comparison, and the comparison keeps getting harder for government to win. A resident who renews a private subscription in fifteen seconds on a phone and then loses three hours to a government portal that times out registers the contrast. As the private sector keeps improving service quality, powered in part by the very talent government can't retain, the sense that government simply can't do things competently hardens. That erosion takes years to build and far longer to reverse.

The squeeze runs at the bottom too, just differently. Government pay moves on schedules, not markets, so when private entry wages jump it takes years to catch up. In late 2021, as fast-food and warehouse pay climbed, private wages were rising 5% a year against 2.7% for state and local government, the widest gap on record. The margin a state-hospital aide or a correctional officer once held over the local fast-food job narrows toward nothing, and the beds and the posts go unstaffed. This end, at least, answers to money: when Alabama raised correctional-officer starting pay from about $37,000 to $57,000, security staffing rose and turnover fell by roughly a third. Pay isn't the only lever — mandatory overtime and brutal conditions drive plenty of the churn, but at the bottom it is the fastest one. That is exactly what makes the top so much harder: there, government cannot just outbid the market.

What would actually help

"Pay government workers more" is too blunt to be useful. The data says the problem isn't uniform, so the fix shouldn't be either. Both moves that follow are the same in different forms: deliberately de-compress — lift the top toward the market, not cut the floor. The low-end premium is mostly richer benefits, not lavish paychecks, and frontline wages are already losing ground to the fast-food and warehouse market, so cutting them would only widen the staffing holes.

Make it targeted, not across-the-board: raise the ceiling where the gap is real, not the whole scale. Lift every public salary by the same percentage and you spend most of the money in the fields where government already competes fine, and still leave software, data, and engineering a quarter or more behind. The defensible version finds the specific high-gap, high-turnover fields and brings those bands toward market, accepting that a modern technical workforce can't sit on the same pay schedule as the rest of the civil service. Several governments have done exactly this, with dedicated digital-service teams on separate pay authority. It works, and it costs less than the consulting bill it replaces.

The other move costs almost nothing and is mostly cultural: stop selling government jobs as a thirty-year commitment. The forever-job framing is a feature to a 55-year-old and a deterrent to a 27-year-old, and the 27-year-old is who government most needs in technical roles. Reframe the work as a tour of duty — a two-to-four-year stint with a clear on-ramp and a graceful exit, built for people who will go back to the private sector, and priced for them rather than around a pension that only rewards staying for decades. The permanence younger workers shy away from becomes something they will take: a resume-building chapter instead of a life sentence.

None of this closes the gap, and given where private pay at the top is heading, it won't. The gap is structural, and it will keep reasserting itself as long as the economy keeps paying its top so well. But "we can't pay like Google" was never the issue. The problem is that government has stopped competing for a particular kind of worker in a particular set of roles, and has been quietly eating the cost of that retreat in consulting fees, slow builds, and eroding trust. Those costs are bigger than the raises would be.


The data behind this piece: public-versus-private wages are computed from Census ACS PUMS 1-year microdata (2005 to 2023) via the Census microdata API, where class of worker separates federal, state, and local government from the private sector. Compensation trends use the BLS Employment Cost Index and BEA national accounts; workforce counts use BLS CES and the Census Annual Survey of Public Employment & Payroll; the teacher count is NCES. The education-gradient anchor is CBO (2024). City pay is from each city's open payroll file. Evidence on younger workers draws on MissionSquare, Costrell and Podgursky, Pew, and the Partnership for Public Service. The compression and labor-market claims draw on BLS union data, Card on union wage compression, Kremer on complementary production, Dal Bó, Finan, and Rossi on pay and applicant quality, Corcoran, Evans, and Schwab and Hoxby and Leigh on the decline of high-ability women entering teaching, and Pew/BLS on the lag in public pay. Full sources, every modeling choice, and every limitation are in the technical appendix.

Methodology + caveats (click to expand)

What a wage is here. Wages are real annual or hourly earnings for full-time workers aged 25 to 64, in constant 2026 dollars, deflated with the CPI-U to the latest available month. "Public" is defined by class of worker (federal, state, or local government), not by industry, because industry codes misclassify a government software engineer as belonging to "professional services."

Teachers. Public education is roughly half of local government employment, and teachers have no clean private-sector counterpart. The macro charts let you exclude the education-instruction occupations (the SOC 25 group) so the public-versus-private comparison reflects the rest of the workforce.

Medians, the top of the field, and a granularity limit. The raw gap is the difference in medians; the top-of-field gap compares the 90th percentile of each side. Medians are computed with linear interpolation, the standard method for weighted survey data. Even so, ACS reports wages in rounded amounts, so a median can land on a common round-number salary that the survey can't resolve any finer; read small median differences as approximate, and weight the top-of-field comparison, which is far more separated. Census also top-codes the highest earners, so the top-of-field gap is a floor: the real elite private firms pay more than the data can show. Wages also exclude the variable pay that dominates private compensation at the top: bonuses, stock, and carried interest, which the public sector essentially lacks and which BLS ECEC does not value for either sector. So the top-of-field gap is a floor on that count as well.

Raw versus adjusted. The adjusted gap comes from a weighted regression of log wage on education, an age (experience) curve, hours, sex, race, and state, with the coefficient on each government level read as the gap versus private-for-profit. I report a range across specifications because that choice is the crux of the public-pay-penalty debate (Biggs and Richwine versus Allegretto and Mishel / EPI; see GAO-12-564). The regression controls for education, age, hours, and geography, but not for the mix of jobs within a field, which is why protective service shows a large adjusted public premium: the public side is sworn police and firefighters and the private side is mostly security guards.

The compression curve. The education chart plots that same composition-adjusted wage gap within each education bucket, for federal, state, and local separately. The downward slope, from a premium at low education to a penalty at high, is robust and matches the CBO total-compensation gradient, but it is steepest and best-established for the federal government and smaller and more contested for state and local, where wage-based estimates run from a slight premium to a single-digit penalty depending on how benefits are valued. The reading that government's high floor is partly a union effect is an inference from occupation-group union rates (uniformed and frontline roles are far more unionized than government's lawyers, analysts, and engineers), not a single published within-government number.

Federal, state, and local stay separate because they have opposite signs. Federal pay is modestly above private on average; state and local are below. A single "public sector" average hides the story.

Cities. City-government figures come from each city's own published payroll file (New York, Los Angeles, Chicago, San Francisco, Seattle), full-time base or regular pay, deflated to 2026 dollars. Free-text job titles are mapped to occupations by keyword, which is approximate. The private comparator is the city's own metro private sector (its central county or counties) from Census microdata, not the whole state. Many large cities publish nothing usable and are absent.

What this cannot say. The top 1% of wages cannot be split public versus private from survey data; those figures are economy-wide. Occupation coding is not perfectly consistent across two decades, so I map to broad domains rather than chase fine detail. Some of the highest-paying private roles (product and platform engineering, elite data science) barely exist as government job classifications, so they never enter the comparison at all, which biases the measured gap downward by an amount these data can't pin. The analysis is descriptive, not causal.