← All proof trees

PhiladelphiaMetric proof

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

  1. 1
    How it was computedvalue = published site capacity summed over the school's own sites (a blank capacity adds nothing; an explicit 0 counts)
    1. 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.
    2. 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.
    3. 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.
    4. 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.
  2. 2
    The load that wrote it1 data load wrote this metric
    LoadedSource fileYearsCellsSuppressedFile hashCommit
    2026-09-24sdp_facilities_dashboard2024-25223018b9791617ed…3b369d04

    The hash identifies the exact file version read; the commit identifies the exact code. Both are recorded at load time.

    Evidence: facilities.ts

  3. 3
    The 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
    • 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

  4. 4
    How 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
  5. 5
    Assumptions & 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).

YearSectorGroupCellsSuppressed
2024-25District-runAll students2000
2024-25CharterAll students210
2024-25Special educationAll students10
2024-25ContractedAll students10

On a school page this measure is in the enrollment, capacity and utilization section, which is not linked number by number.