Papers · Jurisdictional Research

Juricode: A Spatial Index of Governance

An Approach to Resolving Any U.S. Address to Its Governing Jurisdictions

Ryan Wold · Civic Studio

Draft for review · v0.3.1 · November 10, 2026

This is a working draft, published here as it develops. The PDF is made when a version is released.

Abstract

This work started with a user-centered design question: “who is my government?” The question reflects a common mental model, in which government is one thing, with no distinction between federal and local. In practice, any address in the United States is governed by multiple overlapping jurisdictions. Existing systems usually answer only one part of that question, such as election district, tax jurisdiction, or Census geography. Juricode is the result: a spatial index that resolves an address to an ordered set of the jurisdictions that govern that point. The model combines geocoding, authoritative boundary data, and spatial intersection, and it keys every layer by Census GEOID and, wherever one exists, by Open Civic Data division identifier. The result is a reusable lookup layer for resident-facing civic tools, service routing, AI assistants that need structured jurisdiction context, and journalism and research. A live implementation returns eleven layers for an example address in Vacaville, California. Special districts are its largest open gap: all 39,555 counted by the 2022 Census of Governments are listed, but none yet has a boundary.

1 Purpose

Government authority is geographic, but most civic systems expose only one layer of that authority at a time. A resident may need to know the city, county, school district, congressional district, and special districts that apply to the same address. Those layers are real, but they are usually stored and surfaced separately.

Juricode is meant to solve that lookup problem directly. It gives a single answer to a simple user question: “who is (all) my government at this address?”

2 Working Definition

Juricode is the complete ordered set of jurisdictional boundaries that govern a specific geographic point.

A Juricode requires two inputs:

  1. a geocode: the latitude and longitude of the point

  2. a boundary dataset covering the jurisdiction types of interest

An address is the usual starting point, but it is a precursor rather than a requirement. Any source of coordinates works, such as the location a browser reports.

The lookup is a spatial containment query: every jurisdiction whose boundary contains the point belongs to the result. Appendix 13 states this in set notation.

The result is ordered from broadest to most local, for example: federal, state, congressional district, county, municipal, and then more local districts as available. The order is partial rather than strict. Congressional, state senate and state assembly districts all sit between the state and the county without containing one another, so the order ranks levels, not every pair of layers.

For a typical U.S. residential address, the result is a set of jurisdictional layers and their public entities.

3 Why a Jurisdiction Index Is Needed

The original question was basic: “who is my government?” The starting assumption is that people hold a singular mental model of Government, with a capital G. The structural reality is federated, decentralized, and localized by design, which also implies coordination costs. Jurisdictional, the application that provides Juricode, lowers those costs so that residents and public agencies can coordinate and collaborate more readily.

Existing lookup systems each answer part of the question, and each is typically scoped to a relatively narrow use case. Table 2 in Appendix 12 compares them. Juricode provides the common spatial layer underneath them.

4 Data and Resolution Model

4.1 Data Sources

Juricode depends on boundary and administrative data from authoritative, accurate sources. That is the requirement.

In the Jurisdictional implementation, the Census Bureau meets it: TIGER/Line shapefiles [2] supply the boundaries. CISA .gov registry data [3], state and local boundary datasets, and curated local contributions with provenance add to that base.

4.2 Jurisdiction Record

At minimum, each jurisdiction record should include, in this order:

  1. a name

  2. a jurisdiction level

  3. a stable identifier such as geoid where available

  4. a shape: the outline of the area the jurisdiction covers

  5. a parent reference where hierarchy is known

4.3 Identifiers

Each layer is identified by its Census GEOID together with its level, since the same GEOID digits can recur at different levels. Each layer also carries its Open Civic Data division identifier (OCD-ID) wherever one exists [7, 8], for example . An OCD-ID names a territory and needs no boundary file, so it complements the boundary rather than replacing it.

Special districts are the exception. The Open Civic Data repository lists only a few dozen, so Jurisdictional keys them by their Census of Governments unit identifier [1].

4.4 Spatial Query

In a PostGIS implementation [4], the core lookup is straightforward:

SELECT *
FROM jurisdictions
WHERE ST_Contains(
  shape,
  ST_SetSRID(ST_MakePoint(:lng, :lat), 4326)
)
ORDER BY level_rank;

Here level_rank is a numeric rank for each level, from federal down to the most local district, so the stack sorts by authority rather than alphabetically.

4.5 Pipeline

The operational pipeline is:

  1. obtain a geocode, from an address or directly from a device

  2. intersect the point with jurisdiction boundaries

  3. order the results by level

  4. serialize the results for downstream use

This turns fragmented boundary datasets into a single reusable answer.

