Free · Lower costs

Delete these rows before you call anyone.

A public licence file is a good start, but not every row is worth a call. Some have no phone, some repeat a number you already have, some licences have expired. Delete those first and every call you make reaches a business that could still buy.

If you are about to call the businesses in a public licence file, clean it with these rules first. No list yet? The LIST page has the free public licence file for each state I've checked, and the filter to use on each one.

13,385

Active home improvement contractor licences in New York City's file, 29 Sep 2026.

540

Rows to delete before calling: 402 with no phone, and 138 that repeat a number already on the list.

12,845

Different numbers left to call.

What’s inside

  • The five rules, with the Google Sheets formula for each one
  • How to use the sheet in four steps, and how to check it works
  • What to check before you call
  • The sheet with all five rules built in and six example rows

The five rules

The formulas are written for Google Sheets. They assume the columns in the sheet below: D is the phone, E the expiry date, F the ZIP code.

No phone number

First make a clean copy of the number, digits only, last ten. In G2: . Then any row with fewer than ten digits has nothing to call. In H2: .

The same phone twice

One business often holds several licences under one number. The reel uses , which marks every copy. The sheet uses this version in I2, which marks only the second and later copies, so the first one stays: . Comparing the clean digits catches (212) 555-0101 and 212-555-0101 as the same number.

Licence expired

If the file has an expiry date, delete everything past it. In J2: . In Travis County, Texas, 48 of the 693 A/C contractor licences had expired on 29 September 2026.

Outside your service area

Type the ZIP codes you serve down column O. Any row whose ZIP is not in that list is marked. With column O empty, nothing is marked. In K2: .

Permanently closed on Google Maps

No formula for this one. Search the business name on Google Maps before you call. If it shows "Permanently closed", type Y in column L.

Use the sheet

0 of 4 done
  1. Import the sheet

    • Download clean-template.csv from the files below. In Google Sheets, choose File, Import, Upload, and pick it.
    • Leave "Convert text to numbers, dates, and formulas" ticked.
  2. Paste your list

    • Paste your list into columns A to F over the six example rows.
    • Select G2 to M2 and drag the corner down to the last row.
  3. Add your service ZIP codes

    • Type your service ZIP codes down column O, one per row.
  4. Filter and delete

    • Filter column M, delete_row, to TRUE. Delete those rows.
    • What is left is the list worth calling.

Check it works

Before you paste anything, the six example rows should come out like this. Every phone number in them is a reserved 555-01 test number.

Contractor A

Result
Keep
Why
Passes all five rules

Contractor B

Result
Keep
Why
Passes all five rules

Contractor C

Result
Delete
Why
Same number as Contractor A, written differently

Contractor D

Result
Delete
Why
No phone number

Contractor E

Result
Delete
Why
Licence expired on 31 March 2026

Contractor F

Result
Delete
Why
ZIP 07030 is not in your list, and marked closed

Before you call

A clean list is not permission to call. The rules on calls, texts and email are on the LIST page.

In short: scrub numbers that may be personal mobiles against the National Do Not Call Registry, dial by hand, call only between 8 a.m. and 9 p.m. local time, and send no texts or voicemail drops without written consent.

Take the files

Open a .csv in Google Sheets (File, then Import) or Excel.

Counts come from NYC Open Data, dataset , counted with the portal's own queries on 29 September 2026. The file changes daily.

The queries: active, with a phone, different numbers.

No business names from any file appear on this page; the example rows are made up.

A clean list gives you people worth calling. What happens after they answer is the system.

Lead Generation Group is a program that teaches you to generate your own leads and sets up the Lead Generation OS with you. The first 90 days focus on paid acquisition: Meta ads, the offer, the funnel, tracking, CRM and follow-up.

See If You Qualify