Read this before any 0%
A low or zero verifiability rate is a statement about our listing data, not about the contractors. It means we could not match a listing's license number to the official roster — overwhelmingly because the listing has no license number on file, or carries an aggregator/business number instead of the board's competency number. It does not mean those contractors are unlicensed, and nothing on this page should be read that way. Where the rate is low, the work to do is ours: enrich the listings with the real board number.
The headline numbers
Of 549,639 listings across 25 roster states, the share carrying ANY license number to attempt a match.
The share of number-carrying listings whose number matches the official roster — 270,181 listings in all.
The compound: share of ALL listings (not just number-carrying ones) we can tie to a roster record today.
Two gaps stack here, and separating them is the entire study. First, a coverage gap: many listings simply have no license number on file, so there is nothing to match. Second, among the listings that do carry a number, a matchgap: some numbers are aggregator or business identifiers that aren't the board's competency number. Neither gap is evidence about the contractor — both are our data to improve.
Every roster state, by verifiability
All 25states where we hold an official board roster, largest listing count first. "Carry #" is the share of listings with any license number; "Verified" is the share of thosethat match the roster; "Net" is matched listings over all listings. States below 200listings are shown but not ranked in the leaderboards, so a handful of records can't swing a headline.
| State | Board | Listings | Carry # | Verified | Net |
|---|---|---|---|---|---|
| CA | CSLB | 249,597 | 99.2% | 73.1% | 72.6% |
| WA | WA L&I | 77,324 | 52.8% | 0.9% | 0.5% |
| MN | MN DLI | 50,107 | 98.8% | 99.5% | 98.3% |
| OH | OCILB | 31,044 | 65.3% | 36.5% | 23.8% |
| NJ | NJ DCA | 25,729 | 98.3% | 0.3% | 0.3% |
| TX | TDLR/TSBPE | 24,113 | 91.5% | 70.1% | 64.2% |
| NY | NYC DCWP | 18,495 | 95.9% | 15.3% | 14.7% |
| IA | IA IWD | 12,816 | 97.4% | 0.3% | 0.3% |
| OR | OR CCB | 11,479 | 75.1% | 89.3% | 67.1% |
| NV | NV NSCB | 10,347 | 97.5% | 2.3% | 2.2% |
| AR | AR CLB | 9,899 | 96.3% | 0.2% | 0.2% |
| LA | LA LSLBC | 8,818 | 95% | 0.7% | 0.6% |
| FL | FL DBPR | 7,484 | 9.7% | 0% | 0% |
| AL | AL GenCon | 5,234 | 92.3% | 95.9% | 88.5% |
| HI | HI DCCA | 2,473 | 90.6% | 51.1% | 46.3% |
| AZ | AZ ROC | 1,078 | 55.4% | 0% | 0% |
| VA | VA DPOR | 998 | 13.4% | 0% | 0% |
| CO | CO DORA | 720 | 34.9% | 0% | 0% |
| MA | MA DPL | 595 | 32.8% | 0% | 0% |
| CT | CT DCP | 480 | 44.4% | 0% | 0% |
| MT | MT DLI | 252 | 16.3% | 0% | 0% |
| DE | DE DPR/Revenue | 182 | 80.2% | 0% | 0% |
| AK | AK CBPL | 173 | 5.2% | 0% | 0% |
| NH | NH OPLC | 108 | 29.6% | 0% | 0% |
| VT | VT DFS | 94 | 42.6% | 0% | 0% |
| Pooled | 25 states | 549,639 | 87.7% | 56.1% | 49.2% |
Where our data is strong, and where the gaps are
Most verifiable listings
Ranked states whose number-carrying listings match the board roster most often — our data is cleanest here.
| State | Verified | Listings |
|---|---|---|
| Minnesota | 99.5% | 50,107 |
| Alabama | 95.9% | 5,234 |
| Oregon | 89.3% | 11,479 |
| California | 73.1% | 249,597 |
| Texas | 70.1% | 24,113 |
| Hawaii | 51.1% | 2,473 |
| Ohio | 36.5% | 31,044 |
| New York | 15.3% | 18,495 |
Biggest listing-data gaps
Ranked states where the fewest listings match — a missing-license-number gap in our data, not a signal about the contractors.
| State | Verified | Carry # |
|---|---|---|
| Florida | 0% | 9.7% |
| Virginia | 0% | 13.4% |
| Montana | 0% | 16.3% |
| Massachusetts | 0% | 32.8% |
| Colorado | 0% | 34.9% |
| Connecticut | 0% | 44.4% |
| Arizona | 0% | 55.4% |
| Arkansas | 0.2% | 96.3% |
The right-hand column is the honest part most directories would hide. Read it as a backlog: each low row is a state where we need to backfill real board license numbers onto our listings. Florida is the clearest example — 7,484 listings, but only 9.7% carry a number we can check, so the verifiability rate has almost nothing to work with. None of it implies anything about whether those contractors are licensed; the official rosters themselves are large and healthy — see the companion verification study.
Methodology and honesty notes
- The metric. Per state,
verifiability = matched / with-license, where matchedis the count of our listings whose license number is present in that state's official roster and with-license is the count of our listings carrying any license number. We also reportcoverage = with-license / listingsandnet = matched / listingsso the two gaps (no number on file vs. number that doesn't match) are never conflated. - A 0% is a data gap, not a verdict. The single load-bearing caveat: a low or zero rate means we could not match the listing to the roster — almost always a missing or non-board license number on our listing — and is never a claim that the contractor is unlicensed.
- Strict normalized join.License numbers are uppercased and reduced to letters and digits before comparison, on both sides; a listing is only ever tested against its own state's roster. It is the strictest defensible rule, so each rate is a floor — name/phone matches a human would accept are not counted.
- Distinct from roster size. Our verification study counts how big each official roster is; this study audits how much of our own data ties back to it. A state can ace one and lag the other.
- Listings vs. rosters.Listing license numbers are each pro's own self-reported value from the gold-tier corpus, taken beforeany board overlay; roster numbers are the official board public records (CSLB, TDLR/TSBPE, WA L&I, MN DLI, OR CCB, OCILB, and the rest). ProFix-published open data, CC-BY-4.0.
- Aggregate + computed live. The committed seed is per-state counts and a board label only — no contractor name, slug, phone, address, or number. Every figure is read at render time (built by
tools/build-listing-verifiability-index.tsfrom the per-state shards + roster snapshots), so nothing here is hardcoded and it moves with the data.
Related ProFix research
Frequently asked questions
What does this study actually measure?
The license-match rate of ProFix's OWN listings. For each of the 25 states where we have ingested an official licensing-board roster, we take every gold-tier listing we hold in that state and check whether the license number on the listing matches a record in the board's roster. Pooled across all of them, 87.7% of listings carry any license number at all, and 56.1% of those that do match the official roster. It is a measure of how complete and verifiable OUR data is — not a roster size, and not a judgment about any contractor.
Why do some states show a 0% verifiability rate? Are those contractors unlicensed?
No — and this is the most important thing on the page. A 0% rate means we could not MATCH our listings in that state to the board's roster, almost always because the listings do not carry a usable license number on file (or carry an aggregator/business number that is not the board's competency number). It says nothing about whether those contractors hold a license. Florida, Virginia, Montana and 4 more are examples in this snapshot: Florida, for instance, has 7,484 listings but only 9.7% of them carry any license number for us to check. The fix is on us — enrich the listing data — not on the contractor.
How is this different from your 'how many contractors we can verify' study?
That study counts the SIZE of each official board roster — hundreds of thousands of verified-active licenses. This one flips the denominator: it asks what share of OUR OWN listings we can tie back to a roster by license number. A state can have a huge, healthy roster (so the verification study looks great) while our listings there carry almost no license numbers (so this study shows a low match rate). The two are complementary: one measures the public record, this one audits our own data quality against it.
How exactly do you decide a listing 'matches'?
Strict normalized-license-number join, nothing fuzzy. We uppercase the listing's license number and strip everything that is not a letter or digit (so "EL.50175", "el 50175" and "EL50175" are the same key), do the same to every number in the state roster, and count a listing as verifiable only if its key is present in that state's roster set. A listing can only ever be tested against its OWN state's roster, so cross-state false matches are impossible. Because it is the strictest defensible rule, the match rate is a floor — name- and phone-matched listings that a human would accept are deliberately not counted here.
Where does the data come from, and is it aggregate?
Listings come from the ProFix gold-tier corpus (each listing's own self-reported license number, before any board overlay); rosters are the official state licensing-board public records (CSLB, TDLR/TSBPE, WA L&I, MN DLI, OR CCB, OCILB, and the rest of the verified-roster states). It is ProFix-published open data (CC-BY-4.0). The committed seed is AGGREGATE ONLY — per-state counts and a board label, never a contractor name, slug, phone, address, or license number — and every figure is read from it at render time, so nothing is hardcoded.