An interactive scrollytelling visualization of the Open Data Index for Schools (ODIS), version 3, published March 2026. ODIS scores every U.S. public high school on the socioeconomic stress of its surrounding community to help put education outcomes in context and support resource targeting.
DOI: 10.7281/t170wn53 · Authors: Hawken, Minar, Choudhary & Kulick (JHU School of Government and Policy + NAF)
| Path | What it is |
|---|---|
doi-10.7281-t170wn53/ |
The source ODIS dataset + official PDFs (see Dataset below) |
data-pipeline/ |
Python pipeline that joins coordinates and boundaries and builds the web data files — see data-pipeline/README.md |
app/ |
SvelteKit + MapLibre scrollytelling app (the visualization) |
analysis/ |
Exploratory analysis, hypotheses, and the color/binning study |
docs/ |
Editorial reference docs (dataset recap, hypotheses, copy deck) |
Run the app: build the data (data-pipeline/README.md), then npm --prefix app run build && npm --prefix app run preview.
doi-10.7281-t170wn53/index_scores_2026.csv — the corrected export we use (an earlier
index_scores_v3_2026.csv had a scientific-notation/leading-zero defect in NCESSCH).
One row per public high school (23,599 schools). Columns include:
| Column group | Description |
|---|---|
| School identifiers | NCESSCH, name, district, state, county, city, ZIP |
| Domain scores | Economic, Education, Health, Housing, Crime (0–100 scale) |
| Composite Score | Equal-weighted average of all 5 domain scores |
| Percentile ranks | National percentile rank for each domain and composite |
| Median values | National median for each domain and composite (for context) |
| Individual indicators | 17 raw indicator values underlying the domain scores |
| Demographic context | Race/ethnicity percentages (not inputs to the index) |
| SAB Available | Whether a School Attendance Boundary was used for geographic assembly |
| Domain | Indicators |
|---|---|
| Economic | Unemployment, Childhood poverty, Broadband access, Single-parent households |
| Education | Adults with <HS diploma, Adults with ≥2-year degree, Linguistic isolation |
| Health | Child health-insurance coverage, Infant mortality, SNAP recipients, Low birth weight, Lead exposure risk |
| Housing | Housing vacancy rate, Housing affordability (≥30% income on housing), Park access |
| Crime | Violent crime rate, Jail incarceration rate |
Data sources: ACS 5-year estimates (Census Bureau), County Health Rankings, City Health Dashboard (ParkServe, lead risk index), Vera Institute of Justice. Most measures reference year 2023.
All indicators are converted to a 0–100 scale. Directionality is normalized so that 100 always represents the highest community stress. Outliers are truncated at cut points (e.g., poverty capped at 40%; violent crime and incarceration capped at the 95th percentile).
Each domain score is an equal-weighted average of its indicators. The composite score is an equal-weighted average of the 5 domain scores.
No indicators are collected at the school level, so values are synthesized:
- If a School Attendance Boundary (SAB) exists (~12,807 schools): indicator values from all intersecting census tracts are population-weighted and averaged.
- If no SAB exists (~10,792 schools, including all NYC schools due to open enrollment): the school's ZIP code (ZCTA) is used to identify intersecting census tracts, which are then population-weighted and averaged.
County-level measures (unemployment, single-parent households, crime, incarceration, infant mortality, low birth weight) are applied uniformly to all schools in the county.
If an indicator is missing for a school, its weight is redistributed proportionally among the remaining indicators in that domain. If an entire domain is missing, it is marked N/A and its weight redistributes across the remaining domains. Notable missingness: lead exposure and park access are only available for the ~970 most-populous U.S. cities (City Health Dashboard), so they are missing for most rural schools; violent crime and infant mortality have ~25% missingness due to suppression of small counts. Puerto Rico has limited coverage.
doi-10.7281-t170wn53/ODIS README v3.pdf— Detailed data dictionary and indicator definitionsdoi-10.7281-t170wn53/ODIS Technical Report March 2026.pdf— Full methodology and validation report