Part 8 of 9 in The Office That Tripled

Philly Schools Roster Now Lists One Position for Every Nine Students — Up From One in Fourteen Eleven Years Ago

SDP's roster grew 40% while enrollment fell 13%. The District roster now lists 1 position for every 9 students, up from 1 in 14.

Between 2014-15 and 2025-26, the School District of Philadelphia’s roster grew from 18,866 positions to 26,433, a 40.1% increase. Over the same window, the District’s own enrollment figures show District-sector students fell from 260,150 to 227,470, a 12.6% decrease. The two lines diverge.

SDP positions (left axis) and District-sector students (right axis), 2014-15 to 2025-26.

Back in 2014-15 the District had about 1 position per 14 students. Today it has 1 position for every 9.

It isn’t the teacher-to-student ratio, the one that gets argued in the headlines, and it hasn’t moved much over the decade. This is total positions across all ten role families, mapped in the piece that maps the District’s ten role families.

Two-thirds of the 43.7-per-1,000 rise came after 2022

SDP positions per 1,000 District-sector students, 2014-15 to 2025-26.

The ratio climbs in nine of the eleven years, from 72.5 per 1,000 to 116.2. The two years it doesn’t are 2015-16, when headcount dipped while enrollment ticked up, and 2021-22, the pandemic-era shake-out, when both fell at nearly the same pace.

Neither year represents a deliberate choice to stop expanding. 2015-16 was a headcount dip against rising enrollment: the ratio fell 6.2 per 1,000, which is what made the 72.5 starting point unusually low. The 2014-15 figure isn’t a stable equilibrium, it’s a one-year floor the District rebuilt from the year after. 2021-22 is the opposite case, both numbers shrinking through the same collapse. The line through them is a slow, persistent upward climb with two resting points.

Year-over-year change in the per-1,000 ratio, 2015-16 to 2025-26. Phase bands mark the three periods.

The decade splits into three phases. 2014-2019: the ratio falls 6.2 per 1,000 in the first transition year, then climbs 3 to 4 per 1,000 in each of the next three. The District is adding staff faster than it’s losing students, but not by much. 2019-2022: the pandemic hits. Both fall, the ratio climbs 5 to 6 per 1,000 for two years, then flatlines. 2022-2026: the post-pandemic expansion, averaging about 7 per 1,000 per year for four consecutive years, with a 9.1 spike in 2023-24.

Between 2021-22 and 2025-26 the ratio climbs from 88.3 to 116.2, an increase of about 28 per 1,000. That’s roughly two-thirds of the entire decade’s rise, packed into four consecutive year-over-year changes. Expanding headcount faster than enrollment was falling is a recent move, not a long-running one. It started the year after the pandemic emergency ended, when both revenue and staffing rebounded from the 2020-21 dip, and it hasn’t reversed.

School support (+15.4), per diem (+15.1) and central office (+5.0) account for nearly all the growth

Each bar is one of SDP’s ten role families, sorted by the change in positions per 1,000 District-sector students from 2014-15 to 2025-26. Role families defined in Piece 5 of this series.

Three role families grow faster per-pupil than the District average: school support (+15.4 per 1,000), per diem (+15.1), and central office (+5.0). Together those three account for the bulk of the 43.7-per-1,000 rise. Teachers, the largest family in absolute terms at 9,686 positions, added 8.8 per 1,000, roughly the system-wide pace.

Two families shrank. One of them contradicts the simple outsourcing story: in-house transportation fell by 0.9 per 1,000, while District-wide vendor spend tripled in the same window (Piece 3 covers the in-house collapse). The ratio is the in-house roster only.

Those three families describe very different kinds of work. School support is the staffing that shows up in a child’s day: counselors, social workers, school-based mental-health staff, classroom assistants. Per diem is contractors, long-term substitutes, and the leave-replacement staff who fill the gap when full-time positions sit vacant. Central office is the headquarters, the assistant superintendents and the strategy, operations, finance, and HR shops that Piece 2 walks through by name. A District that added the wraparound services schools historically didn’t provide, padded its substitute ranks, and staffed up its administrative core. That’s where the new positions went.

The average 500-student school gained 22 positions

The 2014-15 ratio of 72.5 per 1,000 worked out to roughly 36 positions for every 500 District-sector students at the system average. The 2025-26 ratio of 116.2 works out to roughly 58. Those 22 positions don’t all work in the building, and individual schools vary in size, configuration, and need, so the system-wide ratio doesn’t map directly onto any one of them. The shape of the increase is the same either way.

Per-pupil staffing is the input, not the output. The District has more people per student than it did in 2014-15. This analysis doesn’t say whether students are better-served, worse-served, or served the same.

A reader can hear this two ways, and the chart doesn’t pick one. The first reading: the District has become bloated, kept adding positions as enrollment fell, and the headline is itself the indictment. The second: the District finally staffed up the wraparound services, counselors and social workers and classroom aides, that Philadelphia schools have historically underprovided. Both readings are coherent with the chart. The per-pupil data answers how much and where. It doesn’t answer whether it was the right call.

690 positions moves the ratio 3.1 points. Closing the decade’s gap would take 5,000.

The 2026-27 cuts absorb 690 positions and roughly $169M (Piece 1 covers the mechanics). Removing 690 from the 26,433 roster moves the ratio from 116.2 to about 113.1, roughly −3 per 1,000, a 2.6% improvement. Even fully realized, that leaves the ratio 56% above the 2014-15 baseline. Closing half the gap would mean removing roughly 5,000 positions; closing it entirely would take close to 10,000. The 690 is a step, not the structural lever the framing often assumes. Only the first is currently on the table.

This is the in-house roster only

Vendor contracts, Durham School Services and Philly Transportation and City Cab and Whitsons and Maramont and Preferred Meal Systems, don’t appear in SDP’s roster, even though District spending on them tripled over the same window. A full per-pupil allocation story would need per-vendor headcount, which the public files don’t contain.

Some of that spend substitutes for in-house positions, bus drivers replaced by Durham and in-house cafeteria staff replaced by Maramont, while some of it adds capacity the District never had. Whether the ratio would rise or fall once vendor staff are layered in depends on which side of that split dominates. The public records don’t break it down that way.

Two smaller limits. The 12.6% enrollment decline is District-sector students only; SDP’s own published figure also includes Charter (~128,938 in 2025-26) and Alternative (~6,272) sectors, for a combined total around 362,680. And the ratio is positions, not people. A teacher who moves from one school to another counts twice across years, so the count of unique SDP employees is lower than 26,433.

Notes, Sources, and Methodology

Data: SDP’s quarterly position roster (2014-15 through 2025-26 snapshots) and annual enrollment data on OpenDataPhilly. Both come from SDP’s own publications.

Enrollment scope: District-sector only (227,470 in 2025-26, 260,150 in 2014-15). Charter (~128,938) and Alternative (~6,272) sectors excluded — SDP doesn’t employ charter staff, so the District-sector scope is the apples-to-apples denominator. Headcount scope: all position types, all in-house; vendor-contracted staff are excluded throughout, and the District doesn’t publish per-vendor headcount. Per-1,000 formula: positions divided by District-sector enrollment, multiplied by 1,000, rounded to one decimal place. Phase boundaries (2019, 2022) mark the pandemic-era shifts.