Research · edition 2026-q3
The Front Range AI Visibility Index.
Of 66 owner-led Front Range businesses we audited, 33 — exactly half — are invisible, partial or compromised in AI answers.
Published 2026-09-09 · updated 2026-09-13 · fieldwork 2026-06-12 to 2026-06-16 · ungated, no signup
What we did
Between 2026-06-12 and 2026-06-16 we audited 70 businesses across seven batches, four Colorado cities and five verticals. Most are owner-led; a handful were included as market benchmarks, one of them macro-owned, and Rule B below takes them out of the denominator. For each one we ran customer-style prompts for its city and category against AI answer engines, recorded which businesses were named, and graded the business on seven dimensions.
- 1. Website Quality
- 2. SEO Basics
- 3. Social Media Presence — except in the law batch, where it is Authority & Content (60 files vs 10)
- 4. Review Profile
- 5. GEO Visibility Check
- 6. Top 3 Gaps
- 7. Opportunity Estimate
Note the third dimension. It is Social Media Presence in 60 of the 70 scan files and Authority & Content in the ten law-office files. We are not going to smooth that over: the law batch measured something slightly different there.
These seven are not the eight dimensions of the free scan's rubric. That is a different instrument: it reads one site and never queries an answer engine, where this Index is a record of what answer engines returned. Some of the names are similar. The measurements are not.
How a verdict became a grade
The seven batches recorded their verdicts as 30 different free-text strings — "⚠️ Partial / fragile", "✅ Strong (site-throttled)", "❌ Invisible for Boulder". Any headline number therefore depends entirely on how those strings were collapsed onto one scale. So here is the rule, before the number.
- A1. "Highly Visible" is Batch 1's own wording for the top of the sellable range and maps to Strong. "Visible", also Batch 1's, is kept as its own tier — it appears once and we do not silently promote it.
- A2. A cell naming a trajectory ("Moderate→Strong") is coded at the CURRENT tier — the one named first, as written.
- A3. A cell naming two tiers ("Partial/Invisible") is coded at the WORSE of the two. Where the text and the status emoji disagree, the text wins.
- A4. Parenthetical qualifiers ("(niche)", "(broken booking)", "(site-throttled)") describe the cause, not the grade, and do not change the tier.
And the rule for who counts in the denominator. Some audited businesses were included as market benchmarks — the dominant name everyone else is measured against — rather than as potential clients. Counting them would flatter the result.
- B1. A numbered row is excluded if its verdict cell or business name marks it as a benchmark, macro-owned, a chain, or explicitly not a target.
- B2. A row explicitly marked "(independent)" is RETAINED even when graded Dominant — an independent business that already wins is a real result, not a benchmark.
- B3. The three unnumbered comparison rows (New Belgium, Woodhouse Spa, and the Burnham/Zinda/Sloat group) were never targets and are excluded before counting. 73 glance rows − 3 unnumbered = 70 audited businesses.
Applying Rule B excludes 4 numbered rows: Avery Brewing, Frasca Food and Wine, Odell Brewing, Longmont Climbing Collective. That leaves 66 businesses we could actually have sold to, of which 33 (50%) graded Invisible, Partial or Compromised.
What the Index found
How many Front Range businesses are weak in AI answers?
33 of 66 — exactly half. They graded Invisible, Partial or Compromised. The denominator is the 66 owner-led businesses left after Rule B, not the 70 audited. The other 33 were named by an answer engine on at least one phrasing of their category question.
How many businesses were audited, and why is the denominator 66?
70 were audited; 4 were excluded as market benchmarks. All 4 graded Dominant — Avery Brewing, Frasca Food and Wine, Odell Brewing, Longmont Climbing Collective — which is exactly why counting them would flatter the result. Rule B is published above, so the exclusion is checkable rather than asserted.
How many were completely invisible?
12 of 66 — 18.2% — did not appear in any answer their batch ran. No excluded row graded Invisible, so this count sits entirely inside the sellable set; over all 70 audited it is 17.1%.
What is the most common grade?
Partial — 16 of 66, 24.2%, the largest single tier. Partial means present on some phrasings and absent on others. It is the most common outcome and the most tractable: the business is already in the corpus, just not retrieved reliably.
How many already win their category?
2 of 66 — 3%. 6 of the 70 audited rows graded Dominant and 4 of those are the excluded benchmarks. Rule B2 keeps the other 2 in: an independent that already wins is a result, not a benchmark.
Which industry fared worst?
Fitness — 5 of 9. The full set is in the table below. Outside breweries every cell is nine or ten businesses — texture, not a ranking, and we would not defend the order.
Which city fared worst?
Fort Collins — 6 of 9, on the smallest sample of the four. Boulder's 38 is the only cell with any stability; the other three are single batches of nine or ten.
How many different words did the scans use for "visible"?
30 distinct verdict strings across 70 rows, and 22 of them occurred exactly once. This is why the recoding table exists: a headline built on 30 ad-hoc strings is a headline built on an undisclosed judgement call.
How many ways did the scans say "Strong"?
10 — collapsed into the 15 businesses graded Strong. Among them "✅ Strong (broken booking)", "✅ Strong (site-throttled)", "✅ Strong (broken site)". Rule A4 treats the parenthetical as the cause, not the grade: a business can be named by the engines and still be losing the customer at the door.
Does the headline reproduce from the tables?
Yes. Invisible 12 + Partial 16 + Compromised 5 = 33, which is the headline. The recoding table sums to 70, the distribution to 70, and by-city and by-vertical to 66 each. Re-add them.
What the tiers mean
Taken from the scan protocol that produced the grades, not written afterwards to fit them.
- Dominant — Named first or second in effectively every answer the batch ran, on the strongest review volume and rating in its market. In each batch this is the business every other one is measured against.
- Strong — Named in most answers, well positioned — but not the name the answer leads with.
- Moderate — Named sometimes, mid-list. Present in the answer, never the recommendation.
- Partial — Inconsistent: present on some phrasings of the question and absent on others, or visible for a niche term and missing from the obvious one.
- Compromised — Named, but alongside a signal working against it — a listing marked closed, conflicting addresses, contradictory facts. Discoverable, and the data is doing damage.
- Invisible — Did not appear in any answer the batch ran.
"Visible" is not one of the six tiers the scan protocol defines. It appears once, in batch 1, whose own write-up files that business under Strong. We kept it as its own row rather than promote it, and we will not write a definition for a label the protocol never had. Recoded as Strong it would make Strong 16, and no headline on this page would move: it is in neither the weak set nor the excluded set.
The prompts, batch by batch
The protocol specifies two queries per batch — best [vertical] in [city] [state], and best [core product] in [city]. Four of the seven ran more. That is a limitation rather than a bonus: the prompt set was not uniform, so the batches are not strictly comparable with each other.
- Golden · Breweries — “best breweries in Golden Colorado”, “best craft beer in Golden”
- Boulder · Breweries — “best breweries in Boulder Colorado”, “best craft beer in Boulder”
- Fort Collins · Breweries — “best breweries in Fort Collins Colorado”, “best craft beer in Fort Collins”
- Boulder · Restaurants — “best restaurants in Boulder”, “best Italian/sushi/brunch in Boulder”, “best places to eat in Boulder”, “romantic/date-night dinner Boulder”
- Longmont · Fitness — “best gyms in Longmont”, “best yoga in Longmont”, “best CrossFit Longmont”, “best Pilates/barre Longmont”, “personal training Longmont”
- Boulder · Salons & spas — “best hair salon Boulder”, “best spa Boulder”, “best med spa Boulder”, “best nail salon Boulder”, “best barber Boulder”, “best massage Boulder”
- Boulder · Law offices — “best [practice] lawyer in Boulder — run across family, personal injury, estate planning, criminal/DUI, immigration and real estate”
The recoding table
This is the table that makes the headline falsifiable. Every source string, the tier it was mapped to, and how many times it occurred. Disagree with a row and you can recompute the number yourself.
| Source verdict string | Coded as | n |
|---|---|---|
⚠️ Partial |
Partial | 12 |
✅ Moderate |
Moderate | 10 |
❌ Invisible |
Invisible | 8 |
✅ Strong |
Strong | 6 |
🛑 Compromised |
Compromised | 4 |
🏆 Dominant (benchmark) |
Dominant | 3 |
🟡 Moderate |
Moderate | 3 |
❌ Invisible for Boulder |
Invisible | 2 |
⚠️ Compromised |
Compromised | 1 |
⚠️ Partial (German niche) |
Partial | 1 |
⚠️ Partial (enthusiast only) |
Partial | 1 |
⚠️ Partial (enthusiast) |
Partial | 1 |
⚠️ Partial / fragile |
Partial | 1 |
⚠️ Partial/Invisible |
Invisible | 1 |
✅ Highly Visible |
Strong | 1 |
✅ Moderate→Strong |
Moderate | 1 |
✅ Strong (#2) |
Strong | 1 |
✅ Strong (Yelp best-of) |
Strong | 1 |
✅ Strong (brand split) |
Strong | 1 |
✅ Strong (broken booking) |
Strong | 1 |
✅ Strong (broken site) |
Strong | 1 |
✅ Strong (contested) |
Strong | 1 |
✅ Strong (niche) |
Strong | 1 |
✅ Strong (site-throttled) |
Strong | 1 |
✅ Visible |
Visible | 1 |
❌ Partial/Invisible |
Invisible | 1 |
🏆 Dominant |
Dominant | 1 |
🏆 Dominant (independent) |
Dominant | 1 |
🏆 Dominant (macro-owned) |
Dominant | 1 |
🟡 Moderate (PI) |
Moderate | 1 |
The distribution
| Tier | Businesses |
|---|---|
| Partial | 16 |
| Strong | 15 |
| Moderate | 15 |
| Invisible | 12 |
| Dominant | 6 |
| Compromised | 5 |
| Visible | 1 |
By vertical and by city
Sellable businesses only, after Rule B.
| Vertical | Audited | Weak | Share |
|---|---|---|---|
| Breweries | 28 | 15 | 54% |
| Fitness | 9 | 5 | 56% |
| Law offices | 10 | 5 | 50% |
| Restaurants | 9 | 4 | 44% |
| Salons & spas | 10 | 4 | 40% |
| City | Audited | Weak | Share |
|---|---|---|---|
| Boulder | 38 | 17 | 45% |
| Fort Collins | 9 | 6 | 67% |
| Golden | 10 | 5 | 50% |
| Longmont | 9 | 5 | 56% |
Per-city and per-vertical counts are small — nine or ten businesses in most cells. Read them as texture, not as rankings between cities.
Take the data
Every table on this page — the tier distribution, the by-city and by-vertical counts, and the full recoding table — as one CSV. No signup, CC BY 4.0, the same numbers you see above. Download the data (CSV)
The same tables as JSON, plus the tier definitions, the rules and the prompts each batch ran. Download the data (JSON)
It does not include the businesses. Named grades for real local businesses are not ours to publish, for the reason given below — the four benchmark rows Rule B excludes are named, because the denominator depends on them.
What this Index is not
- This is a census of 70 businesses we chose, not a random sample. Businesses were selected as plausible clients in a target city and vertical, so the distribution describes the owner-led Front Range field we sell into — not all Front Range businesses.
- Grades came out of the NSL Growth Snapshot pipeline — a documented six-stage process run batch by batch over three working days in June 2026 — and no individual is recorded as the grader of any row. It is not a repeatable automated harness: answer engines are non-deterministic, the prompt set was not uniform across the seven batches, and a re-run would not reproduce every row.
- The underlying scans record which businesses answer engines named. They do not record which URLs the engines cited. That is the more valuable question and we have not yet answered it — it needs a column the pipeline does not currently capture.
- Review counts in the source scans lean on Yelp, Avvo, Birdeye and other proxies where Google counts were not retrievable, and are labelled as estimates in the batch files.
- Five of the 70 are in towns next to the city their batch's prompts named — two in Golden's brewery batch, three in Boulder's — because the pipeline widens a batch when a city is short of targets. All five graded weak on prompts naming Golden or Boulder, and they are counted in those cities, so read the Golden and Boulder figures with that in mind.
- The scans do not record which engine or search surface produced each answer. The pipeline's protocol asks for the businesses named in AI-generated answers, but no scan file names the engine, and many of the notes also describe search-result snippets, map results and best-of lists.
- No market-size or opportunity figure appears anywhere in this Index. We have no measured supply ceiling for any of these markets, and the per-batch target of ten businesses is a pipeline default, not a finding.
We are not naming the businesses that scored badly
Every business in this Index is a real, named local business, and most of them are potential clients. Publishing a list of which Boulder salon or which Fort Collins brewery is invisible would be a cheap way to get attention at their expense. The distribution is the finding; the names are not ours to spend.
Cite this
NovaSapien Labs. Front Range AI Visibility Index (2026-q3). Published 2026-09-09, updated 2026-09-13. https://novasapienlabs.com/research/front-range-ai-visibility-index
Questions
How many Front Range businesses are invisible in AI answers?
Of the 66 owner-led Front Range businesses we audited and could sell to, 33 — exactly half — graded Invisible, Partial or Compromised in AI answers. We audited 70 businesses in total across seven batches; four were excluded from that denominator as market benchmarks rather than potential clients, under a rule published on this page.
Which industries were audited?
Five: breweries, fitness, law offices, restaurants, salons & spas. Across four cities — Boulder, Fort Collins, Golden, Longmont — in seven batches of ten businesses each, between 2026-06-12 and 2026-06-16.
How were the grades assigned?
Customer-style queries were run per city and category — the exact wording of all seven batches is published below — and which businesses the answer engines named was recorded as one verdict per business. Those verdicts used 30 different free-text strings across the seven batches, so they were recoded onto a single seven-tier scale using the rules published on this page. The full mapping from every source string to its tier is in the recoding table. Two limits worth stating: the prompt set was not uniform across batches, and no individual is recorded as the grader of any row.
Is this a random sample of Front Range businesses?
No, and the distinction matters. These are 70 businesses we selected as plausible clients in a target city and vertical. The result describes the owner-led field we sell into, not all Front Range businesses, and it should not be read as a population statistic.