1. Why this matters
Every Canadian municipality publishes permits differently. Calgary tags them by quadrant and work-class. Toronto routes them through BIAs and uses six different status codes. Montréal uses arrondissements and "permis de construction" terminology. Vancouver's API returns geometry that other cities don't.
For a contractor running outreach across multiple cities, the question becomes: what does each field actually mean, and is "Permit Issued" the same thing in Halifax as in Brampton? (Spoiler: no.)
This guide walks the most common permit fields across Canada's 10 launch markets, with a translation table at the end.
2. The universal fields
Almost every Canadian permit system tracks these:
- Permit number / ID — unique within the city, often prefixed by year (BP2026-01893 = Building Permit, 2026, sequence 1893)
- Address — street + ward/quadrant/arrondissement
- Permit class — Building, Electrical, Plumbing/Gas, Demolition, Sign, etc.
- Work class — Tenant Improvement, New Building, Addition, Renovation, etc.
- Applicant / contractor — the company submitting and/or doing the work
- Project value — declared construction value in CAD
- Issue date / filed date — when permit moved out of "applied" status
- Status — applied / issued / closed / cancelled (the precise codes vary)
3. The fields that differ
3.1. Calgary
Calgary's dataset is the most permissive — it has the most fields, the cleanest schema, and refreshes daily. Beyond the universal fields:
- quadrant — NW, NE, SW, SE. Most contractors think in quadrants. Critical for territory-based outreach.
- community_name — neighbourhood (e.g. Beltline, Mission, Hillhurst). Useful for niche players (heritage in Mission, restaurant in Beltline).
- permittype_mapped — Calgary's clean mapping to a small set of categories. Use this instead of raw permittype.
- statuscurrent — Issued, Cancelled, Hold, Withdrawn, Completed.
3.2. Toronto
Toronto's permit API is robust but field names follow Toronto's house style:
- BIA — Business Improvement Area. Toronto has 84 BIAs. Filtering by BIA gives you neighbourhood-density without ward boundaries.
- STATUS codes: Ready for Issuance, Permit Issued, Closed, Withdrawn, Inactive, Rescinded.
- WORK — the work-class field, with 30+ distinct values.
- WARD — Toronto has 25 wards as of 2018; filterable for council-level work.
3.3. Vancouver
Vancouver publishes via a Socrata API and a GeoServer WFS:
- typeofwork — clean enumeration: Alteration, New, Repair, Demolition, Other.
- permitcategory — Residential, Commercial, Industrial, Institutional, Mixed.
- specificusecategory — granular use (Restaurant, Office, Medical, Warehouse, etc.).
- geom — point geometry; useful if you need to map coverage.
3.4. Montréal
Montréal's data is in French (with some English co-fields):
- nature_travaux — work nature. Common values: Construction, Transformation, Démolition, Réparation, Aménagement intérieur.
- arrondissement — borough. Montréal has 19. Filterable for outreach by neighbourhood.
- type_local — building type (Commercial, Industriel, Mixte, Résidentiel).
- nom_demandeur — applicant name (often the entrepreneur général).
3.5. Edmonton
Edmonton's permits use a similar schema to Calgary's:
- permit_class — Commercial, Residential, Industrial
- work_type — New, Alteration, Demolition
- neighbourhood — instead of quadrants, Edmonton uses 400+ named neighbourhoods
3.6. Ottawa
- WARD — Ottawa has 24 wards
- TYPE — work-type enumeration similar to Toronto's
- VALUE — project value
- Ottawa permits also flag federal/embassy properties under a separate "extraterritorial" tag.
4. Status code translations
"Issued" doesn't mean the same thing everywhere. Here's the practical translation:
| What you want | Calgary | Toronto | Vancouver | Montréal |
|---|---|---|---|---|
| Permit just approved | Issued | Permit Issued | Issued | Émis |
| Work complete | Completed | Closed | Closed | Fermé |
| Cancelled by applicant | Withdrawn | Withdrawn | Cancelled | Annulé |
| On hold | Hold | Inactive | Hold | En attente |
For trade outreach, you usually only want "permit just approved" — the others have either moved past your window or aren't going to happen.
5. Project value: what's it actually measuring?
Project value in a permit is the declared construction value — what the applicant tells the city the work is going to cost. It's used to calculate permit fees, so applicants have a small incentive to declare it low. Real-world spend is typically 1.2-1.8× the declared value when you include change orders, FF&E, soft costs, and contingency.
The declared value still works as a relative ranking — a $1M permit is a bigger project than a $100K permit. Just don't quote the value directly back to the GC; they know it's understated.
6. The "trade signal" extraction
What Shovel Radar does on top of raw permit data is trade routing: looking at permit class + work class + project value + applicant + sub-permits, and inferring which trades are going to be hired. For example:
- Permit class = "Building", work class = "Tenant Improvement", value $200K-$1M, restaurant occupancy → HVAC, electrical, plumbing, refrigeration, restaurant equipment.
- Permit class = "Sub-Trade Electrical", parent is a $500K commercial permit → the electrical contractor is already chosen, but adjacent trades (low-voltage, fire alarm) probably aren't.
- Permit class = "Demolition", value $50K+ → bin rental, asbestos abatement, scrap metal salvage.
You can do this yourself, but it's tedious. The point of a permit feed is to skip that step.
7. Reading a permit in 30 seconds
For a working contractor reviewing the Monday Excel, the read order is:
- Address — is this in my service area?
- Value — is this in my deal-size band?
- Work class — does my trade fit this project?
- Applicant / contractor — do I have a relationship with them?
- When-to-call — is now the right phase, or do I queue for later?
If all five say yes, you make the call.
8. Further reading
- Calgary city page — flagship feeds for Calgary's permit system
- All 110 city pages — per-city flagship feeds
- When to Call: Construction Phases
Use the playbook
Shovel Radar gives you the trade-routed permit feed this guide describes.
Weekly Excel. 382 Canadian cities. Same playbook, scaled.
Get a 5-row sample · no credit card