Guide
Using permit data without fooling yourself
The useful thing in this file is that it is public, address-level, and dated. The dangerous thing is treating a copied row as a live job site. This guide is about the first use, with the limits written down.
Source: City of Calgary Open Data — Building Permits (dataset c2es-76ed). CalgaryPermit stores a copy of that feed and calculates the figures on this page from that copy. The City of Calgary is the publisher of the original file.
If you live in the neighbourhood
Open the community page for your area. It is generated only when this site has stored enough permits to summarize, so a tiny or misspelled community name does not get a near-empty page. On a page that does exist you can see how many stored permits have an issued date, which permit types and work classes dominate, and a short list of recent addresses.
That is enough to answer ordinary questions. Are the recent files mostly interior alterations, or are they new houses? Is a run of demolitions showing up? Did applications in the stored copy pick up over the last year compared with the year before? The page answers those from the rows it has. It will also say when the older year is thin because the local copy does not go back that far. That is a gap in the copy, not a claim that nothing was built.
Click through to a permit when you want the address, the description, the class, and the three dates. A missing issued date means the stored row has no issued date. It does not mean someone is starting work tomorrow, and it does not mean the project was rejected. Read the status. Refused, Cancelled, and Expired are not active construction.
You still should not knock on a door because a permit exists. The applicant name is whatever the City published, which may be a company, a person, or blank. The address is the project address, not an invitation.
If you are looking for builders who are actually filing work
The contractor column is the closest the open data comes to “who is doing this.” On a community page, the names are grouped and counted. A name that appears on many stored permits in that community is a name the City has published repeatedly. That is a reasonable way to build a list of firms to research. It is not a ranking, a safety record, or a statement that the firm is accepting work.
Read the count with these limits in mind:
- The same company is often spelled more than one way. Those rows are not merged.
- A blank contractor name is missing data. Those jobs are absent from the name list, not assigned to anyone.
- The applicant and the contractor can be the same string, or different. The dataset does not explain the relationship.
- The count is permits in this site's copy, in that community, not a citywide book of business.
- No licence, insurance, or complaint check is done here. If you hire someone, check them the way you would check any contractor.
Pair the name with the work class. A firm that shows up on many Alteration rows is not the same lead as a firm that shows up on New single-family rows. The permit class tells you which. Estimated cost, when it is filled in, is the estimate on the application. Use it to see the scale the applicant reported. Do not use the average on the community page as a price for your own job. That average skips every permit that left the cost blank, and the page says how many rows were included.
Watching a street or a community over time
For a street, the practical method is the recent-permit list and the address on each row. The dataset is one permit per number, not one row per visit, so a single house can have several permit numbers over the years: a demolition, then a new building, then a deck. Follow the address, not a single number, if you want the history. Follow the number if you want one file.
For a community, use the issued-date count and the applied-date counts for the last 12 months and the 12 months before that. Issued dates tell you how many stored files the City had authorized. Applied dates tell you how many applications were recorded. A community can have a busy application month and very few issued dates if those files are still in review. The process guide explains why those are different events.
The monthly table on a community page counts applications by the month of the applied date, for the last 24 months present in the copy. A missing month means no stored row had an applied date in that month. It does not mean the City deleted the month.
What not to do with the file
Do not scrape personal contact details that the City chose not to publish. Do not treat this site as the system of record. The system of record is the City, and the public extract is the Building Permits dataset. Do not add the rows up and call the sum “Calgary's construction spending.” The cost column is an estimate, it is often empty, and this site may hold a partial copy of the feed.
If a number on a community page matters to a decision, the page shows the count it was computed from. If the page does not show a number, we did not have the rows to compute it. There is a separate FAQ for the short version of these limits.