aeod.app

Notes on AI visibility

Why AI Assistants Recommend the Same Three Businesses

A buyer asks ChatGPT for a plumber in a mid-sized city. The response is a short set of names. Three is common. The buyer sees a workable set and acts. Businesses outside that set stay invisible to the buyer.

AI assistant answers come from a language model plus retrieval over an index. The model receives query and retrieved passages, then produces a few candidates. The output is a recommendation set. Each assistant has its own retrieval and ranking behavior, so the set differs by product and by query wording.

aeod.app measures this surface by asking buyer-style questions and recording mentions, citations, and position. The finding that repeats: the same few businesses occupy the shortlist across many queries. Most businesses measure visits after the answer. Few measure their absence from the answer itself.

That absence has a structure. It comes from how recommendation sets form, which sources get retrieved, and how assistants cluster equivalent options. Reading the shortlist as a set of candidates is the starting point.

How recommendation sets form: a shortlist of candidates

A recommendation answer is a set of names. Across the buyer questions measured here, that set usually contains three to five businesses. The output is a short list of options. The business that appears becomes a candidate. The business that does not appear leaves no trace in the conversation, and the buyer never learns it was an option.

Inclusion in that set depends on a confidence threshold. The assistant retrieves sources, checks consistency across them, and generates names it can support with evidence. A position on a search results page is a separate signal. A business that ranks first for “emergency plumber” can still drop out of an AI answer when the retrieved sources do not confirm its services and location. Answer presence is the relevant measure. It is binary at the point of response: named or absent.

The mechanism is retrieval augmented generation. Systems such as ChatGPT, Gemini, and Perplexity pull from retrieved web pages and structured sources. They compare claims across those sources. A local plumber with reviews on one directory and no consistent business listing produces weak verification. A regional chain with independent mentions across multiple external sites produces strong verification. The assistant selects the name it can describe with confidence. This is why a broadly known brand gets named over a locally better business with a thin digital footprint. The assistant avoids statements it cannot verify.

That behavior separates ranking visibility from answer presence. Ranking visibility tracks where a URL sits on a search engine page. Answer presence tracks whether a business enters the generated recommendation set. The two connect because retrieval often starts with search, and they do not collapse into one metric. A business with fewer rankings enters the shortlist when its evidence is consistent across sources.

The set stays small because each added name raises the verification burden. Three to five names cover the common buyer need without forcing the assistant to vouch for marginal candidates. This produces a steep concentration: a small share of businesses takes most recommendations.

The concentration numbers: a small share of businesses takes most recommendations

Hexagon analyzed 50,000 AI shopping citations. In that dataset, about 12% of brands captured more than 80% of AI recommendations. The remaining 88% of brands share the rest. That is a steep concentration curve. SOCi’s 2026 Local Visibility Index found a related pattern for local businesses: AI assistants are markedly more selective than search engines. Search engines return many local results. Assistants return few.

Those two datasets describe a threshold: a small set of businesses clears a bar, and the rest stay out of the answer. The bar combines several signals, including the assistant’s ability to verify the business, its appearance in trusted sources, and its fit with the specific question. The concentration numbers show the outcome. They do not show the cause.

The practical implication is that absence from an AI answer is the default. A business can be missing simply by failing to clear the threshold the assistant applies. Both datasets point to the same structure: the shortlist is a small set of names that satisfy verification requirements set well outside the business’s control.

This structure changes how to read any single answer. A mention is evidence that the business cleared the bar for that query. A missing mention is evidence that it did not. The concentration figures also explain why small changes in source coverage or verification signals move a business into or out of the set. They are the baseline for reading any answer set.

The next question is where the names come from. The concentration appears in both datasets, yet the sources behind the names vary from engine to engine.

Engines converge on names while their citation sources diverge

Line up the citation lists from ChatGPT, Perplexity, Gemini, and Google AI Overviews for the same buyer question and the overlap is thin. Roughly one in ten cited URLs appears on more than one engine, per TechTimes data. A page that earns a citation inside one assistant’s answer often shows up nowhere in the next assistant’s answer.

The names behave differently. Ask each engine for the best plumber, then for the best CRM for a small law firm, and the same two or three brands keep surfacing. Different evidence, same shortlist.

Source composition is a separate matter. About 43% of AI Overview citations go to Google-owned properties, per 5WPR. That figure describes where one engine pulls text from, and it shapes which passages get quoted. It does not determine which brand name appears in the answer. The citation pool and the name pool are two distinct objects, and the second one is far more stable than the first.

That split is the finding. An engine assembles an answer by retrieving passages, then resolves those passages to entities it can name. The URL is an input. The brand is the output. When overlap on inputs sits near 10% and overlap on outputs sits far higher, the evaluation target sits closer to the entity than to the page.

