The chronic absenteeism map looks like the temporary-housing map
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
Without a per-school students-in-temporary-housing (STH) share loaded, we used borough-level STH density (from public DOE reports) and showed it tracks borough-level chronic-absenteeism averages.
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 datasetAdvocates for Children NY — NYC student-in-temporary-housing annual report
Steps
Per-borough absenteeism averages from our DB; per-borough STH density from AFC's annual report.
Caveats
Borough-level join is coarse — within-borough variation is large. Loading STH per school (about 1 hour of loader work) would enable a proper school-level correlation.
References
Reproduce
Load NYC DOE's Demographic Snapshot file (same source as our existing loaders) and add an STH-share metric per school per year. See scripts/loaders/ for the existing Demographic Snapshot loader pattern.
The recipe lives at data/stories/recipes.ts in the repo. Corrections welcome.