The legacy of the small-schools movement: 20 years later, did it work?
A reproducibility log: the data this analysis touched, the queries it ran, the outside sources it leaned on, and the steps a third party would follow to re-run it.
Summary
Used New York City's DBN-suffix convention as a cohort proxy for the 2002-2008 Bloomberg-era small-schools wave (suffix ≥ 500), validated against MDRC's documented count of 23 large 'failing' high schools closed during the program. Pulled per-cohort survival rates and average four-year graduation-rate trajectories.
Data sources
- Database tableschools
One row per New York City public school (DBN, name, district, borough, school_type, grade_band, latest_enrollment, proclivity_decile, proclivity_score, closed_at, admission_category).
- Database tableschool_year_metrics
Long-format per-school per-year metric facts (school_dbn, year, metric_key, subgroup, value, suppressed). Loaded from DOE/NYSED public files via scripts/loaders/*.
- Loader script
scripts/loaders/_small_schools_query.ts - Cached output
data/stories/small-schools-data.json
Steps
Split high-school cohort by DBN suffix. Sanity check: cohort with suffix <400 should yield ~23 closed schools, matching the MDRC-documented 2002-2008 closure wave.
SELECT CASE WHEN (SUBSTRING(dbn FROM 4 FOR 3))::int >= 500 THEN 'small_post2002' WHEN (SUBSTRING(dbn FROM 4 FOR 3))::int >= 400 THEN 'medium' ELSE 'legacy_comprehensive' END AS cohort, COUNT(*), COUNT(*) FILTER (WHERE closed_at IS NOT NULL) FROM schools WHERE grade_band::text='HS' GROUP BY cohort;Average per-cohort four-year graduation rate by year, restricted to still-open HS schools.
SELECT cohort, year, AVG(value), COUNT(DISTINCT school_dbn) FROM schools s JOIN school_year_metrics m ON m.school_dbn=s.dbn WHERE s.grade_band::text='HS' AND s.closed_at IS NULL AND m.metric_key='graduation_rate_4yr' AND m.subgroup='ALL' AND m.suppressed=false GROUP BY cohort, year;
Caveats
The DBN-suffix heuristic is approximate. Some legacy schools carry suffixes ≥ 400 (DeWitt Clinton is 440); some post-2002 creations may have inherited low suffixes. The 23-closure match against MDRC's documented closure count is a validation point, not a proof. Aggregate grad-rate gap (small schools 5 pp below legacy) reflects student-selection differences, not a small-school disadvantage — MDRC's lottery-based design (which controlled for selection) found a positive program effect.
References
Reproduce
Run `npx tsx scripts/loaders/_small_schools_query.ts > data/stories/small-schools-data.json`. To strengthen the cohort definition: pull MDRC's 123-school study roster (in their 2014 sustained-effects publication) and replace the DBN-suffix heuristic with a name-by-name DBN list. To replicate MDRC's lottery-based effect estimate, the city Department of Education's Office of Enrollment holds the high-school-admissions lottery data; access typically requires a research-data agreement.
The recipe lives at data/stories/recipes.ts in the repo. Corrections welcome.