Part 2 of 7 in The Overtime Machine
Philly Added 3,107 Workers. Overtime Grew 70% Anyway.
Philadelphia added 3,107 workers from 2023 to 2025. Overtime still grew 70%. Prisons hired 33% and overtime rose. Police cut and overtime nearly doubled.
Headcount +10%. Overtime +70%. Both grew together — hiring didn't slow overtime down.
The Long Trajectory
Overtime per employee, 2020–2030
Citywide overtime per employee, $8k in 2020 → $12k in 2025. Projected at the same +8.7% annual rate, the trajectory reaches about $18k by 2030.
Source: City of Philadelphia Employee Earnings, 2020–2025 (Salaried) · OpenDataPhilly
I wanted to know whether Philadelphia could solve its overtime problem by hiring more. The city added 3,107 workers between 2023 and 2025 — a 10% headcount increase — and overtime grew 70% anyway. So I pulled the earnings records and went department by department.
The first place to check is the case where the theory should work best — a department that was hiring aggressively. Prisons added 478 workers between 2023 and 2025, a 33% headcount increase, among the largest hiring surges in the city. Overtime per employee went from $14,057 to $16,850. Up 20%. The theory predicts the line bending the other way. It didn't.
If hiring more doesn't reduce overtime, the inverse is the next test — maybe hiring less does. Police went the other way. Headcount fell from 7,705 to 7,044, an 8.6% cut. Overtime per employee went from $12,370 to $22,996. Nearly doubling, while the department shrank.
Most departments cluster where both metrics rose. A handful — including Police — went the other way. The quadrant where the budget theory predicts departments should land barely has anyone in it.
Whatever's driving this, headcount isn't it. Could be minimum-manning rules — the kind that force overtime no matter how many people you put on the roster. Could be call volume, could be the schedule, could be something I haven't thought of. The two big experiments already ran: Prisons hired aggressively, Police cut, and overtime at both went up.
In 2025 the city spent $408 million on overtime. That's premium labor at one-and-a-half-times base. $73,000 is roughly what the average city worker makes in base pay — you do the math, that's around 5,600 full-time positions the city could have hired instead. The question that should follow — would 5,600 new hires have bent the overtime line? — is one the budget never asks. The Prisons data answers it for them.
Streets is the closest thing to an exception.
Per-employee overtime fell 40%, from $7,396 in 2022 to $4,473 in 2025. Hold on though: sanitation was carved out of Streets into its own department in February 2024, so by 2025 we're comparing different-sized Streets departments. Adjust for that and the decline still looks real. What Streets did, the data doesn't tell me.
Then there's Fleet. Per-employee overtime has climbed from $8,888 in 2022 to $10,786 in 2025 — a 6.7% annual rise. At that pace, the line doubles in roughly eleven years. By 2036, Fleet would be near $22,000 in overtime per employee. No published budget projection extends that far. Nobody is tracking this.
I wanted the conventional answer to hold up. The alternative is harder to act on — saying the lever is something nobody in city government has named yet, in a city that has tried everything except naming things. But the data ruled it out. I'm glad it did. $400 million a year shouldn't ride on a theory the numbers already disproved.
Notes, Sources, and Methodology
All figures come from the City of Philadelphia Employee Earnings dataset, published via OpenDataPhilly and accessed through the CARTO SQL API. The dataset contains quarterly earnings records for every City of Philadelphia employee, with pay broken out by category. The article's main claims rest on calendar years 2023 through 2025 (the most recent three full years); 2022 figures appear in one chart for context.
Per-employee averages are computed by summing each employee's four quarterly records within a calendar year, then averaging across employees within a department-year. Headcount counts unique employee IDs (public_id), not rows. The analysis is restricted to Salaried employees — non-salaried (part-time, seasonal, hourly) records are excluded because their quarterly figures don't represent a full-year full-time salary. Overtime figures refer to overtime_gross_pay_qtd, the overtime line item, not a percentage of total pay. Departments under 50 employees are filtered out of the scatter and ranking charts because percentage swings from a near-zero base distort extremes.