5 Visualization

Juricode is easier to understand when rendered as a stack rather than a flat list. Each boundary occupies a distinct layer of governance, so the model lends itself to vertical display.

In the current visualization:

  1. the queried point is marked by a vertical reference line

  2. each jurisdiction boundary is drawn at a separate depth

  3. the layers are labeled by name and level

  4. the stack can be viewed from an oblique angle to show hierarchy clearly

image

The purpose of the visualization is explanatory. It helps a resident or staff user see that multiple governments apply to the same location at the same time.

image

6 API and Output Shape

Juricode can be exposed through a simple lookup endpoint:

GET https://jurisdictional.org/api/v1/juricode?address=300+Hemlock+St+Vacaville+CA

The response gives the geocoded point and the ordered list of jurisdictions:

{
  "data": {
    "address": "300 Hemlock St Vacaville CA",
    "latitude": 38.3649399,
    "longitude": -121.9999297,
    "jurisdictions": [
      {"level": "federal",
       "name": "United States of America",
       "geoid": "US",
       "ocd_id": "ocd-division/country:us"},
      {"level": "state",
       "name": "California",
       "geoid": "06",
       "ocd_id": "ocd-division/country:us/state:ca"},
      {"level": "county",
       "name": "Solano",
       "geoid": "06095",
       "ocd_id": "ocd-division/country:us/state:ca/county:solano"},
      ...
    ]
  }
}

At this address the live endpoint returns eleven layers, each with a GEOID and an OCD-ID:

  1. United States of America

  2. California

  3. State Board of Equalization District 1

  4. Congressional District 4

  5. State Senate District 3

  6. Assembly District 11

  7. Solano County

  8. Solano County Supervisorial District 4

  9. Vacaville

  10. Vacaville City Council District 5

  11. Vacaville Unified School District

The same stack can be explored as layers at https://civic.bot/explore?address=300+Hemlock+St%2C+Vacaville%2C+CA.

The lookup returns the full governing stack in a predictable order.

7 Practical Uses

Resident lookup. Juricode can support a direct answer to the question “who is my government?” A resident enters an address, or shares a location, and receives the governing jurisdictions tied to it.

Service discovery and routing. Many public questions are jurisdiction questions in disguise. A request about a permit, benefit, license, or complaint often depends on which government has authority at that location. Juricode can provide the routing layer for those services.

AI-assisted civic tools. An AI system can use Juricode as a structured lookup before answering downstream questions about representation, service availability, or local process. The value is that the jurisdiction context becomes inspectable and machine-readable.

Journalism and research. Reporters and researchers often work across many governments at once. Juricode gives them a consistent way to identify the governments behind a place. That supports accountability tools, comparison tools, and better data and information tools in general.

8 Coverage

Coverage is measured against the 2022 Census of Governments [1], which counted 90,888 governments. The figures below come from the Jurisdictional implementation, checked November 10, 2026.

Governments held, against the 2022 Census of Governments
Type Census 2022 Held
County 3,031 3,031
Municipal 19,491 19,396
Township 16,214 16,167
Special district 39,555 39,555 listed
School district 12,546 not yet classified

Special districts are listed with their county and Census function, and 11,278 have a website on record; none has a boundary yet, so none can appear in a point lookup. School district boundaries come from TIGER/Line and do appear in the stack, but they are not yet counted as governments, because the Census counts only independent school systems and dependence is not yet recorded for 5,893 of them. OCD-IDs are carried for all 56 states and territories, 3,167 of 3,235 counties, 441 of 444 congressional districts, and 19,380 of 32,531 places. The place share is lower because about 12,500 of those places are Census-designated places, which are statistical areas rather than governments and have no OCD-ID.

9 Limits

Juricode is useful, but it has limitations.

  • If the boundary data is incomplete or wrong, the result will be incomplete or wrong.

  • If an address geocodes inaccurately, the jurisdiction stack may also be wrong.

  • Special districts are not yet in the stack: they are listed, but their boundaries are still to be sourced, mostly from state and county records such as California’s LAFCo maps.

  • Jurisdiction boundaries change over time through annexation, redistricting, and other legal events.

These are implementation limits. They define the quality controls the system needs.

10 Data Maintenance

Jurisdictions change. Cities annex land, districts are redrawn after each census, and governments form, merge, and dissolve. A Juricode is as current as the data behind it, so maintenance is part of the model.

The requirement has three parts:

  1. every record names its source and the date of that source

  2. each source is checked again as often as it publishes

  3. every change is recorded with its evidence, who proposed it, and who reviewed it

