Methodology
How Zonloty Reports Are Generated
A detailed explanation of our research pipeline, source selection, AI analysis process, data freshness, and the known limitations of machine-generated zoning research.
Phase 1: Source Discovery
When a report is requested for a municipality, our system executes a structured series of search queries targeting eight distinct categories of zoning information:
- Zoning code & ordinances — The current municipal zoning ordinance or unified development code, typically hosted on Municode, American Legal Publishing, or the town's own website.
- Planning board activity — Recent meeting agendas, minutes, and staff reports that reveal pending amendments, active applications, and board interpretation of existing rules.
- Board of appeals records — Variance and appeal decisions, which reveal how strictly the code is interpreted and what exceptions have been granted.
- Use tables & dimensional standards — The specific permitted use tables and dimensional standards tables — setbacks, height limits, FAR, density — that define what you can build in each district.
- Overlay districts — Flood hazard, historic, aquifer, coastal, and design-review overlay districts that add requirements on top of base zoning.
- Parking & site development — Parking ratios, bicycle parking, loading requirements, signage, and landscaping standards.
- Approval processes — Site plan review, special permit, and subdivision procedures — who reviews, what's required, and typical timelines.
- Special uses — ADU rules, home occupation regulations, short-term rental policy, cannabis provisions, and other topics with dedicated code sections.
Each category generates two candidate URLs from web search. After deduplication, we collect up to 15 unique URLs for scraping in Phase 2.
Phase 2: Document Retrieval
Each candidate URL is scraped to extract the full text of the page in structured markdown format. We filter out pages with insufficient content (under 150 characters of text) and sort remaining documents by content length, prioritizing the most substantive sources.
Some URLs fail to retrieve — government PDF files, JavaScript-heavy GIS portals, or sites that block automated access. These failures are logged as warnings but don't halt the report; the pipeline continues with whatever documents were successfully retrieved.
Each retrieved document is tagged with its source URL, the category it was retrieved under, a timestamp, and any title or description metadata available from the page.
Phase 3: AI-Assisted Analysis
The retrieved documents are passed to a large language model with a structured prompt that instructs the model to synthesize the source material into a standardized report schema. The model is explicitly instructed to:
- Ground all conclusions in the source material — not general knowledge about zoning law
- Never fabricate specific zoning facts (setback distances, height limits, FAR values)
- Populate the data gaps section when source material is insufficient, rather than speculating
- Distinguish adopted law from pending proposals
- Preserve original phrasing from the source documents for dimensional values
- Note the source document that supports each material claim
The report schema is validated against a strict type definition to ensure structural completeness before storage. Reports that fail validation are not surfaced to users.
Report Structure
Every Zonloty report contains two layers:
General Zoning Analysis— factual description of the municipality's zoning framework: districts, use regulations, dimensional standards, overlay districts, parking rules, site development standards, ADU and special-use rules, nonconforming use provisions, environmental constraints, and approval processes.
Investor Intelligence — inference-based analysis of deal feasibility by project type (ADU, multifamily, mixed-use, short-term rental, etc.), approval complexity and risk, regulatory constraints, economic drivers, policy direction, and precedent patterns from board activity. These sections use cautious language to reflect that they are analytical interpretations, not determinations of legal right.
Data Freshness
Reports are generated at the time of request and cached for seven days. Subsequent requests for the same municipality within seven days return the cached report rather than triggering new research. Public town pages on Zonloty display when the report was last researched.
Zoning codes change. Amendments, rezoning petitions, overlay additions, and policy shifts can alter what a code says between our research date and the time you read it. Always verify material facts with the relevant planning department — particularly for recent changes — before making investment or development decisions.
Known Limitations
- PDF-heavy municipalities — Many towns publish their zoning codes only as scanned PDFs that automated tools cannot fully read. Reports for these municipalities may have larger data gaps.
- Recent amendments — Zoning amendments adopted in the days or weeks before a report is generated may not yet appear in online code repositories, which can lag behind adopted ordinances.
- Informal interpretations — Planning departments sometimes apply rules informally in ways that differ from the written code. Our reports reflect the written code, not undocumented administrative practice.
- Very small municipalities — Towns with minimal online presence may have insufficient public source material to support a complete report. In these cases, the data gaps section will be more extensive.
- No legal advice — Zonloty reports are research tools. They do not constitute legal advice and are not a substitute for review by a licensed land-use attorney on a specific project.