CheckerCoverage APIRevit Add-in AboutSources Methodology Run a check →
Log in Sign up free
Methodology

How we build the
rules behind every check.

Codecheck's rules are extracted directly from official ordinance PDFs across 505 jurisdictions and 10 states — not scraped, not summarized, not approximated. Every field cites the exact section it came from. Here's exactly how we do it.

Extraction process

Six steps from PDF to live checker

1

Source identification

We identify the authoritative published PDF for each jurisdiction — the official "as amended" version published by the municipality or county, not a third-party aggregator. Where jurisdictions publish on Municode or American Legal, we verify the codification status and use the municipality's own PDF when it supersedes the online version.

2

Text extraction

PDFs are converted to machine-readable text using pdftotext with layout-mode formatting to preserve table structure. We verify font embedding and text layer presence before extraction. Scanned PDFs without text layers are flagged and queued for OCR processing.

3

Structured extraction

Each category (dimensional rules, parking, signs, fences, etc.) is extracted per district and mapped to a strict JSON schema. Every field records the source section number alongside the value — so null values are documented as "not yet sourced" rather than silently omitted.

4

Depth scoring

Each jurisdiction receives a depth score (x/18) based on how many of the 18 compliance categories have been fully extracted. A category counts as "real" only if more than 70% of its fields are sourced. Scores are published openly on the Coverage page.

5

API validation

Every extracted jurisdiction is validated by running a compliance check against every registered zoning district. Any field access error (KeyError, TypeError) is treated as a blocking defect — the target is zero errors across all districts before a jurisdiction goes live.

6

Publication and monitoring

Jurisdictions go live in the checker and API. Ordinance amendment dates are tracked; when a jurisdiction adopts a new amendment, the affected sections are re-extracted and the depth score is re-validated. The rules.json file is versioned with each update.

Data schema

18 compliance categories

Every jurisdiction is mapped to the same 18-category schema. Categories that aren't yet extracted are marked explicitly rather than silently omitted — so the checker always tells you what it knows and what it doesn't.

Zoning
Dimensional Rules
Lot area, lot width, front/side/rear setbacks, building height, lot coverage, FAR. Per-district tables extracted from bulk regulations.
Zoning
Parking Requirements
Minimum ratios by use type, stall dimensions, aisle widths, loading spaces, drive-through stacking.
Zoning
Sign Rules
Max area/height by district and sign type, setbacks, permit exemptions, digital sign controls.
Zoning
Fence Rules
Height limits by district and yard type, material restrictions, permit requirements, intersection visibility.
Building
Building Code Amendments
Locally adopted editions (IBC/IRC/IMC/IFC/NEC/IECC) and specific local amendments — sprinkler triggers, high-rise thresholds.
MEP
MEP Equipment Rules
AC compressor yard restrictions, rooftop mechanical screening, outdoor condensing unit placement rules.
What we don't do

Our deliberate limits

We don't paraphrase
Every rule value is the literal number from the ordinance. We don't round, approximate, or summarize. If the ordinance says "7,800 square feet," that's what the checker checks against. The citation points to the exact article and table.
We don't hide gaps
Every jurisdiction publishes a depth score. Missing categories are marked "not yet sourced," not silently omitted. If a jurisdiction is 11/18, you'll see exactly which 7 categories haven't been extracted yet.
We're not a substitute for plan review
Codecheck is a research and pre-design tool. It checks the ordinance as written — it can't account for administrative interpretations, pending amendments, variances, or site-specific conditions that only a plan reviewer sees.
We show you our sources
The Sources page lists every document we extracted from, including the version, date, and codification status. If you want to verify a result, you can pull the same PDF and check the same section.

Have a question about the methodology?

If you spot an error or want to discuss the extraction process, reach out directly.

Codecheck AI Ask anything about jurisdictions & zoning rules
👋 Hi! I have zoning and building code data for 505 jurisdictions across 10 states. Ask me about setbacks, parking ratios, ADU rules, adopted building codes, or anything else in the dataset.