In the Jurisdictional implementation, the Census Bureau sets the cycle: TIGER/Line boundaries are published each year, and the Census of Governments every five years. Between releases, changes arrive as contributions. Each contribution names its source, is reviewed before it is published, and stays on the record afterward. Coverage is measured daily against the Census of Governments, so each gap is visible as a count.

11 Conclusion

Juricode serves a practical civic use case. It treats the full jurisdictional stack for an address as a first-class lookup object. With authoritative boundaries, geocoding, and spatial intersection, it returns the governing context for any point, as complete as the boundary data behind it.

That makes Juricode useful as resident-facing civic infrastructure, as a routing layer for public services, and as a common spatial key across federated governments.

12 Related Work

Existing location lookup systems and their limits
System Resolves Does not resolve
Election systems Voting districts Broader jurisdiction context
Census geocoder FIPS, Census geographies Full governing stack
Google Civic OCD-IDs for an address (officials until 2025) Agencies, special districts
Tax services Tax districts, rates Non-tax governance
systems Local service entry County, state, federal context

The Census TIGER/Line Program [2] and the Census geocoder provide core geographic reference data and address-to-geography lookup, but not a complete governing stack.

The 2022 Census of Governments [1] is the reference count of U.S. governments and the source of Jurisdictional’s special-district list.

Your Own Democracy, associated with Gong Szeto’s Buckminster Fuller Institute work, focused on political engagement and participation rather than address-to-jurisdiction lookup [13].

DemocracyMap, an earlier project of Philip Ashlock and the author, addressed a similar user need by helping people identify civic entities tied to an address [10, 11]. Juricode narrows that broader civic-information problem to a reusable spatial index.

OpenStates [12], founded and long led by James Turk, provides strong state legislative coverage, but not the full multi-level jurisdiction stack.

Popolo [14], authored by James McKinney, standardizes government entities and relationships, but not point-to-boundary resolution.

The Open Civic Data project [7, 8] maintains the division identifiers Juricode carries. It publishes identifiers, not boundaries, and it lists few special districts.

Cicero [9], now offered by Melissa, matches an address to legislative districts and the officials who represent them at national, state and local levels. Its focus is representation; Juricode’s is the full set of governments and their identifiers.

The Google Civic Information API [5] resolved addresses to elected officials until its Representatives endpoints were retired in April 2025 [6]. Its divisionByAddress method still returns OCD-IDs for an address, but not the broader jurisdiction layer needed for agencies, services, and special districts.

Tax jurisdiction platforms such as Avalara, Vertex, and Sovos resolve addresses to tax districts and rates, but are limited to tax compliance use cases.

13 Formal Statement

This formalization was contributed by an AI assistant during editing. It restates the working definition in set notation for readers who prefer one.

Juricode(p) = {J ∈ 𝒥 | Contains(Jb, p)}

where p is the geocoded point, 𝒥 is the set of jurisdiction records, and Jb is the stored boundary for jurisdiction J. When the lookup starts from an address a, the point is p = Geo(a).

References

  1. U.S. Census Bureau. 2022 Census of Governments: Organization. U.S. Department of Commerce, 2024.

  2. U.S. Census Bureau. TIGER/Line Shapefiles, 2023. https://www.census.gov/geographies/mapping-files/

  3. Cybersecurity and Infrastructure Security Agency. .gov Registry Data, 2024. https://github.com/cisagov/dotgov-data

  4. PostGIS Project. PostGIS—Spatial and Geographic Objects for PostgreSQL, 2024. https://postgis.net/

  5. Google. Civic Information API, 2024. https://developers.google.com/civic-information

  6. Google Civic Information API team. Notice of Turndown of the Representatives API, 2024. https://groups.google.com/g/google-civicinfo-api/c/9fwFn-dhktA

  7. Open Civic Data. ocd-division-ids: Open Civic Data Division Identifiers, 2026. Commit d3ab4ae. https://github.com/opencivicdata/ocd-division-ids

  8. Open Civic Data. OCDEP 2: Division Identifiers, 2014. https://open-civic-data-docs.readthedocs.io/en/latest/proposals/0002.html

  9. Melissa. Cicero API, 2024. https://cicero.azavea.com/docs

  10. Ashlock, P. The Biggest Failure of Open Data in Government, 2013. Open Knowledge Foundation article

  11. Civic Agency. DemocracyMap, n.d. https://www.civicagency.org/projects/

  12. Open States. Open States: Making State-Level Government More Accessible, 2024. https://openstates.org/

  13. Cooperrider, M. “Your Own Democracy” and Government 2.0 Platforms, 2009. P2P Foundation article

  14. Popolo Project. Popolo: International Open Government Data Specifications, 2014. https://www.popoloproject.com/