The Cost of a Single Unverified Contractor
A homeowner in suburban Dallas wrote a check for $4,200 last year. The number was a deposit on a roof. The contractor had a glossy estimate, a logo on the truck, and a confident handshake. Two weeks later the truck stopped showing up. The phone number forwarded to a voicemail box that was full. The license number printed on the estimate, when finally cross-checked against the Texas state portal, did not exist.
That story is not rare. It is also not the worst version. The worst version is the contractor who has a real license, lets it lapse, gets sued by a previous client, and is still confidently quoting new work because nobody asks for the license number until the deposit clears. By the time you find out the license is suspended, the deposit is already with someone whose insurance carrier dropped them six months ago.
The entire problem can be avoided in about 60 seconds. State licensing boards publish public search portals. The bond carrier and insurance status are typically on the same page as the license record. Permit history, the second signal that tells you whether this contractor actually does the work or just sells it, is also a public record. Both checks are free. Both are fast. Almost nobody runs them.
This guide is the 60-second walkthrough. By the end you will know what a license actually proves, how to run the check on any state's portal, and the six red flags that should stop a signature regardless of how good the price looks.
What a Real Contractor License Actually Proves
A contractor license is a permission slip from a state regulator. It is not a quality stamp and it is not a guarantee. It is a narrow set of facts the state has verified about a person or a business, refreshed on a renewal cycle. Knowing which facts are inside the license, and which are not, is the entire game.
- A passed exam. Most state licensing boards require a written exam covering trade-specific code, business law, and safety practices. The exam is not trivial. A current license means the holder cleared it at some point.
- A surety bond on file. Most residential contractor licenses require the holder to post a bond, typically $5,000 to $25,000 depending on state and trade. The bond is not insurance for the contractor; it is a fund a wronged homeowner can claim against. A license without an active bond is a license missing a load-bearing piece.
- Proof of liability insurance. Almost every state requires the contractor to carry general liability insurance and, where they have employees, workers compensation. The carrier name and policy number are part of the license file. A canceled policy that the contractor never replaced is a license about to be suspended.
- A clean (or disclosed) complaint history. State boards publish complaints filed against the license, the disposition of each, and any disciplinary action. A real license carries this trail in the open. The reader looks at it before signing.
- Continuing education on the renewal cycle. Most states require a small number of CE hours every renewal period, usually focused on code updates. This is the mechanism that keeps a 1998 license from being a 1998 knowledge base.
Notice what is not on the list. The license does not certify that this contractor will show up on time, that the crew will be the same people who quoted the job, that the materials will match the estimate, or that the work will pass inspection on the first try. Those are downstream questions that the license cannot answer. What the license does answer is whether the person standing in your driveway is legally allowed to do the work and is theoretically backed by a bond and an insurance carrier when something goes wrong.
The 60-Second Verification Check Anyone Can Run
Every U.S. state with a contractor licensing board publishes a free public search portal. The exact URL varies by state. The fastest way to find it is to search for the state name plus "contractor license search" and click the first .gov result. From there, the check has three steps.
- Search the state portal. Enter the license number from the estimate, or the business name if the number is missing. The search should return a single record. If it returns nothing, the license is not real or the number was typed wrong; ask for the correct number in writing before going further.
- Confirm the license is current and the name matches the estimate. Look for a status of "active" or "current" and an expiration date in the future. The legal name on the license should match the business name on the estimate. A license held in a personal name when the estimate is on a corporate letterhead, or a license under a different DBA, is a question worth asking.
- Check the complaint history and the bond and insurance status. Most state portals show open complaints, closed complaints, and any disciplinary action on the same page. Look for an active surety bond and a current insurance carrier. A license with a long complaint trail or with insurance flagged "lapsed" is doing the work for you; it is telling you to keep looking.
Sixty seconds is not an exaggeration. The full check fits in the time it takes to refill a coffee. The reason most homeowners skip it is not the cost; it is the assumption that the contractor would not be in the driveway if the license was not in order. That assumption is wrong often enough to be worth the minute.
State-by-State Search Portals: How They Differ
There is no national contractor licensing system in the United States. Every state runs its own board, publishes its own portal, and structures the search differently. The good news is that almost every portal is searchable. The catch is that some require the license number, some accept the business name, and a small number force you to know both before they will return a record. The table below covers the most common patterns across the eight states with the highest residential build volume.
| State | Search by | Public complaint history | Bond and insurance shown |
|---|---|---|---|
| California (CSLB) | Number, name, or personnel | Yes, full disposition | Yes, both |
| Texas (TDLR for HVAC, electrical, plumbing) | Number or name | Yes | Insurance yes, bond varies |
| Florida (DBPR) | Number, name, or county | Yes | Yes, both |
| Arizona (ROC) | Number or name | Yes | Yes, both |
| Massachusetts (Division of Occupational Licensure) | Number or name | Yes | Insurance yes |
| Illinois (IDFPR for plumbing, roofing) | Number or name | Limited | Varies by trade |
| Washington (L&I) | Number or name | Yes | Yes, both |
| Pennsylvania (Attorney General HIC registry) | Number or name | Yes | Insurance yes |
Two patterns to know. First, several states do not license general contractors at the state level and instead leave it to municipalities or counties (Pennsylvania has a state-level home improvement contractor registry rather than a true license, for example). In those states the search may need to happen at both levels: state registry plus city or county license. Second, a few states split the search by trade, so an HVAC license and a roofing license live on different portals run by different agencies. When in doubt, search the state name plus the specific trade plus "license search" and follow the .gov result.
Permit History as a Second Signal
A license tells you the contractor is allowed to do the work. Permit history tells you whether they actually do it. The two checks answer different questions and you want both before signing on a job worth more than a weekend.
When a licensed contractor pulls a job, they file a permit with the municipal building department. The filing is a public record that includes the license number, the project address, the trade scope, the declared value, and the inspection trail. Add up every permit a license number has filed in a city across a few years and you have a workload signal. A license with a long permit history in your metro is a license that is actively used. A license with zero permits in a metro that runs 7,000 to 18,000 trade-specific permits a year is a license that lives somewhere else, or a license that exists on paper but does not show up on jobs.
The same logic works in every metro. Houston filed 11,348 roofing permits and 18,652 HVAC permits in its dataset. Phoenix shows 6,865 electrical permits. Boston has 17,578 electrical and 7,252 solar permits on record. Chicago carries 5,401 roofing and 2,737 solar permits. Miami-Dade is one of the largest roofing markets in the country at 16,629 permits. In any of those cities, a contractor's permit count is a workload tell. Zero is not automatically disqualifying (a brand-new license has not had time to file anything yet), but zero on a license that has been active for ten years is a different conversation.
HomeQuotr's contractor directory pairs the license record with the permit count for that license number in the metro. You see the active license, the trades it covers, the expiration date, and the number of permits the license has filed in your city. Two facts on one page. Both verified, neither inferred.
The Six Red Flags That Should Stop the Sign
Some of what shows up in a license check is a yellow light worth a follow-up question. The six items below are red lights. Any one of them is a reason to pause; any two of them is a reason to walk.
- No license number printed on the estimate. The estimate is a sales document; if the license is not on the page, you cannot verify it before you sign. A real contractor wants the number on the estimate because it makes them harder to compare against the unlicensed competition. The omission is not an oversight; it is a strategy.
- License status reads expired, suspended, or revoked. Expired is sometimes administrative and sometimes the trail of a lapsed bond or a missed CE deadline. Either way, an expired license cannot legally pull a permit on your job. Suspended or revoked is the state telling you in writing what the contractor will not.
- License is held in a different name than the business on the estimate. A license under a personal name when the estimate is on corporate letterhead, a license under a parent company you have never heard of, or a DBA mismatch are all worth a written explanation. Sometimes the answer is innocent. Sometimes the license belongs to a former partner who left two years ago.
- A trail of complaints filed with the state board. One complaint is normal across a long career. A pattern of complaints with similar themes (incomplete work, refusal to honor warranty, lien filings) is the state board doing free diligence for you. Read the dispositions before you sign.
- No insurance carrier listed, or a carrier flagged lapsed. Liability insurance protects you when a worker gets hurt on your property or when something gets damaged during the job. "We're insured" without a named carrier and policy number is not insurance; it is marketing copy.
- Refusal to pull the permit. A contractor who pushes the permit-pull onto you to lower the headline price is moving liability to the homeowner. Permitless work is illegal in most jurisdictions and disqualifies you from selling the house cleanly later. Reputable contractors pull the permit because they want the inspection trail on their record.
None of these are judgment calls. They are facts on a public record or facts missing from a sales document. The license check converts each one from a vibe into a yes or a no. That conversion is the entire reason the check exists.
How HomeQuotr's Contractor Directory Works
HomeQuotr publishes a contractor directory covering roughly 853,000 licensed contractors across 100 U.S. metros and 6 trades (HVAC, roofing, electrical, plumbing, foundation, and solar). The directory is built from three public sources: state contractor licensing boards, municipal permit history, and federal SAM.gov registrations for contractors who do any government work.
Every contractor page lists the license number, the issuing state, the expiration date, the trade categories the license covers, and the permit history count for that license in the metro. Where a complaint trail is part of the public record, that is surfaced too. The page does one job: it puts the verified facts on one screen so you can read them before you sign.
What the directory does not do is route leads. There is no "get matched" button, no contractor scoring tied to who paid for placement, no pay-per-lead mechanic anywhere on the page. The reason is structural. The minute a directory ranks contractors by how much they paid to be listed, the directory stops being a record and starts being an ad. HomeQuotr is a record. When you find a contractor whose license and permit history check out, you contact them directly using the information they have publicly published. Whatever happens after that is between you and the contractor; HomeQuotr's role ends at the verified record.
The same posture extends to the methodology page, which documents exactly how the contractor records and the permit pricing data are sourced, normalized, and refreshed. Nothing on the directory is editorial. Nothing is contractor-submitted. Nothing changes because a contractor cut a check. If you want a starting point, browse licensed contractors in your city, or pair the directory with the city pricing pages like HVAC in Dallas so you walk into the conversation with both the contractor's record and the market median in hand.