Latest News

New Attribute: zoningurl Links Each Parcel to Its Zoning District

← All news

A parcel’s zoningcode tells you it’s in R-4. It doesn’t tell you what R-4 allows, and R-4 means something different from one town to the next. The new zoningurl attribute closes that gap: every parcel whose zoning district we can verify now links to that district’s page on ZoneOptics, with its permitted uses, lot sizes, setbacks and height limits, each cited to the section of the adopted ordinance it came from. About 73 million parcels in 1,524 counties, across all 50 states and DC, carry one today.

One code, three ordinances

Leesburg, Virginia has an R-4 district. So does Loudoun County, which surrounds the town, and so does Abington Township, Pennsylvania. They’re three different districts, written by three different governments:

R-4Town of Leesburg, VALoudoun County, VAAbington Township, PA
DistrictSingle-Family ResidentialSingle Family Residential (legacy)Medium-High-Density Residential
Lot size10,000 sq ft per unitNo minimum; 1 unit per 10,000 sq ft7,500 sq ft
Lot width (min)75 ft50 ft50 ft
Front yard15 ft (20 ft at a garage entrance)25 ft20 ft
Side / rear yard10 ft / 20 ft9 ft / 25 ft10 ft / 25 ft
Height (max)35 ft40 ft35 ft
Parcels2,8823,58013,739
zoningurl…/5144984.R-4…/51107.R-4…/4209100156.R-4

Figures for an interior single-family lot, from each ordinance’s dimensional table: Leesburg Zoning Ordinance §5.4.3; Loudoun County Zoning Ordinance Table 2.02.05.02-1, suburban option (the county stopped letting R-4 expand after December 13, 2023); Abington Township Zoning Ordinance §602, Figure 6.1.

Each parcel’s zoningurl points at the right one. The map at the top of this post shows what that looks like on the ground: inside the dashed Leesburg town line, parcels link to the town’s ordinance (green, with the town’s R-4 in dark green); outside it, they link to Loudoun County’s (amber, with the county’s PD-H3 neighborhoods east of town in dark amber).

The ZoneOptics page for Abington Township, Pennsylvania's R-4 Medium-High-Density Residential District: a lot diagram with 20-foot front, 25-foot rear and 10-foot side setbacks on a 50-foot-wide lot, a setbacks table, height and bulk limits of 35 feet and 40% lot coverage, and a provenance panel citing Article VI, Section 602, Figure 6.1 of the township's zoning ordinance
Where zoningcode.link/4209100156.R-4 leads: Abington Township’s R-4 on ZoneOptics, its standards read from Figure 6.1 of the township ordinance, with a link to the source chapter.

Finding whose ordinance applies

The hard part isn’t the code; it’s knowing whose code it is. A county isn’t enough: inside city limits the city’s ordinance governs, and across much of the Northeast and Midwest, townships zone their own land. For each parcel we take the first of these that applies:

  1. The incorporated city, town or village the parcel sits in, keyed by its 7-digit Census place GEOID. Leesburg is 5144984.
  2. The township or town, where that county subdivision is a government. Abington Township is 4209100156, its 10-digit county subdivision GEOID. Townships that leave zoning to their county (1,385 of them, in Illinois, Indiana, Kansas, Minnesota, Missouri, Nebraska, North Dakota, South Dakota and Wisconsin) fall through to the next step.
  3. The county, keyed by its 5-digit GEOID. Loudoun County is 51107.

Census-designated places don’t count, because they have no government. Ashburn, Virginia is one, so all 15,429 Ashburn parcels in our data link to Loudoun County’s ordinance. The rule matters at scale: in a sample of 22,600 parcels across 58 counties, 41% sat inside an incorporated place, where the county’s ordinance doesn’t apply.

Verified, or empty

We only write a zoningurl when we can name the jurisdiction that governs the parcel, ZoneOptics covers that jurisdiction, and the parcel’s code is a district there. Nothing falls back. If a city isn’t on ZoneOptics yet, its parcels don’t borrow the county’s link, because the county’s R-1 is not the city’s R-1. Values that aren’t districts, such as SEE ZONING, NO VALUE or a bare number from a tax roll, get no link either. A NULL zoningurl is coverage we haven’t reached yet, never a link to the wrong rules.

The link also carries the district the way its ordinance spells it. Loudoun’s tax roll records Ashburn’s planned neighborhoods as PDH-4; the county ordinance calls the district PD-H4, so the link is 51107.PD-H4. In Lower Merion Township, Pennsylvania, LDR-4 links as the ordinance’s LDR4.

zoningcode.link: the link is the address

Every zoningurl is a zoningcode.link address: the jurisdiction’s GEOID, a dot, and the zone code.

The zoningcode.link home page: the heading Short links to zoning districts, and the link zoningcode.link/5144984.R-1 broken into its parts, 5144984 for the Town of Leesburg, Virginia by its Census GEOID and R-1 for the zone code as the ordinance writes it, which opens zoneoptics.us/localities/5144984/districts/R-1
The anatomy of a link, from zoningcode.link.
$ curl -sI https://zoningcode.link/5144984.R-4
HTTP/2 302
location: https://zoneoptics.us/localities/5144984/districts/R-4

There’s no database behind the redirect and no lookup table: the ID decodes straight to the ZoneOptics page, so you can build a link yourself from a jurisdiction’s GEOID and a code, and one can’t break because a mapping table was rebuilt. Characters a URL can’t carry are percent-encoded, so Yakima County, Washington’s R-10/5 is 53077.R-10%2F5. The redirect is a 302 rather than a permanent 301, so if a district is corrected, the same link follows it.

More examples

Parcel inOrdinancezoningcodezoningurl
Leesburg, VATown of Leesburg (incorporated town)B-2zoningcode.link/5144984.B-2
Ashburn, VALoudoun County (Ashburn is a CDP)PDH-4zoningcode.link/51107.PD-H4
Abington Township, PAAbington Township (zoning township)R-4zoningcode.link/4209100156.R-4
Lower Merion Township, PALower Merion Township (ordinance spelling)LDR-4zoningcode.link/4209144976.LDR4
Upper Merion Township, PAUpper Merion Township (zoning township)R-2zoningcode.link/4209179136.R-2

Where to find it

  • Bulk downloads and the Web API. zoningurl is column 95 in the data content reference, a nullable string next to zoningcode and zoningdesc.
  • The data explorer. In the explorer’s county sample table every zoningurl is a live link: pick a county, scroll to the zoning columns, and click through.
  • By hand. Any zoningurl works in a browser, a spreadsheet cell or a GIS attribute table. It’s a plain URL.

Coverage grows as ZoneOptics reads more ordinances. If you need zoning links for a city or county that doesn’t have them yet, get in touch.