← Back to story

Specific schoolsMethodology recipe

When the principal leaves, scores fall — but not always

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

We don't have principal-tenure data loaded. The story body describes how a proper analysis would proceed using Wayback Machine snapshots of the city's school-finder page; the data analysis pulls academic-composite trajectories of schools known publicly to have changed principal in a specific year as proxy.

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/*.

  • External datasetWayback Machine snapshots of schools.nyc.gov/find-a-school

Steps

  1. Identify a handful of schools with publicly-known principal changes (via press coverage).

  2. Pull their academic-composite trajectory before/after the change as illustrative cases.

Caveats

Selection bias is severe — schools where the press notices the principal change are not a random sample. The story explicitly notes this limitation.

References

Reproduce

To do the analysis properly: scrape Wayback Machine snapshots of schools.nyc.gov/find-a-school across years to build a principal-name × DBN × year table, then join with school_year_metrics for outcome trajectories.

The recipe lives at data/stories/recipes.ts in the repo. Corrections welcome.