
A zoning report engine for Toronto properties
ZoningPal turns a manual zoning research workflow into a live report product. It combines spatial data, exact by-law loading, deterministic rule checks, AI-assisted reasoning, and PDF generation into one pipeline.
Pages in sample report
Spatial tables queried
Local by-law text files
Typical report generation target
The hard part is not the PDF. It is assembling the right context.
A zoning report is only useful if the system knows which parcel, zone, overlay, exception, policy area, and by-law sections actually apply. That is where the product earns trust.
Address, PIN, legal description, zone label, overlays, policy area, PMTSA/IZ status, heritage status, lot area, frontage, depth, and mapped site dimensions.
Base zone rules, overlays, site-specific exceptions, height, density, setbacks, streetwall rules, lot coverage, amenity space, and official plan context.
Parking, visitor parking, accessible parking, bicycle parking, loading spaces, permitted uses, conditional uses, and explicit removals or prohibitions.
Specific references, glossary, City of Toronto contact information, report ID, run date, and disclaimers that make the output usable as an informational brief.
Structured reasoning over deterministic context
The system does not ask an AI model to guess from a pile of municipal PDFs. It first builds the exact property context, then uses AI where explanation and synthesis are useful.
Toronto address
City spatial data
Local by-law text
Exact context before AI reasoning
PostGIS
Resolve parcel, zone, overlays, exceptions, dimensions, and policy layers.
By-law Loader
Load only the applicable provisions, definitions, overlays, and exceptions.
Rights Model
Assemble development rights from exact context before explanation.
Rule Engine
Calculate parking, loading, bicycle, accessibility, and form controls.
Report Layer
Generate cited PDF output and reusable API artifacts.
Deterministic context
AI-assisted synthesis
Traceable citations
Structured analysis
PDF zoning brief
API response
The key design decision is sequence. ZoningPal narrows the property context first, then lets AI explain and synthesize the already-assembled facts. That keeps the product closer to a regulatory workflow than a generic chat interface.
Spatial Extraction
PostGIS resolves the property boundary, zone, overlays, exception, official plan designation, heritage layers, parking zone, bicycle zone, policy area, and parcel dimensions.
Exact By-law Loading
The backend loads the relevant by-law sections from local text files: base provisions, definitions, overlays, suffixes, and Chapter 900 site-specific exceptions.
Rights Analysis
Claude analyzes development rights over structured context assembled by the system. It is not searching a generic document pile.
Deterministic Checks
Parking, loading, bicycle, accessibility, heritage, policy-area, and form-control calculations run through explicit rules and structured tables.
Report + API Output
The system returns structured data, generates a professional PDF, stores report artifacts, and exposes analysis endpoints for platform integration.
A product stack built around zoning accuracy
The architecture is intentionally boring in the right places: typed contracts, explicit phase outputs, spatial database queries, deterministic calculations, and traceable report generation.
React / TypeScript
Address search
Interactive zoning map
Account and credits flow
Saved reports
Node / Express
Pipeline conductor
Retry and artifact tracking
Zod contracts
Shared data dictionary
PostgreSQL / PostGIS
Supabase Auth + Storage
City spatial data
Local by-law text files
Structured JSON rule tables
Claude / OpenAI reasoning
Stripe report purchases
Puppeteer / Handlebars PDF
Signed report URLs
API integration path
Not an AI chatbot for zoning
A generic chatbot can sound confident while missing the exact overlay, exception, parking zone, or policy-area modification that changes the answer. That is not enough for zoning.
AI after the facts are assembled
ZoningPal first resolves the parcel and loads the exact applicable rules. AI helps synthesize development rights and explanations after deterministic context has been assembled.
Live report flow, integration, and public demos
ZoningPal shipped as a paid report flow, was integrated into Bloom Hub through the API, and was presented publicly through AI Tinkerers Toronto and Innovate Toronto.
Users can purchase credits, run a property analysis, and receive a generated PDF report.
Bloom Hub uses ZoningPal as its zoning-analysis layer through the same API model.
Presented at AI Tinkerers Toronto in Shopify’s Toronto office, and later at Innovate Toronto.





A generated informational zoning brief
The sample report pulls the product together end to end: parcel context, governing controls, standards, permitted uses, form controls, references, glossary, and disclaimer.