← Back to story

PhiladelphiaLearning Networks & geographyMethodology recipe

Network 2 has a 79-point spread on PSSA ELA — wider than the Bronx range in NYC

A reproducibility log: the data this analysis touched, the queries it ran, and how a third party would re-run it.

Summary

Grouped philly_schools by `learning_network`, computed min/median/max/range of `pssa_all_ela_proficiency` per network, restricted to networks with ≥5 schools.

Data sources

  • Database tablephilly_schools

    One row per Philly school. PK is ulcs_code (SDP canonical, = id_eos in PSSA, = SRC_School_ID × 10). Carries aun_code + pa_code for PDE-side joins.

  • Database tablephilly_school_year_metrics

    Long-format facts. PK (school_ulcs, year, metric_key, subgroup, population_cut). Carries comparison_group_percentile + citywide_percentile (direction-adjusted).

  • External datasetSDP PSSA & Keystone (OpenDataPhilly CDN)

Steps

  1. Network-level aggregate; filter ≥5 schools per network to avoid noise.

    SELECT s.learning_network, count(*),
           min(m.value), percentile_cont(0.5) WITHIN GROUP (ORDER BY m.value), max(m.value),
           (max(m.value) - min(m.value)) AS range
    FROM philly_schools s
    JOIN philly_school_year_metrics m ON m.school_ulcs = s.ulcs_code
    WHERE m.metric_key='pssa_all_ela_proficiency' AND m.subgroup='ALL' AND m.population_cut='acct'
    GROUP BY s.learning_network HAVING count(*) >= 5
    ORDER BY range DESC;

Caveats

Networks are organizational sub-groupings, not strict geographic clusters. The wide-spread vs narrow-spread interpretation should consider that Network 9's narrow spread is at uniformly low outcomes (8-36%), while Network 2's wide spread includes both 10% and 90% schools.

Reproduce

Load Master School List + SDP PSSA + run percentile compute. Then SQL.

The recipe lives at data/cities/philly/stories/recipes.ts in the repo.