1970→2024
The schools they attend have been shrinking, too
85 years of K–12 enrollment, across every sector — traditional public, charter, parochial, independent and homeschool.
In the city, moves outweigh births
Census county-level components-of-change. For each county in the study area we sum natural change (births minus deaths) and net migration (people moving in minus moving out) across 2011–2025. In the five boroughs, natural change is strongly positive (+708,000) but out-migration is larger (−768,000), so the population swing comes from migration. The inner-ring suburbs work the other way: natural change of +269,000 against net migration of only −50,000, so their growth is births, not arrivals. Bergen and Union are the only two counties on this map with positive net migration over the period.
Methodology
Data. Decennial census counts of persons under 18 (NHGIS time-series table D08, "Persons by Age: Children and Adults") for 1970, 1980, 1990, 2000, 2010 and 2020. American Community Survey (ACS) 5-year estimates (B01001, sex by age) for endyears 2011 through 2024. Each year between 2011 and 2024 is a measured ACS estimate, not an interpolation. Pre-2011 years between decennial anchors are linearly interpolated.
Age-group filter. The "Age group" chip row lets you restrict the map, totals and ranked lists to one of four bands: under 5, 5–9, 10–14 or 15–17. Age-band counts come from decennial table P012 (2000 and 2010 SF1), P12 (2020 DHC), and ACS table B01001 (2011–2024) — the under-18 totals used everywhere else are sums of the same underlying variables. Because NHGIS time-series table D08 only splits persons into "under 18" and "18+", the age-band view is only available from 2000 forward; pre-2000 years and the 2001–2009 gap between decennials are not in the dataset. Age-band numbers are never interpolated — every reported year is a direct measurement.
Age-band totals do not match the under-18 totals. The age-band figures join their source tract directly, by exact GEOID, with no fallback. For 2000, and for every ACS year from 2020 on, the source is on 2000 or 2020 tract boundaries, and the tracts whose codes have no 2010 counterpart are dropped outright. The under-18 series handles the same tracts differently: it carries their last matching value forward (see caveat 3 below). The result is that regional totals in age-band mode run about 10–11% lower than the "All (under 18)" total for the same year — a shortfall of roughly 313,000 children for every year from 2020 forward, and 325,000 for 2000. For 2010 and for ACS 2011–2019, where the source is already on 2010 boundaries, the two agree exactly. Read the age-band totals as a consistent series for comparing bands and neighborhoods against each other, not as a count of every child in the region. Fixing this properly needs a population-weighted 2020→2010 tract crosswalk, which is the same missing piece noted under normalization.
Geography. The study area is the five boroughs of New York City plus every county sharing a land or water border with New York City: Westchester and Nassau (NY); Bergen, Hudson, Union and Middlesex (NJ). Everything is rendered on 2010 census tract boundaries. Tract polygons are clipped against TIGER/Line AREAWATER (rivers, harbor) and AREALM (parks, cemeteries, airports and military installations) so non-residential land is not painted by the choropleth. Neighborhood labels in the ranked lists come from NYC Planning's 2020 Neighborhood Tabulation Areas (inside the five boroughs) and TIGER PLACE 2020 (incorporated and census-designated places elsewhere).
Normalization across decades. Tract boundaries are redrawn every decennial census, so 1970, 1980, 1990 and 2000 tracts are not the same shapes as 2010 tracts. To compare apples to apples, each historical decade's counts are redistributed to 2010 tracts using an area-weighted crosswalk: for every historical tract we compute the geometric overlap with each 2010 tract it touches, and allocate its child count proportional to the area overlap. Historical tract polygons come from NHGIS (table extract #2, shapefiles US_tract_1970 through US_tract_2000). After redistribution, decade totals match the raw NHGIS sums within rounding - the redistribution doesn't change the regional total, it just moves counts between tracts that were split or merged. This is a geometric approximation; a fully population-weighted crosswalk (using 2010 block populations to decide where a split-tract's people actually lived) would be marginally more accurate but requires an additional step not yet implemented.
Density. Children per square mile = count ÷ land area in sq mi. Land area is computed from 2010 TIGER cartographic boundaries projected to EPSG:2263 (NY State Plane, Long Island, survey feet). Tracts under 0.005 sq mi (airports, parks, water) are excluded.
Share under 18. The "Share under 18" measure divides the count of children under 18 by the tract's total population and reports the result as a percent. This controls for population density — a tract with a lot of kids and a lot of adults has the same density score as a tract with a lot of kids and few adults, but a different share score. Denominators come from decennial table P012/P12 (2000, 2010, 2020) and ACS table B01001 (endyears 2011–2024), interpolated linearly across the 2001–2009 gap. Because pre-2000 totals aren't available in the same pipeline, the share view is restricted to the 2000–2024 window. In snapshot mode the map colors a tract by its share-under-18; in delta mode the map colors by percentage-point change (e.g. a tract that went from 25% to 20% shows as −5 pp, not −20%). Tracts with fewer than 50 children or fewer than 200 people total are masked.
Change calculation. The map colors each tract by percent change in density between the "from" and "to" year. The ranked "biggest gainers" and "biggest losers" lists, however, use absolute change in child count (kids added or lost) because percent change is unstable on small bases — a tract that went from 5 children to 500 is a +9,900% swing but not necessarily a bigger story than a neighborhood that added 20,000 children. The ranked lists also aggregate all tracts within a neighborhood (NYC Planning NTA, or TIGER place outside New York City) so the number reported is the true neighborhood-wide change, not a single cherry-picked tract inside it. Neighborhoods with fewer than 500 children at both endpoints are excluded. Tracts with no neighborhood match (typically large parks or unincorporated fragments at county edges) are excluded from the rankings but still appear on the map.
Tracts built from nothing. A few tracts went from near-zero child population to substantial — Battery Park City and Hudson Yards (landfill that didn't exist as residential land in 1970), Tribeca and Long Island City-Hunters Point (former industrial waterfront converted to residential), Co-op City and Starrett City (large housing complexes that opened in the early 1970s). These show as an amber color on the delta map rather than a percent-change red, because a percent calculation against a near-zero baseline is meaningless even when the underlying story is real. Criterion: fewer than 50 children in the "from" year, at least 300 in the "to" year.
Masking low-count tracts. Tracts with fewer than 50 children in both the "from" and "to" year (that aren't captured by the "built from nothing" rule above) are drawn in neutral gray rather than an extreme color. Without this mask the map is dominated by parks, cemeteries and institutional sites (Rikers Island, Prospect Park, Green-Wood Cemetery, Brooklyn Navy Yard) where the AREALM clip didn't fully remove the polygon and the residual sliver would otherwise show "−100%". Totals and ranked lists are unaffected; only the map color is masked.
Caveats. (1) The area-weighted crosswalk assumes uniform population density within each historical tract. Where a 1970 tract was split along a density boundary (e.g., one half a housing project, the other half a park), the split gets an even allocation rather than a population-aware one. (2) ACS 5-year estimates carry margins of error at the tract level; the ranked lists should be read as order-of-magnitude, not precise. (3) Tract GEOIDs for ACS endyears 2020 through 2024 use 2020 boundaries; where a 2020 GEOID differs from its 2010 counterpart the ACS value joins the 2010 tract by exact string match and non-matching tracts hold their 2019 values. (4) The parks/cemeteries/landmarks clip relies on TIGER AREALM, which is incomplete in urban areas — many New York City parks and most of its cemeteries are not in it. The low-count mask (above) compensates.
Regional total population. The "+1.2 million (+9%)" figure in the introduction is the change in the study area's total population between 1970 and 2024, computed from the same NHGIS time-series table used for the child counts (D08: under-18 plus 18-and-over gives total persons), on an unfiltered tract universe: 12,851,240 in 1970 to 14,004,331 in the 2020–2024 ACS 5-year, a gain of 1,153,091 (+9.0%). This is a wider universe than the map itself, which drops tracts under 0.005 sq mi and those without a full time series, so the regional totals shown on the chart are slightly lower. Pre-2000 totals are not otherwise in the pipeline, which is why the "Share under 18" view starts at 2000.
National comparison. The U.S. under-18 count for 1970 is 69.6 million, from the 1970
decennial census (Characteristics of the Population, U.S. Summary, table 52, as tabulated by
HHS/ASPE from Census sources). Other vintages of the same year put it at 69.7–69.8
million depending on whether the figure is the April 1 census count or a July 1 estimate; we
use the census count and round to 69.6M. The modern figure comes from the Census Bureau's
newest published population estimates — currently Vintage
2025, national age/sex file
NC-EST2025-AGESEX — which puts the July 1,
2024 under-18 population at
72,548,879 and the most recent year,
2025, at 72,021,348. Still
falling. The page reads these from national.json, rebuilt from whichever vintage
is newest, because each vintage revises the last and sometimes revises hard: Vintage 2024 had
put July 1, 2024 at 73,132,720, roughly 584,000 higher than Vintage 2025 does. Anything still
quoting a 73.1M national child population is reading a superseded estimate. The decennial
series runs 69.6M (1970) → 63.7M (1980) → 63.6M (1990) → 72.3M (2000): the
child population fell as the baby boom aged out, bottomed around the mid-1980s (July 1
intercensal estimates dip to roughly 62.5M in 1984), and then climbed back on the strength of
the millennial echo. Note that 1970 is the peak of the U.S. child population —
not of the baby boom itself, whose births peaked in 1957.
Sources. U.S. Census Bureau via api.census.gov. IPUMS NHGIS, University of Minnesota: Schroeder, J., Van Riper, D., Manson, S., et al. IPUMS National Historical Geographic Information System, version 20.0. Minneapolis: IPUMS. 2025. doi.org/10.18128/D050.V20.0. Source code: github.com/joshgreenman1973/nyc-child-density.