Methodology & sources
Every line on this map is a real administrative boundary published by New York City. Here is exactly where each one comes from and what was done to it.
New York City is carved up by dozens of agencies into overlapping districts that rarely line up with one another. A single address can sit inside a community board, a City Council district, a police precinct, a fire battalion, a school district, a sanitation district, a health area, three different legislative districts and more — all at once. This tool lets you switch any combination of those boundaries on and off and see where they agree and where they cut across each other.
All 23 layers are official GeoJSON files from NYC Open Data, the great majority published by the Department of City Planning, or DCP (the others by the agencies noted below). Land layers are the versions clipped to the shoreline where the city provides them. Each dataset ID below links to its source page.
These are the current, in-effect boundaries: nearly every DCP layer here is release "26b" (published May 2026), and the redistricted political layers reflect the maps in force for the 2026 elections — the City Council lines adopted in 2023 and the Congressional, State Senate and Assembly lines used since 2024. (New York's congressional map faced a fresh court challenge in early 2026; after a U.S. Supreme Court stay in March 2026 the case was dropped, and the February 2024 map still stands.)
| Layer | Areas | Publishing authority | Dataset ID |
|---|---|---|---|
| Borough boundaries | 5 | NYC Dept. of City Planning | gthc-hcne |
| Community districts / boards | 71 | NYC Dept. of City Planning | 5crt-au7u |
| City Council districts | 51 | NYC City Council / DCP | 872g-cjhh |
| Community school districts | 33 | NYC Dept. of Education / DCP | 8ugf-3d8u |
| Police precincts | 78 | NYPD / DCP | y76i-bdw7 |
| Fire battalions | 49 | FDNY / DCP | xzng-ft6f |
| Fire divisions | 9 | FDNY / DCP | 68m2-uzcb |
| Fire companies | 348 | FDNY / DCP | bst7-5464 |
| Sanitation districts | 59 | NYC Dept. of Sanitation | i6mn-amj2 |
| Health center districts | 30 | NYC Dept. of Health / DCP | 6ez8-za84 |
| Health areas | 354 | NYC Dept. of Health / DCP | jntv-ngw5 |
| Business improvement districts | 76 | NYC Dept. of Small Business Services | 7jdm-inj8 |
| Commercial waste zones | 20 | NYC Dept. of Sanitation | 8ev8-jjxq |
| Hurricane evacuation zones | 6 | NYC Emergency Management / DCP | epne-qv9x |
| State Assembly districts | 65 | NYS / DCP | 5yfv-9hkp |
| State Senate districts | 28 | NYS / DCP | afns-vxeu |
| Congressional districts | 13 | US Census / DCP | j3u5-usz2 |
| Election districts | 4,214 | NYC Board of Elections / DCP | wwxk-38u4 |
| Neighborhood tabulation areas | 262 | NYC Dept. of City Planning | 9nt8-h7nd |
| Community district tabulation areas | 71 | NYC Dept. of City Planning | xn3r-zk6y |
| Census tracts (2020) | 2,325 | US Census Bureau / DCP | 63ge-mke6 |
| ZIP code tabulation areas | 221 | US Census Bureau | 35j5-n34v |
| Historic districts | 141 | NYC Landmarks Preservation Commission | skyk-mpzq |
Precinct 1, Manhattan CB 7, Assembly District 66) is built from the numeric code in the source file. Community-district codes above 18 are "joint interest areas" — parks and airports that belong to no community board — and are labeled as such.This map covers the jurisdictions that partition the whole city. A few other boundary systems are excluded because they're a different kind of thing: zoning districts (a land-use classification of every individual lot — its own dense map), school attendance zones (which change yearly and don't tile the city cleanly) and hazard overlays like Federal Emergency Management Agency (FEMA) flood zones. Higher- and lower-level cuts of layers already shown — Police Department patrol boroughs, sanitation sections, fire company response areas beyond what's included — are also left out to keep the map legible.
The whole pipeline is one script, scripts/build.py: it downloads each dataset's GeoJSON export, normalizes one label per feature, and writes a simplified file plus a manifest.json that drives the map's toggle panel. Layer definitions live in scripts/layers.json. Re-running the script picks up the latest published boundaries.
Built July 2026 · 23 layers · 8,529 individual district polygons · source data DCP release 26b.