In the first post in this series I showed that ChatGPT rebuilds about half of any local recommendation list within a week. The natural next question is the one owners actually care about: how does ChatGPT choose local businesses in the first place, and why does the choice keep changing?
Our August 2026 study, which asked "who is the best {service} in {city}" across 216 US markets and recorded the ChatGPT web app's own responses, let us trace each answer backward through its layers. The short version: the churn is not the model being moody about your business. It starts in which web pages get read for each answer, and it flows downstream from there.
ChatGPT runs a search before it recommends anyone
For a local question, ChatGPT does not answer from memory. It searches the web, reads a set of pages, and builds the answer from what it just read. That gives every answer four layers you can measure: the domains it retrieved, the domains it cited, the pool of candidate businesses it considered, and the final displayed panel of cards. OpenAI's web search documentation draws the same line, noting that the sources a model consults often outnumber the ones it cites.
Behind a typical answer we observed a median of 16 candidate businesses (n=429 answers), from which around five were displayed. The full pipeline, with every number and limitation, is on the study page at how ChatGPT picks a local business.
A note on method before the numbers. This layer-by-layer decomposition was computed post hoc, after the study's main results were unblinded, and the candidate pool behind each answer was observed to a depth of 10 non-displayed businesses per answer. Treat what follows as descriptive of what we observed, not a causal proof.
The reading list churns harder than the recommendations
When we asked the identical question in the same market days apart, here is how much each layer overlapped between the two asks, on a 0-to-1 scale where 1.0 means identical:

Wave-to-wave overlap (Jaccard) by layer: retrieved domains 0.20 (n=197 market pairs), cited domains 0.39 (n=214), observed candidate businesses 0.37 (n=214), displayed panel 0.36 (n=214).
The retrieved domains, the actual pages read, overlapped at just 0.20 (CI 0.16 to 0.24). The candidate businesses extracted from those pages overlapped at 0.37 (CI 0.34 to 0.39), and the final displayed panel landed at 0.36 (CI 0.33 to 0.39).
That ordering tells the story. The instability is worst at the very start of the pipeline and it barely improves on the way down. ChatGPT reads a substantially different stack of pages almost every time it answers, and the recommendation list inherits that variance. Interestingly, different pages often still surface overlapping businesses, which is why candidates overlap at 0.37 while the pages themselves overlap at only 0.20. Good businesses appear on many sources, and that redundancy is what carries them across asks.
Businesses ChatGPT saw again usually stayed recommended
The re-encounter numbers make the mechanism concrete. Of the 974 businesses shown in wave one, 647, or 66.4%, appeared somewhere in wave two's observed candidate pool. That figure is a lower bound, since we only observed the pool to 10 non-displayed businesses per answer.
Now split the second wave's outcome by that re-encounter:
- A wave-one business that ChatGPT encountered again was shown again 72.5% of the time (469 of 647).
- A candidate that had not been shown in wave one broke into the panel only 21.5% of the time (515 of 2,399).
Once ChatGPT has you in front of it, it picks you at nearly three and a half times the rate of a fresh face. Which means most of the disappearing act in the churn numbers is not rejection. It is simply not being encountered on that particular ask, because that ask read a different set of pages.
Coverage across sources keeps you in the candidate pool
Follow the logic and the practical lever falls out on its own. You cannot control which pages ChatGPT reads on any given ask. You can control how many of the likely pages carry your business.
The pages in question are mostly directories, review platforms, and list-style local sites, and each service category has its own rotation of them. A business that is accurately listed, reviewed, and described across many of those sources is present no matter which subset gets read today. A business that lives on one or two sources is playing a lottery where its numbers only sometimes get drawn. This is why I keep telling owners that listings and reputation work did not get replaced by AI search. It got a promotion.
The same holds for the citations users actually see under an answer. Cited domains overlapped at 0.39 between waves (n=214), so even the sources ChatGPT shows its users rotate from ask to ask.
Retrieval churn changes what winning means
The framing I have settled on: in classic SEO you compete for a position that persists between crawls. Here, the contest is re-run from scratch every time someone asks, using whatever pages happen to get pulled. Winning is not a rank you hold. It is a probability you raise, and the way you raise it is redundancy, being findable on enough of the sources in your category's rotation that any plausible reading list includes you.
Later in this series I will break down exactly which websites ChatGPT read for each of the 12 service categories in the study, which turns this from theory into a to-do list.
The questions owners ask most about how ChatGPT chooses local businesses, answered from the study data.
Ready to be in the pool every time ChatGPT looks?
The mechanism is plain once you see the layers. ChatGPT reads a rotating set of pages, and the businesses recommended most consistently are the ones present across that whole rotation, with the review profile to win the slot once they are in the pool. Auditing that coverage for a specific market is exactly the kind of work Spearleaf does inside our AI search program. If you want to know which sources matter in your category and where you are missing, reach out through our contact page and we will walk your market together.
This article was written by Joshua Albanese, founder of Spearleaf, a local SEO and marketing agency based in Fort Myers, Florida. Joshua has built six businesses from zero using organic search and content, and he leads Spearleaf's SEO, AI search, and local strategy for service businesses across the U.S.