All articles

Lead Generation

Building Permit Data for Leads: 1.5% Are Fresh

I pulled all 206,733 active Toronto building permits. Only 1.5% were issued in the last 30 days and 94.7% name no builder. Here is how to use them anyway.

Om Patel 16 min read
Photo: Lucas Kepner / Unsplash

The short answer

Building permit data works as a lead source, but not the way vendors sell it. For the trade named on the permit it is a loss notification, because the job is already awarded. Use it instead as a forward calendar for the trades that follow: an addition permit today is a flooring, painting and electrical job four to nine months out.

Building permit data is a real lead source and almost everything written about it is wrong.

I pulled every record in the City of Toronto's Active Permits dataset on 4 September 2026. All 206,733 of them. Then I checked the three things every guide tells you to filter on: how recent the permits are, the estimated construction cost, and the name of the builder.

Only 1.5% had been issued in the previous 30 days. The cost field was unusable text on 57.8% of records. The builder name was blank on 94.7%.

That does not mean permit data is worthless. It means the standard advice about it was written by companies that sell permit data, and it describes a workflow that does not survive contact with an actual municipal file. Here is what the data really supports.

What building permit data actually contains

A building permit is a municipal record required under the Building Code Act before a physical structure is built, altered or demolished. Most large cities publish the file as open data, and it is genuinely free.

Toronto's Active Permits file carries 32 fields. The useful ones are the permit number, permit type, structure type, the full street address, the application date, the issue date, status, a plain-English work description, current and proposed use, dwelling units created or lost, and estimated construction cost.

Here is what it does not carry, and this is the part that matters:

No owner name. No phone number. No email address.

The only name field in the entire schema is BUILDER_NAME. The postal field holds only the forward sortation area, the first three characters, so you get M1S rather than a full postal code. Every vendor guide includes a breezy step called "enrich with contact data." That step is the whole job, and none of them tell you how much of it there is.

The problem nobody selling permit data will tell you

Search for this topic and you will get a page of permit data vendors: Shovels, Construction Monitor, ConstructConnect, Permitlify, Mercator. The top-ranking article, from Shovels, is well written and thorough. It is also not written for you. Read its audience section and you find it is aimed at "lenders, SaaS providers, and building materials and equipment suppliers," companies selling to contractors. A second-ranking page reproduces that article's heading structure and FAQ almost line for line.

Meanwhile, the actual operators are blunt about it. On r/solar in May 2026, an installer replied to a post promoting permit-based lead generation:

"At the micro level, once a permit has been pulled the planning and budgeting is done. There's no room to get in a sale."

The person who published the permit analysis conceded the point directly: "you're right that by the time a residential permit is filed, the contractor is already chosen," adding that "the residential homeowner timing issue is real and I don't think there's a clean workaround for it."

That is the entire problem in two sentences. A permit is filed by a contractor who already won the work, or by an owner who already knows what they are building. If you install furnaces and you are reading a furnace permit, you are reading a record of a job your competitor booked.

Watch out

If your plan is to pull permits for your own trade and call those addresses, you are building a list of jobs you already lost. The permit is the receipt, not the enquiry.

I pulled 206,733 permits. Here is what the file looks like

Vendor guides describe filtering by job value, deduplicating by contractor and prioritising recent permits. I tested all three against the live Toronto file.

What the guides tell you to doWhat the data actually supports
Filter by estimated job value57.8% of the cost field is non-numeric text. 89,582 records contain the string "DO NOT UPDATE OR DELETE THIS INFO FIELD"
Deduplicate by contractorBUILDER_NAME is blank on 195,689 of 206,733 records, or 94.7%
Prioritise recent permits1.5% were issued in the last 30 days. 65.5% were issued over three years ago
Enrich with contact dataThe file has no owner name, no phone and no email to enrich from
Filter by permit statusThis one works, and it is the most useful filter in the file

The freshness breakdown is worth seeing in full, because the word "active" does a lot of misleading work here:

When the permit was issuedRecordsShare
Not yet issued, still in review14,8927.2%
Last 30 days3,0221.5%
31 to 90 days ago5,6032.7%
91 days to 1 year ago19,1969.3%
1 to 3 years ago28,69513.9%
More than 3 years ago135,32565.5%