The practical consequence is a ceiling on single-page tactics. One well-placed page can enter one engine’s retrieval set and change one answer. It will rarely enter the retrieval sets of every engine answering that question, because those sets are built from different indexes, different crawl priorities, and different partner feeds. A business that wants to appear across three engines has to be represented consistently enough across the web that each engine can resolve the same entity from its own evidence.

This is why shortlist presence is hard to read from referral traffic. Logs show the visits that happened. They do not show which entities each engine considered and dropped. That gap only becomes visible when the same questions are run against several assistants and the names are compared.

Reading citations one at a time hides it. The pattern appears only at the level of names across engines, which returns the question to the mechanism that produces a name in the first place.

Where the first names come from: the retrieval layers that feed the model

When a buyer asks for a local plumber, the model calls a retrieval layer. Those layers are mostly external datasets: structured listing data, review platforms, directories, community threads, and news coverage. The model receives a short set of entities, then writes an answer from that set. The first names in the answer are the first names that survived retrieval.

Structured listing data is the most mechanical input. A business needs a name, address, phone, category, hours, and coordinates in a format an API can return. Foursquare’s Places API is one such source. A large majority of ChatGPT’s first local recommendations trace back to it. Google’s index, the dataset most businesses optimize for, plays a smaller role in that retrieval path. Google Business Profile completeness does not guarantee eligibility in ChatGPT’s candidate pool when the retrieval path never consults Google.

Review platforms add another filter. Sites that publish business profiles with categories, locations, and review counts feed retrieval systems. Directories do similar work for licensed trades. Community threads on Reddit and local forums appear when a question has a conversational shape. News coverage introduces a business for a specific query, though it rarely supplies the structured fields needed for broad local retrieval. Each source has its own coverage rules.

The consequence for a business is blunt. Absence from a retrieval layer places a business outside the candidate pool. The model cannot mention a business it never received. Improving a website, earning links, or publishing social posts affects a downstream answer only after some retrieval source includes the business as an entity. The eligibility question comes before the ranking question.

That is why two businesses with similar quality get different outcomes. One appears in the API, directory, review platform, and community thread that the assistant queries. The other appears in none of them. The buyer sees three names and assumes those are the options.

Tracing an assistant answer back to its likely sources ends at this layer: whether the business is present in the inputs that precede a recommendation.

Once a business is retrievable, entity consistency decides whether the retrieved record survives reconciliation. Conflicting names, addresses, phone numbers, or categories remove the entity before the answer is written.

Entity consistency: why conflicting details remove a business from the list

Retrieval returns records, and records have to agree. When an assistant pulls a business from two or three sources, it compares the fields that identify it: legal name, street address, phone number, category, and website domain. Those fields act as join keys. When they match, the sources reinforce a single entity and confidence rises. When they conflict, the system holds two partial records where it needs one complete one.

Conflicts are routine. A directory carries an old phone number. A review platform still lists a former business name. One profile includes a suite number and another gives the street address alone. A category reads “plumber” on one site and “general contractor” on the next. Each mismatch is small on its own. Together they split the entity across profiles or push confidence below the threshold the assistant applies, and a business that was retrieved is dropped before the answer is written.

Consistency is the cheapest link in the chain to repair and the easiest to overlook, because every profile looks correct in isolation. The check is whether the same identifiers appear in the same form everywhere the assistant might retrieve them.

Repetition compounds: mentions, recency, and the review corpus

Ahrefs analyzed 75,000 brands and found that third-party mentions track AI visibility far more strongly than link authority does. YouTube mentions correlated at 0.737 and branded web mentions at 0.664, against 0.218 for backlinks. A decade of link building predicts less about whether an assistant names a business than a handful of YouTube videos that mention it.

The content that gets cited skews recent. Cited pages tend to be fresher than the pages assistants pass over. A review thread from 2021 describing a plumbing company carries less weight than a forum post from last spring. The mechanism is direct. Models trained and grounded on current material reproduce patterns from current material. Stale pages describe businesses as they were, and assistants answer questions about businesses as they are.

These findings combine into a loop. A business gets named once in a Reddit thread or a local news roundup. That mention enters the corpus. When an assistant assembles a shortlist, the mention serves as corroboration, so the business gets named again. Each subsequent naming adds another citation point, which makes the next naming likelier. Recency reinforces the same pattern. A business with steady mentions across the last two years stays in the fresh layer of the corpus. One whose last mention landed in 2019 falls out.

