Capacity
The seats the district's Facilities Master Plan assigns the school's site: the denominator of utilization. For a school on several sites of its own, the sites' capacities are added.
Measured in count; neither direction is 'better'.
Identifiers
key site_capacity · unit COUNT · direction NEUTRAL
- 1How it was computedvalue = published site capacity summed over the school's own sites (a blank capacity adds nothing; an explicit 0 counts)
- Read the committed extract of the district's Facilities Master Plan dashboard (data/cities/philly/reference/parsed/sdp_facilities_sites.csv, one row per site × programme) and keep one row per site.
- Link each site to the directory schools (the Master School List) whose ULCS code it carries. A school whose site also hosts another directory school gets no value: that site's figures are the total of every programme on it.
- For every other school, combine its own sites: capacity summed (a blank adds nothing, an explicit 0 counts), allotted Pre-K seats summed, and enrollment counted once, because the dashboard repeats the school's whole enrollment on each of its site rows.
- Store the school's capacity, its enrollment plus allotted Pre-K seats, its allotted Pre-K seats, and utilization = 100 × (enrollment + Pre-K seats) ÷ capacity. A school with no capacity, a capacity total of 0, or no enrollment gets no value rather than a zero.
- 2The load that wrote it1 data load wrote this metric
Loaded Source file Years Cells Suppressed File hash Commit 2026-09-24 sdp_facilities_dashboard 2024-25 223 0 18b9791617ed… 3b369d04 The hash identifies the exact file version read; the commit identifies the exact code. Both are recorded at load time.
Evidence: facilities.ts
- 3The publisher's fileFacilities Master Plan dashboard, SY2024-25
Facilities Master Plan dashboard, SY2024-25 — School District of Philadelphia, Office of Operations. The data behind the district's Facilities Master Plan. Per site: capacity, October 1 enrollment, the Pre-K seats allotted to the site, utilization and the plan's Program Change recommendation. Per building: floor area, year built, condition index, use type and a second capacity figure. One vintage, SY2024-25.
- format
- Qlik Sense app with no file download, read through its Engine JSON API into two committed CSVs
- join key
- ULCS Code; a site can host several programmes and a school can sit on several sites, so the link is a join table
- landing page
- https://www.philasd.org/fpp/
- Not a file. pipeline_philly/fetch_facilities.py reads the app and writes data/cities/philly/reference/parsed/sdp_facilities_sites.csv and sdp_facilities_buildings.csv; the loader reads the committed site CSV (its hash pin covers both), never the network, and the analysis packet reads the building CSV.
- Three grains. A site hosting several programmes repeats the same figures on every programme's row (91 of 328 sites). A school on several sites carries its whole enrollment on each of them while capacity is split per site. The building rows repeat a building once per programme on its site (502 rows, 399 buildings).
- Utilization includes the allotted Pre-K seats (seats, not enrolled children) in the numerator.
- One vintage: the app's School Year field is cross-joined onto every site and carries no second year of capacity.
Evidence: source registry (sources.yaml) · sdp_facilities_dashboard: method doc
- 4How it was checkedChecks: 4 passed
- ✓ passedCheck (iv): each site's published utilization equals (enrollment + allotted Pre-K seats) ÷ capacity on 245 of 245 sites carrying all three, within 0.005; any failure stops the load
- ✓ passedCheck (v): enrollment with allotment equals enrollment plus allotted Pre-K seats on 285 of 285 sites carrying either; any failure stops the load
- ✓ passedCheck (vi): a school whose capacity sits on one site reproduces that site's published utilization, 220 of 220 within 0.005; any failure stops the load
- ✓ passedEnrollment agreement: a school whose own sites carry different enrollments stops the load, since counting it once is right only while the dashboard repeats it; none do in SY2024-25
- 5Assumptions & caveatsAssumptions and caveats
Assumptions
- A school on several sites of its own is one school spread across them: the enrollment is counted once and the capacities are added. The dashboard's own per-school measure (Site Utilization (MAP)) follows the same rule.
- A site shared only with programmes the directory does not carry is attributed to the school it hosts. In SY2024-25 those programmes are all Pre-K (71 of the 223 schools with a value), and the Pre-K seats allotted there are in the school's numerator.
Caveats
- SY2024-25 only: the plan has one published vintage, so there is no trend.
- A school sharing a site with another directory school has no value; its school page shows the site's figures, labelled as the site's.
- Three schools have capacity on two sites of their own (2210, 7440, 8770). The district's per-site utilization for each of those sites divides the whole school by one site's capacity, so it differs from the school value.
- Three school values may have a short denominator: Olney Elementary (7400), The Workshop School (8560) and Walter Saul (6040) each have a linked site with a blank or zero published capacity that holds classroom buildings. They are flagged in the method doc and not adjusted.
- Descriptive, not ranked: the percentile batch leaves out every Facilities key, so these cells carry no peer or citywide percentile.
Coverage by year, sector, and subgroup
Cells served, with how many are suppressed (withheld by the publisher for small groups).
| Year | Sector | Group | Cells | Suppressed |
|---|---|---|---|---|
| 2024-25 | District-run | All students | 200 | 0 |
| 2024-25 | Charter | All students | 21 | 0 |
| 2024-25 | Special education | All students | 1 | 0 |
| 2024-25 | Contracted | All students | 1 | 0 |
On a school page this measure is in the enrollment, capacity and utilization section, which is not linked number by number.