By the numbers

Roughly four out of five records in a file labelled "Active Permits" describe work permitted more than a year ago. Download it, sort it badly, and your first hundred calls are about jobs that finished before the pandemic ended.

The cost field deserves a specific warning. It is not merely messy, it is actively booby-trapped. A plurality of records, 89,582 of them, contain a placeholder instruction to city staff rather than a number. Another few thousand contain comma-formatted strings such as 50,000 and 10,000 that will silently parse as zero or throw an error depending on your spreadsheet. If you filter for jobs over $100,000, you are unknowingly discarding well over half your rows before you start.

The timing trap: prescribed 10 days, actual median 31

The other premise behind permit-based prospecting is that a permit predicts imminent construction. Ontario's Building Code sets prescribed review periods: 10 business days for a house, 15 for a small building, 20 for a large building and 30 for a complex one. Ottawa publishes the same targets, with 5 business days for a small homeowner project like a deck or shed.

Those are targets for a complete application. Here is the measured reality from Toronto permits issued in the last twelve months, all 27,804 of them:

  • Median application to issue: 31 calendar days
  • 75th percentile: 69 days
  • 90th percentile: 217 days
  • Only 22.7% were issued within 10 calendar days
  • 20% took more than 90 days

So one permit in five sat in review for over three months. By the time it appears in your download as freshly issued, the homeowner signed their contract a season ago. A Maryland solar contractor described the same variance on r/solar: a two week wait in Baltimore County, against three months for a 6kW permit in Baltimore City a few miles away, after an eight month wait the year before.

The person analysing that data drew the right conclusion: adjacent municipalities run "totally different processing timelines, which makes permits by city a blunt instrument unless you're filtering by specific jurisdiction."

Most contractors who ask us about permit data are really asking a different question: where does consistent work come from when referrals go quiet. We map your actual lead-to-sale path first and tell you honestly which channels are worth your time, including the ones we do not sell.

Get a lead plan

The reframe that makes permit data useful

Permit data is not a lead list. It is a forward calendar for the trades that come after the one on the paperwork.

A permit for an addition is not a lead for the framer. It is a lead for everyone downstream of the framer, and those people have not been hired yet. That fixes the timing objection completely, because you are no longer trying to get in front of a decision that has already been made. You are getting in front of the next decision, months early.

Of the 3,022 permits Toronto issued in the last 30 days, the work descriptions mention:

Keyword in descriptionPermits in 30 days
Furnace, HVAC or heat pump672
Basement538
Addition492
Garage286
Deck231
Bathroom126
Roof122
Window100
Kitchen83
Solar18
Pool11
Fence8

Read that as a demand calendar rather than a contact list and it becomes genuinely valuable:

  • 492 additions and 538 basements issued last month means several hundred homeowners who will need flooring, painting, drywall finishing, trim, final electrical and landscaping restoration in roughly four to nine months. None of those trades has been booked yet on most of those jobs.
  • 11 pool permits means 11 properties that will need fencing, since pool enclosures are mandatory, plus concrete, decking and irrigation work. Toronto publishes a dedicated Pool Enclosures permit dataset, refreshed weekly, which is about as close to a purpose-built fencing lead list as public data gets.
  • 286 garage permits signals demand for garage doors, openers, epoxy floors and subpanel upgrades.
  • 62 demolition permits in 30 days signals a new build behind each one, and a full trade stack six to eighteen months out.

The second use is competitor intelligence, and it is underrated. Toronto separately codes Plumbing and Mechanical permits, 5,953 and 5,610 respectively over the last twelve months. If you run a plumbing company, that file tells you which neighbourhoods are producing work and, on the 5.3% of records with a builder name, who is winning it. That is a territory planning input and a partnership target list, which is exactly what the solar installer meant when he said it was "still worth my time to work with architects and builders to become their sub."

The volume reality check

Before you spend a weekend on this, run the arithmetic for your own trade.

Toronto issued 3,022 permits in the last 30 days across a city of nearly three million people. That is roughly 705 permits a week, every trade combined. The distribution:

Permit typeLast 30 daysShare
Small Residential Projects66321.9%
Plumbing63120.9%
Mechanical62520.7%
Building Additions and Alterations41913.9%
Drain and Site Service30410.1%
New Houses953.1%
Fire and Security Upgrade652.2%
Demolition622.1%

If you are a plumbing or HVAC contractor, roughly 145 relevant permits a week is a real signal worth building a habit around. If you are a fencing contractor looking at 8 permits a month, all of them already awarded, permit data is not your channel and no amount of tooling will change that. Spend the weekend on lead generation that does not involve buying leads instead.

What you are legally allowed to do with it in Canada

This is the section every ranking article omits, because they are all written for a US audience. The rules in Canada are materially stricter and the penalties are not theoretical.

Email is the dangerous one. CASL moved Canada to an opt-in regime: with narrow exceptions, you need express or implied consent before sending a commercial electronic message. A permit record is not consent. The fact that a document is a public record does not create permission to market to the person named in it. LinkedIn and Facebook direct messages count as commercial electronic messages too.

The CRTC can impose administrative monetary penalties of up to $1 million on individuals and $10 million on organisations. In March 2015 it issued a $1.1 million penalty to Compu-Finder, a business-to-business operator that had obtained email addresses from publicly available websites and sent offers recipients found irrelevant. That precedent maps almost exactly onto the permit-scraping workflow.

Calling follows different rules. Per the National DNCL exemptions published by the CRTC, the National DNCL Rules do not apply to telemarketing calls made to businesses. Calling the builder or general contractor named on a permit is treated very differently from calling a homeowner at a residential number, which requires you to subscribe to and scrub against the National DNCL.

You may also call a consumer under an existing business relationship, meaning someone who has:

  • purchased, leased or rented from you in the last 18 months, or
  • a written contract in effect or expired within the last 18 months, or
  • made an enquiry or application to you within the last 6 months.

Even when a call is exempt, you must identify your organisation at the start of the call, and you must maintain your own internal do not call list, adding anyone who asks within 14 days and keeping them on it for three years.

Note

The practical read: permit data is a solid basis for B2B outreach to builders and general contractors, for direct mail, and for door knocking. It is a poor and legally risky basis for cold emailing homeowners. Mail and a knock are not commercial electronic messages, which is why the oldest channels are the safest ones here.

That constraint also explains why the most effective outreach in this space stays stubbornly physical. A commercial contractor on r/b2b_sales in July 2026, describing how he got onto a major bid list, put it better than any playbook:

"those estimators aren't on linkedin, they're in a job trailer eating lukewarm gas station biscuits. i got on our biggest bid list by dropping off a hot box of local glazed donuts."

A six-step workflow that actually works

  1. Find your municipality's portal. Toronto publishes Active Permits and Cleared Permits on open.toronto.ca, both refreshed daily, through a CKAN API that requires no key. Ottawa, Vancouver, Calgary and Edmonton run equivalents. Skip vendors until you operate across enough jurisdictions that normalising schemas is worth a subscription.
  2. Filter to the last 30 to 60 days by issue date, not by status. This is the single most important step. It cuts 206,733 records to about 3,000 and removes the years of stale rows that make the file look richer than it is.
  3. Pick the permit types upstream of your trade, not your own. Additions, basements, new houses and demolitions are the ones that generate downstream work. Your own trade's permits are for competitor intelligence only.
  4. Ignore the cost field, or clean it deliberately. Strip commas, drop anything non-numeric, and accept you are working with about 40% of rows. Never filter on it without checking what you discarded.
  5. Choose a legal channel before you build the list. Direct mail, door knocking and B2B calls to builders are clear. Cold email to homeowners is not. Decide this first, because it determines what you need to collect.
  6. Time the outreach to the trade stage, not the permit date. For finishing trades, set a follow-up four to nine months out. A permit issued in September is a flooring conversation in spring, and almost nobody will be talking to that homeowner then.

Track it like any other channel. If permit-sourced outreach does not produce a booked job within two quarters, it is a hobby. Log every touch with its source and outcome in one place so you can actually answer that question, which is the same discipline that makes cash flow predictable rather than a monthly surprise.

When permit data is not worth your Saturday

Be honest about which of these describes you.