The loop runs in the other direction with equal force. A business that has never been named anywhere has nothing for an assistant to corroborate. No thread names it. No roundup includes it. When the model assembles a shortlist of three, the absence is total. The business holds no place in the set.

For a buyer, the shortlist reads as a neutral summary. For a business, it reflects who has been written about and how recently. Repeated runs show which businesses get named and how they are cited, and the gaps that remain can be ordered by what to fix first.

How stable is the list, really? Two 2026 findings that disagree

The disagreement starts with measurement. SparkToro’s January 2026 report found that AI assistant recommendation sets changed on nearly every query. Run the same prompt twice and the shortlist often shifted. That finding supports a view of AI answers as unstable, with winners rotating by session.

Conductor’s July 2026 analysis argued the opposite pattern. Consistency is predicted by intent type. For some intent types, some brands appeared in the large majority of relevant answers. For other intent types, the set moved more. Intent shaped the result alongside randomness.

Both findings can be true. Names at the very top are stickier than the tail. A category leader with strong retrieval coverage holds a high probability across runs. The fourth through tenth names sit in a long tail of lower probability. A single prompt run samples one answer from that distribution. It will often surface a tail name, which makes the set look volatile. Repeated runs reveal the stable center.

This is why single-run prompt tests overstate instability. They sample the volatile part of the distribution. They also confuse absence with rejection. If a business appears in one run and not the next, the test says the list changed. The underlying weighted set often stays nearly fixed.

For a defensible read, run the same prompt multiple times. Five runs per prompt is a minimum. Ten runs per prompt per model gives a clearer map. Track which names recur, where they appear, and which citations accompany them. The recurrence rate separates the top of the distribution from the tail. The citation pattern shows which sources the assistant used to assemble the answer. A name that appears in eight of ten runs has different standing from a name that appears once.

A repeated-run read describes the distribution. It does not promise a recommendation, and it cannot move an AI ranking by itself.

The practical conclusion for a category is direct. A single prompt is a sample. A repeated prompt set is a reading.

Testing your own category with repeated prompts

Build the prompt set from the questions buyers actually ask. Start with five to ten prompts in the customer’s words, with location and constraints intact. “Who is the best plumber in [city]?” “Which CPA handles payroll for restaurants?” “Where should I go for urgent dental care?” The exact wording matters because assistants use the query’s location and category signals to retrieve different sources.

Run each prompt across several assistants on multiple days. ChatGPT, Claude, Gemini, Perplexity, and Copilot are five accessible surfaces. Run the same set on at least three days. A prompt run on Tuesday and Friday returns a different shortlist when retrieval layers update or location signals change. The variation is data. It shows which businesses hold steady and which ones appear only once.

For every run, log the businesses that appear and their order. Record mention rate as the share of runs where a business appears. Record position as the rank it holds in the shortlist. Record citation source as the domains the assistant names or links. A business with zero mentions across ten runs is absent from the category. A business that appears in eight runs at rank four is present but behind. A business cited only by a directory and never by its own site has a different problem from one cited by a trade association and a local news outlet.

Separating those measurements turns a vague sense of invisibility into specific gaps. Mention rate isolates retrieval coverage. Position isolates how the assistant orders candidates once they are retrieved. Citation source isolates which third-party pages the assistant uses as evidence. That is the measurement aeod.app produces: per-question mention rates and citation sources, with position recorded for every appearance.

Measurement comes first. The corrective work depends on which input is missing: retrieval coverage, entity consistency, or third-party corroboration. Clean schema does not save a business if the assistant retrieves nothing about it. A retrieved business still loses if its name and location are inconsistent across profiles. A consistent business still loses if the citations come from sources the assistant treats as weak.

The same three businesses keep appearing because evidence about them is easier to find, verify, and repeat. That is a statement about documentation. A retrieval system that finds a consistent name and a matching address has something to work with. A business with strong service and thin public evidence gives the assistant nothing to retrieve.

Each input in the chain is concrete and inspectable by anyone willing to look. Whether an assistant retrieves a page about the business is visible in the answer. Whether the name and location match across profiles is visible in the profiles. Third-party corroboration is visible in the sources the answer cites.

The caution is equally concrete. No single change moves a shortlist. Updating a profile does not create a citation. Adding schema does not create retrieval. No vendor can promise inclusion, because the assistant decides what to retrieve when the question is asked.

That leaves a narrow working habit. Ask the questions your buyers ask, in their wording, and record which names come back and which sources the answer cites. Then work on the specific missing input the answers point to. Volume without a diagnosed gap produces activity. Diagnosis produces a changed answer.

Your own answers

See what AI says about your business.

One domain, one assessment. Mention and citation rates, competitors named instead of you, and a prioritized action list.

Get your report · $29 ↗

More notes