← Back to story

Perception gapsMethodology recipe

Wealthy-zoned schools where chronic absenteeism is rising — and what that says about the parents

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

Filtered schools to proclivity decile 1-3 (lowest-need / highest-resource) and identified those whose chronic absenteeism is higher than expected for their decile (residual > +10 pp from peer-decile average).

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

  • Database tableproclivity_score / proclivity_decile

    Composite student-body-challenge score (lower = lower-need, higher = higher-need) built from % economically disadvantaged, % English Language Learners, % students with disabilities. Decile 1 = lowest-need; decile 10 = highest-need.

Steps

  1. For each decile-1-3 school, compute (school's absenteeism) − (decile-average absenteeism). Rank descending.

Caveats

Wealthier families have more options to opt out of school (travel, illness, mental-health days) without negative academic consequences. The pattern is consistent with shifted family attendance norms post-COVID; we describe rather than ascribe.

Reproduce

Clone the repo, set DATABASE_URL to a Postgres with the project schema loaded, run `npx tsx scripts/loaders/<source>.ts` for any not-yet-loaded data, then issue the queries in the Steps section. The story page also lists the exact `metric_key`/`subgroup`/`year` filters used. Searchable by the answer's headline number — every figure is recomputable from the queries shown.

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