Skip it if: your trade shows up fewer than 20 times a month in your city's file, you have no capacity to run a four to nine month follow-up sequence, you were planning to cold email homeowners, or you have not yet fixed the leads already arriving at your website unanswered. Response speed on existing enquiries beats any new channel, every time, which is why we start lead generation work by fixing the path a lead already takes before adding another source to it.

Use it if: you sell to builders and general contractors rather than homeowners, you are a finishing trade that works downstream of permitted structural work, you need territory intelligence about where activity is concentrating, or you run direct mail and want a targeting list better than a postal walk.

Permit data has a real edge, and the edge is precisely that it is boring and public. Nobody competes for it, because the version being sold does not work and the version that works takes a spreadsheet, a legal constraint and a nine month memory. That filters out almost everyone.

The honest summary: it will not fill your calendar next week. It will tell you, with more precision than anything else you can get for free, where the work in your city is going to be next spring.

Frequently asked questions

How do I use building permit data to find leads?
Stop treating it as a list of people to call and start treating it as a calendar. For the trade named on the permit the job is already awarded, so the value is in adjacency and timing: an addition or basement permit issued today predicts demand for flooring, painting, drywall, electrical finishing and landscaping restoration roughly four to nine months later. Filter to permit types that sit upstream of your trade, then time your outreach to the construction stage rather than the permit date.
Where can I get building permit data for free?
Most large Canadian and US municipalities publish it on an open data portal. Toronto publishes Building Permits - Active Permits and Cleared Permits on open.toronto.ca, both refreshed daily, through a CKAN API that needs no key. Ottawa, Vancouver, Calgary and Edmonton run similar portals. You only need a paid vendor such as Shovels or Construction Monitor when you want many jurisdictions normalised into one schema.
Is building permit data actually a good lead source?
It depends entirely on your trade and how you use it. Toronto issues roughly 705 permits a week across the entire city and every trade combined. In the last 30 days that included 672 permits mentioning a furnace, heat pump or HVAC work, but only 8 mentioning a fence and 11 mentioning a pool. For a fencing contractor that is two records a week, both already awarded, which is not a lead source. For an HVAC or plumbing contractor the volume is real.
Can I cold call or email homeowners from building permit records in Canada?
Emailing them is almost certainly illegal. CASL requires express or implied consent before a commercial electronic message, and a permit record is not consent. The CRTC can impose penalties up to $1 million on individuals and $10 million on organisations, and in March 2015 it fined Compu-Finder $1.1 million partly for harvesting addresses from publicly available websites. Calling is different: the National DNCL Rules do not apply to calls made to businesses, so calling the builder named on a permit is treated differently from calling a homeowner.
Does a building permit mean the homeowner still needs a contractor?
Usually no. As one solar installer put it on r/solar in May 2026, once a permit has been pulled the planning and budgeting is done and there is no room to get in a sale. The person who pulled the permit has already chosen, priced and scheduled their contractor. This is the single biggest misconception in the vendor marketing around permit data.
How current is building permit data really?
Far less current than the word active suggests. Of the 206,733 records in Toronto's Active Permits dataset on 4 September 2026, only 1.5% were issued in the previous 30 days and 65.5% were issued more than three years ago. Anyone who downloads the file and works it top to bottom is contacting jobs that finished years ago.
What fields does building permit data actually contain?
Toronto's file carries 32 fields including permit number, permit type, structure type, full street address, application and issue dates, status, a work description, proposed use and estimated construction cost. It contains no owner name, no phone number and no email address. The only name field is BUILDER_NAME, and it is blank on 94.7% of records. The contact data every vendor guide tells you to enrich is the actual work.
Should I buy permit data from a vendor instead?
Only if you operate across many municipalities and the normalisation is worth the fee. A vendor solves schema differences between jurisdictions, which is a genuine problem, but it does not solve the two issues that matter most: the job on the permit is already awarded, and the record contains no contact details. Paying for cleaner rows of the wrong signal does not make it the right signal.
Done-for-you lead generation: a dedicated conversion page, a qualifying form that arrives with the answers attached, and lead-to-sale tracking, fed by targeted outreach and Meta ad campaigns we build and run.
Get a lead plan

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.