The Visibility Gap: What the Data Actually Shows
63% of contractors in the VerifiedNode database score in the low AI visibility tier. Across 57,863 tracked records, that translates to 36,604 businesses that AI-powered search and discovery tools largely cannot surface, parse, or recommend to consumers.
The distribution is stark:
| Tier | Contractor Count | Share of Total |
|---|---|---|
| High | 3,562 | 6% |
| Medium | 17,697 | 31% |
| Low | 36,604 | 63% |
The gap between the top and bottom is not marginal. Only 1 in 17 contractors reaches high-tier visibility while nearly 2 in 3 remain effectively invisible to the AI systems that increasingly mediate how consumers find local services.
The technical explanation is straightforward. Only 10% of contractors globally have JSON-LD structured data on their web presence. JSON-LD is the markup format that allows AI crawlers, large language models, and search engine algorithms to reliably identify and categorize a business: what it does, where it operates, what customers say about it. Without it, a contractor profile is largely unreadable to automated systems regardless of how good the underlying business actually is.
The irony is that 89% of contractors globally have a website. The infrastructure exists. The structured layer on top of it does not.
Profile claiming compounds the problem. Only 17% of contractors in the dataset have a claimed profile. An unclaimed listing means the contractor has no ability to update service areas, add credentials, or respond to reviews through centralized platforms. AI aggregators pulling business data from these sources get incomplete, often outdated records.
These three numbers together (10% JSON-LD adoption, 89% website presence, 17% claiming rate) describe a market where most contractors have made the minimum investment in a digital presence but have not taken the steps that actually determine whether AI systems can find and recommend them. Having a website is table stakes. Structured, claimed, and regularly updated data is what drives AI visibility in 2026.
The geographic and structural analysis that follows shows where this gap is widest, which markets are pulling ahead, and what separates high-scoring contractors from the 63% who are not being found. Check your own score at /find or explore regional patterns in the state-of-the-market reports.
State and Market Rankings: Where Roofers Stand
Manitoba leads all 65 tracked markets with an average AI visibility score of 41.7 across 673 roofing businesses. Vancouver and Dallas sit at the opposite end, tied at 3.9. That spread of 37.8 points represents the full range of what AI visibility optimization looks like in practice across the roofing vertical.
Top 5 Markets by Average Score
| Market | Avg Score | Median Score | Avg Rating | Avg Reviews | JSON-LD % | Website % | Total Businesses |
|---|---|---|---|---|---|---|---|
| Manitoba | 41.7 | 37.0 | 4.45 | 60.0 | 2% | 72% | 673 |
| Northwest Territories | 38.9 | 33.0 | 4.61 | 11.0 | 4% | 63% | 97 |
| Ontario | 38.5 | 35.0 | 4.60 | 43.0 | 5% | 75% | 11,095 |
| Alberta | 38.5 | 35.0 | 4.65 | 65.0 | 7% | 82% | 3,600 |
Bottom 6 Markets by Average Score
| Market | Avg Score | Rank | Total Businesses |
|---|---|---|---|
| Vancouver | 3.9 | 65 | 559 |
| Dallas | 3.9 | 64 | 598 |
| Denver | 4.0 | 63 | 593 |
| Seattle | 4.1 | 62 | 551 |
| Chicago | 4.1 | 61 | 659 |
| Calgary | 4.2 | 60 | 628 |
The bottom six markets cluster tightly between 3.9 and 4.2. These are not marginal underperformers: they score roughly 90% lower than Manitoba's average.
What Separates Top Markets from Bottom Performers
Manitoba's lead is counterintuitive on the surface. Its JSON-LD adoption rate sits at just 2%, below the global average of 10% and well below Alberta's 7%. Yet it outscores every other tracked market. The explanation is review volume: Manitoba roofers average 60.0 reviews per business, compared to 11.0 in the Northwest Territories and 43.0 in Ontario. Review signals, when combined with website presence and profile completeness, compensate for weaker structured data adoption when the overall signal density is high enough.
Alberta presents a different profile. It has the highest JSON-LD adoption among the top four markets at 7%, the highest average rating at 4.65, and the highest average review count at 65.0. Yet it ties Ontario at 38.5 despite those stronger technical signals. The difference is density: Ontario has 11,095 tracked businesses against Alberta's 3,600. In larger markets, a greater share of low-signal businesses pulls the average down regardless of how well the top performers are optimized.
The Market Size Problem in Ontario
Ontario's median score of 35.0 against an average of 38.5 is the clearest evidence of right-skewed distribution in the dataset. The gap of 3.5 points means a relatively small number of well-optimized Ontario roofers are pulling the mean upward. The majority of the province's 11,095 businesses cluster below that average.
This dynamic is common in large markets. Chicago (659 businesses, score 4.1) and Dallas (598 businesses, score 3.9) show the same compression effect in reverse: market saturation creates competitive noise, and without structural differentiation through JSON-LD, claiming, and review accumulation, scores flatten near the floor. Explore the full Ontario roofing directory at /roofing/ontario/.
City-Level Signals Within Leading Provinces
The provincial averages obscure significant city-level variance. Within Manitoba, five cities post scores well above the provincial mean of 41.7:
- Navin: 50.3 (7 businesses)
- Sunnyside: 49.9 (20 businesses)
- Niverville: 47.6 (7 businesses)
- Oakbank: 46.1 (20 businesses)
- Kleefeld: 45.6 (9 businesses)
Ontario's top cities diverge even further from the provincial average of 38.5:
- Ariss: 58.5 (6 businesses)
- Sutton: 54.4 (5 businesses)
- Carp: 54.3 (20 businesses)
- St Jacobs: 50.6 (14 businesses)
- St Catharines: 48.9 (8 businesses)
The pattern in both provinces is consistent: smaller cities with fewer competing businesses allow individual high-signal contractors to lift local averages substantially. Ariss at 58.5 is 20 points above Ontario's provincial mean. These markets have less competitive noise and fewer unclaimed, low-signal profiles dragging the average down.
Methodology Note
This analysis covers 57,863 contractor records across 65 tracked markets, computed as of April 3, 2026. AI visibility scores are calculated from a composite of structured data presence (including JSON-LD), profile claiming status, review volume and rating, and website signal quality. State and provincial averages weight all tracked businesses equally regardless of size or revenue. Bottom-market data reflects metro-area aggregates rather than state-level rollups. Full methodology is available in the state-of-the-market report.
Breakdown by State and Market Tier
All four top-ranked markets by average AI visibility score are Canadian provinces. US metro markets fill the bottom of the rankings entirely, with Calgary (rank 60, avg score 4.2) the only Canadian market in the bottom 10.
| Market | Avg Score | Rank | Total Businesses |
|---|---|---|---|
| Manitoba | 41.7 | 1 | 673 |
| Northwest Territories | 38.9 | 2 | 97 |
| Ontario | 38.5 | 3 | 11,095 |
| Alberta | 38.5 | 4 | 3,600 |
| Calgary | 4.2 | 60 | 628 |
| Chicago | 4.1 | 61 | 659 |
| Seattle | 4.1 | 62 | 551 |
| Denver | 4.0 | 63 | 593 |
| Dallas | 3.9 | 64 | 598 |
| Vancouver | 3.9 | 65 | 559 |
The gap between Manitoba at 41.7 and Dallas or Vancouver at 3.9 is not a marginal difference in optimization effort. It reflects a structural divergence in how competitive noise, profile density, and signal quality interact at scale.
Why Small Markets Score Higher
Northwest Territories tracks only 97 total businesses, the smallest market in the dataset. Within Manitoba, Navin has 7 tracked roofing businesses and posts an average score of 50.3. Sunnyside has 20 businesses and averages 49.9. When a market has fewer total profiles, the unclaimed and unoptimized long tail is shorter. The businesses that have invested in review accumulation, website presence, and profile completeness are not diluted by hundreds of zero-signal competitors.
Chicago has 659 tracked businesses and an average score of 4.1. Dallas has 598 businesses and averages 3.9. Texas leads the entire VerifiedNode database by business count at 16,911 records. Ontario is second globally at 11,098. In both cases, volume creates a compression effect: the floor of low-signal profiles is large enough to pull the market average near the bottom regardless of how well the top performers are optimized.
The Alberta Paradox
Alberta exposes the limits of website presence as a proxy for AI visibility.
| Signal | Alberta | Manitoba | Northwest Territories |
|---|---|---|---|
| Avg Score | 38.5 | 41.7 | 38.9 |
| Website % | 82% | 72% | 63% |
| JSON-LD % | 7% | 2% | 4% |
| Avg Reviews | 65.0 | 60.0 | 11.0 |
| Avg Rating | 4.65 | 4.45 | 4.61 |
Alberta has the highest website adoption rate among ranked Canadian provinces at 82%. It has the highest average review count at 65.0 and the highest JSON-LD rate at 7%. It still ties Ontario at 38.5 and trails Manitoba by 3.2 points.
The explanation is tier distribution. Alberta's excellent tier contains 366 businesses (10.2%), but its poor tier holds 912 businesses (25.3%). Manitoba's excellent tier holds 77 businesses (11.4%) with a fair tier of 382 (56.8%) and a comparatively smaller poor cohort. The shape of the distribution matters as much as the top-end performance.
Alberta's 7% JSON-LD rate is the highest in the top four markets and still far below what drives meaningful score lifts at the market level. Website presence is the infrastructure. Structured data is the signal layer on top of it. Alberta has built the infrastructure without the signal layer at sufficient scale to move the provincial average.
Ontario shows the same dynamic at larger scale. With 909 businesses in the excellent tier (8.2%) and 2,499 in the poor tier, the province's average of 38.5 masks the concentration of unoptimized profiles. Its global rank by business count (11,098 records) means the denominator pulling its average down is enormous. Explore roofing profiles across the province at /roofing/ontario/.
The structural takeaway: market size and business density are headwinds that individual contractors cannot control, but they determine how much optimization work is required to stand out. In a 97-business market, a well-structured profile reaches the top tier more easily. In a 659-business market like Chicago, the same profile sits in the middle of the distribution. Understanding that gap is the first step toward understanding what the AI visibility score methodology is actually measuring.
Methodology
VerifiedNode calculates AI visibility scores for 58,000+ contractor records using a 100-point composite model built across three scoring categories. Each category measures a distinct dimension of how reliably AI systems, search algorithms, and large language models can identify, interpret, and surface a contractor profile.
Scoring Categories
Identity (25 points) evaluates the consistency and completeness of a contractor's core business data. Signals assessed include business name consistency across platforms, address verification against public records, phone number presence, and whether the contractor has claimed their profile. Only 17% of contractors in the dataset have a claimed profile, which directly constrains the accuracy of identity signals for the remaining 83%.
Legitimacy (35 points) draws on external verification sources. Inputs include licensing data pulled from public contractor licensing databases, insurance verification flags, review volume across major platforms, and rating consistency. These signals allow AI systems to assess whether a business is real, active, and trustworthy, not just that it exists.
Readability (40 points) carries the highest weight in the model because it directly determines whether automated systems can parse a contractor's digital presence. Signals include website crawlability, JSON-LD structured data presence, schema markup completeness, and mobile performance indicators. Readability is where most contractors lose points: only 10% of contractors globally have JSON-LD structured data, despite 89% having a website.
Data Sources
Scores are computed from four primary inputs:
- Google Business Profile data
- Public contractor licensing databases (US and Canadian provincial records)
- Direct website crawls
- Review aggregation across major consumer platforms
Tier Definitions
| Tier | Score Range | Contractor Count | Share of Total |
|---|---|---|---|
| High | 75 to 100 | 3,562 | 6% |
| Medium | 40 to 74 | 17,697 | 31% |
| Low | 0 to 39 | 36,604 | 63% |
63% of records fall in the low tier. That figure is not an anomaly in the data: it reflects the structural gap between having a web presence and having a web presence that AI systems can reliably process.
Dataset and Refresh Cadence
The dataset covers 58,000+ contractor records across the US and Canada. State and city averages are computed from all contractors in a given geography at the time of the snapshot, with each business weighted equally. Scores are recomputed periodically as data sources are refreshed. The figures in this analysis reflect the April 2026 snapshot. Full technical documentation is available in the state-of-the-market report.
Frequently Asked Questions
What percentage of roofers have low AI visibility scores?
63% of contractors in the VerifiedNode dataset score in the low visibility tier. That translates to 36,604 businesses out of 57,863 tracked records. These contractors are not being reliably surfaced, parsed, or recommended by the AI systems consumers increasingly use to find local services. The problem is not that these businesses lack a web presence: 89% of contractors globally have a website. The problem is the absence of the structured data layer that makes a website readable to automated systems.
Which roofing market has the highest AI visibility score?
Manitoba ranks first among all 65 tracked markets with an average AI visibility score of 41.7 across 673 roofing businesses. That score leads second-place Northwest Territories (38.9) by 2.8 points and outpaces the worst-performing markets by nearly 38 points. Vancouver and Dallas both sit at 3.9, the lowest average scores in the dataset. The Manitoba advantage comes primarily from review volume: roofers there average 60.0 reviews per business, a signal density that compensates for the province's 2% JSON-LD adoption rate.
How many roofing contractors does VerifiedNode track?
VerifiedNode tracks 58,000+ contractor records across US and Canadian markets. Ontario alone accounts for 11,095 of those records, making it the second-largest market in the dataset by business count behind Texas. Scores are computed from Google Business Profile data, public licensing databases, direct website crawls, and review aggregation across major consumer platforms. Check your own score at /find.
Why does having a website not guarantee AI visibility?
A website confirms that a business exists online. It does not tell AI systems what the business does, where it operates, or what customers say about it. Only 10% of contractors globally have JSON-LD structured data, the markup format that makes that information machine-readable. Without it, AI crawlers and large language models receive an incomplete or uninterpretable signal regardless of how well-designed the site is. Alberta illustrates the gap: 82% of its roofers have websites, yet the province's average AI visibility score is 38.5.
What is the global profile claiming rate for roofers?
Only 17% of contractors in the VerifiedNode dataset have a claimed profile. An unclaimed listing limits a contractor's ability to update service areas, add credentials, and respond to reviews through centralized platforms. AI aggregators pulling business data from those sources receive outdated or incomplete records, which suppresses visibility scores regardless of how strong other signals are. Explore regional claiming rates and market benchmarks in the state-of-the-market reports.