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:
a geocode: the latitude and longitude of the point
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:
a name
a jurisdiction level
a stable identifier such as
geoidwhere availablea shape: the outline of the area the jurisdiction covers
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:
obtain a geocode, from an address or directly from a device
intersect the point with jurisdiction boundaries
order the results by level
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:
the queried point is marked by a vertical reference line
each jurisdiction boundary is drawn at a separate depth
the layers are labeled by name and level
the stack can be viewed from an oblique angle to show hierarchy clearly
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.
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:
United States of America
California
State Board of Equalization District 1
Congressional District 4
State Senate District 3
Assembly District 11
Solano County
Solano County Supervisorial District 4
Vacaville
Vacaville City Council District 5
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.
| 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:
every record names its source and the date of that source
each source is checked again as often as it publishes
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
| 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
U.S. Census Bureau. 2022 Census of Governments: Organization. U.S. Department of Commerce, 2024.
U.S. Census Bureau. TIGER/Line Shapefiles, 2023. https://www.census.gov/geographies/mapping-files/
Cybersecurity and Infrastructure Security Agency. .gov Registry Data, 2024. https://github.com/cisagov/dotgov-data
PostGIS Project. PostGIS—Spatial and Geographic Objects for PostgreSQL, 2024. https://postgis.net/
Google. Civic Information API, 2024. https://developers.google.com/civic-information
Google Civic Information API team. Notice of Turndown of the Representatives API, 2024. https://groups.google.com/g/google-civicinfo-api/c/9fwFn-dhktA
Open Civic Data. ocd-division-ids: Open Civic Data Division Identifiers, 2026. Commit
d3ab4ae. https://github.com/opencivicdata/ocd-division-idsOpen Civic Data. OCDEP 2: Division Identifiers, 2014. https://open-civic-data-docs.readthedocs.io/en/latest/proposals/0002.html
Melissa. Cicero API, 2024. https://cicero.azavea.com/docs
Ashlock, P. The Biggest Failure of Open Data in Government, 2013. Open Knowledge Foundation article
Civic Agency. DemocracyMap, n.d. https://www.civicagency.org/projects/
Open States. Open States: Making State-Level Government More Accessible, 2024. https://openstates.org/
Cooperrider, M. “Your Own Democracy” and Government 2.0 Platforms, 2009. P2P Foundation article
Popolo Project. Popolo: International Open Government Data Specifications, 2014. https://www.popoloproject.com/