Skip to content

A city an AI engine accepts is not a city it honors

Across 31,200 API answers collected in October 2026, ChatGPT followed the declared city, while Gemini ignored it and followed the network's country. Before you fund city-level tracking, a two-city test shows what your numbers measure.

11 min
Illustration: a contour map where four cities are joined by dotted lines to one single point.
Contents
  1. Are AI answers really local?
  2. Why isn't an accepted setting an honored one?
  3. Why test two cities that are not the default?
  4. How do you test an engine's localization?
  5. Why test language separately?
  6. Why do local answers under-count brands?
  7. What should a multi-location brand do?
  8. What changes for a multi-country brand?
  9. Where does the evidence on local answers stop?
  10. What should you do before the next local budget?
  11. Frequently asked questions

An engine accepting a location setting tells you nothing about whether it uses it. A city can go in without an error, be ignored, and still produce answers that look local. For a retail network or a multi-country brand, the mistake is costly: city-level reporting may reflect a single vantage point, while national reporting may miss nearly every local competitor you have.

The test rests on five rules: use two cities that are not the default, double every answer to isolate noise, keep not-local questions as a control, test language separately, and count maps separately. It tells you, engine by engine, where a city-level number means anything.

The public evidence is thin: as of 28 October 2026, I could find only one controlled academic audit, in English and run through APIs, and no test on French cities. So the protocol matters more than the results quoted here.


Are AI answers really local?

For some questions and some engines, yes, though often not through the channel you would assume. Mahe Chen and Nick Koudas (University of Toronto, preprint dated 16 October 2026) asked ChatGPT and Gemini 300 questions that name no place, twice each, through their APIs: 31,200 answers in all. They varied the declared location across 19 cities, then the network connection.

A localization index is the source overlap between two identical answers minus the source overlap between two places. At 0, location changes nothing beyond noise.

Channel testedNear mePlace-dependent (prices, laws, providers)Not local
ChatGPT, declared city, two US cities0.140.170.00
ChatGPT, declared city, two countries0.280.430.03
ChatGPT, network, two countries≤ 0.01≤ 0.01≤ 0.01
Gemini, network, two countries0.430.400.23

Source: Chen and Koudas, October 2026. Index computed on cited domains, questions in English.

So ChatGPT follows the declared city and ignores the network. Gemini does the opposite and stops at the country: between New York and Los Angeles, its index is 0.00. Distance doesn't behave as you might expect either. For ChatGPT the index is 0.13 for cities under 1,000 km apart and 0.14 for cities over 3,000 km apart, so a city a few hundred kilometers away is no stand-in for the one you care about.

Why isn't an accepted setting an honored one?

Because an engine can receive a parameter, do nothing with it, and never say so. Documentation tells you what goes in, not what changes in the answer.

EngineWhat the vendor documents, as of 28 October 2026What has been observed
ChatGPT, APICountry, region, city, time zoneCity followed (Chen and Koudas, October 2026)
Gemini, APINo location on the Google Search grounding page. Latitude and longitude on the Google Maps tool, which is limited to English prompts and responsesCoordinates had no effect (Chen and Koudas pilot; Nanga team tests, August 2026)
Claude, APICity, region, country, time zone. An unsupported country code is rejectedCity had no observable effect on one model the Nanga team tested in August 2026, not retested on later models
Perplexity, APICountry, region, city, coordinatesNo independent test found

In the Nanga team's tests, coordinates for Marseille, Lille, New York and Tokyo, all accepted by Gemini's API, came back with Parisian answers. There was no error and no warning. That is what failure looks like: an answer that seems fine and is about the wrong city.

Why test two cities that are not the default?

Because a test on the default city passes even when the setting doesn't work. The Nanga team found Paris to be the default on the engines it tested for France, so asking for Paris and getting Paris proves nothing.

The default also depends on the channel. With no declared location, ChatGPT's API answers, according to Chen and Koudas, for an unspecified user in the United States, and asks for a ZIP code or city on 63% of near-me questions (4% with a declared location). Gemini answers for the network's country. So run one batch with no location first: it shows you the real default for your channel.

Then pick two cities far from that default and far from each other, in markets where you already know the local players: Lille and Toulouse in France, Leeds and Bristol in the UK. Draw no conclusion about neighboring towns: the closest pair in the Toronto audit is 293 km apart, and I found no measurement below that.

How do you test an engine's localization?

With 30 questions, three settings and two repeats, one engine at a time.

  1. Pick the channel and name it in the report. An API with a location parameter measures the API, not the app. Colleagues or stores physically in both cities give you real networks, but accounts, memory and history have to be neutralized. A tracking tool measures whatever its vendor configured, so ask which channel, engine by engine.
  2. Write three families of questions with no place name. Ten near-me, ten place-dependent, ten not-local as a control. A question that names the city tests the prompt, not the setting. It is a sound fallback on an engine that ignores the setting, as long as you report it separately.
  3. Change one thing at a time. No location, city A, city B: same network, same language, same day. Test the network in a second batch.
  4. Double every answer. The twins give you the noise, and it is large: in Chen and Koudas, two identical near-me requests share only 23% of their business names, against 4% between two places.
  5. Compare domains and brands. For each pair: shared items divided by total distinct items. Only the gap between twins and cities counts.
  6. Look for proof in the sources. Count URLs that name the answer's city, then, as a placebo, those naming the other city. In Chen and Koudas, 79% of near-me answers in a US city cite a source naming the city or state, and the placebo stays below 0.2%.

Worked arithmetic, for illustration: 30 questions × 3 settings × 2 repeats = 180 answers per engine. That volume gives a direction and no more. Even the Toronto audit calls its ten-question-per-topic results indicative, and your prompt count sets the margin on everything you read afterward.

What you seeWhat it meansDecision
Cities as close to each other as twins areThe city is ignored on this channel, or noise swamps itReport at country level, with no city chart
Near-me moves, controls holdThe setting is honoredOne track per priority market
Controls move as much as everything elseA country, network or model effectRerun before crediting anything to the city
Sources move, brands holdSearch localizes, the recommendation doesn'tDon't promise a brand gain from a local page
Short answers, maps, questions backA format, not an absenceCount them separately

Why test language separately?

The language of the prompt decides the language of the answer, whatever country is set. On a project set to French, the Nanga team saw 50 English prompts return 50 English answers. Data in the wrong language usually starts with the prompt set, not the engine.

A new language also means new sources. An older study by Chen, Koudas and two colleagues (Chen et al., September 2025) translated 100 English product questions into five languages, including French. Between English and each other language, ChatGPT's cited domains barely overlap at all, Perplexity's and Gemini's overlap very little, and Claude is the most stable.

Move city and language together and you will never know which one did the work. Cross them instead: one city in two languages (Brussels, in French and in Dutch), then one language in two countries (French in Brussels and in Lyon).

Why do local answers under-count brands?

Because a local answer can be a map with very little text, and a mention counter reads text. ChatGPT has shown local listings with a map since December 2024 (Glenn Gabe, GSQi), and a business card was reported in December 2025 (Greg Sterling, Near Media). The Nanga team observed that when localization works, the answer is often that map, with almost no text around it.

Hence a paradox: the better an engine honors the city, the more your mentions can appear to fall. Four corrections follow:

  • Log the format of every answer. Text, list, map, question back. An answer asking for a ZIP code names no brand, so your rate falls for reasons that have nothing to do with your presence.
  • Read the map separately. Record the businesses it shows in their own column, then report your rate with and without map answers.
  • Review the brand list. The Nanga team saw text belonging to the map itself counted as brands, one of several kinds of false visibility signal.
  • Don't compare a localized engine with a national one. The gap between them owes as much to format as to your brand.

What should a multi-location brand do?

Treat cities as a sample, never as coverage. On ChatGPT and near-me questions, Chen and Koudas found that one city captures 9% of the businesses recommended across 15 US cities, five cities 36% and ten cities 69%, with no plateau. And 96% of those businesses appear in only one city. The decision depends on the question family:

  • Near me. A request in one city recommends only 8% of the businesses the same request recommends in another city, against 32% when you repeat it in the same city. Choose cities by the revenue at stake, and extrapolate to none of the others.
  • Place-dependent. 31% against 34%: changing city changes barely more here than repeating the question.
  • Not local. On ChatGPT the index is 0.00 between US cities, so on that channel a city budget is hard to justify.

The authors also suggest that a local business becomes visible on ChatGPT through pages found by place-specific searches (local directories, review sites, local institutions) more than through national rankings. That inference from their audit has not been put to an intervention test.

What changes for a multi-country brand?

Measure every country, even for questions that mention no place. On Gemini, the index stays at 0.23 for sources and 0.07 for recommended brands between countries on not-local questions. Asked which store has the cheapest groceries, it names Aldi, Lidl and Tesco from the UK, and No Frills, Walmart and Food Basics from Canada.

  • The network is part of the setting. A test run from your offices measures Gemini for that country. The authors used data-center VPN exits and warn that Gemini may localize more finely on residential connections.
  • Not every country is accepted. Anthropic's documentation, as of 28 October 2026, says an unsupported country code is rejected. On 17 October 2026, the Nanga team saw Claude's web search refuse Ireland, Luxembourg and Réunion.
  • A changed location breaks a series. Comparing two periods or two engines only holds with location fixed.

Where does the evidence on local answers stop?

Before French and before consumer apps. As of 28 October 2026:

  • French. The Toronto audit uses English questions, 15 US cities and four cities in other English-speaking countries. I found no published test on French cities.
  • Consumer apps. The audit runs through APIs and small models, and its authors warn that these may not behave like the apps. ChatGPT added optional device location sharing in March 2026 (PPC Land, citing OpenAI's release notes, which I could not open). I found no published test that reproduces a real user with their own account, memory and location.
  • Google. I found no independent audit of AI Overviews or AI Mode at city level.
  • Sales. I found no data linking a city's AI visibility to store visits or local revenue.
  • Shelf life. The authors state that their measurements describe the engines in October 2026. A new model version can move all of it.

Vendor studies publish gaps between cities. I am not relying on them here, because I could not verify their methods.

What should you do before the next local budget?

  1. List the decisions that rest on a local number. If there are none, the test can wait.
  2. Test the engine that weighs most in those decisions first, with the 30 questions and the controls.
  3. Write the reporting rule. For each engine: city or country level, channel, language, date of last test. A number without that line stays out of a budget decision.
  4. Rerun the test at every model change, and at least once a quarter (my own rule of thumb).

The test is not the hard part. Keeping visible, week after week, which engine is answering at which level is. In Nanga's GEO module, a project covers one country and one language and can target a city. Only some engines receive that city, and the others answer at country level. Once a city is set, each engine carries a badge, "City targeting" or "Country only", wherever engines are compared, so a targeting gap doesn't read as a visibility gap. A city change takes effect on the next run, and past runs keep the targeting they were collected with. Two cities means two projects, within the limits of your plan.

To see which engines receive your city and what they answer on your own prompts: request a demo.

Frequently asked questions

What is a location test for AI answers?

It compares identical requests made from one place and from two different places. Under the method used by Chen and Koudas (University of Toronto, October 2026), only the gap that exceeds the noise between identical answers can be credited to location.

Do ChatGPT and Gemini take your city into account?

Not in the same way. In the API audit by Chen and Koudas (October 2026), ChatGPT followed the declared city and ignored the network, while Gemini ignored coordinates and followed the network's country. The consumer apps were not tested.

Why not run the test in Paris or another default city?

Because a default city passes even when the setting does nothing. The Nanga team found Paris to be the default on the engines it tested for France. Start with a request that sets no location to find the default, then test two cities far from it.

Does the language of the prompt change the answer?

Yes, and not just the language it is written in. The Nanga team saw 50 English prompts return 50 English answers on a project set to French. Chen et al. (September 2025) found ChatGPT's cited domains almost never overlap across languages. Test language separately.

How many cities should a multi-location brand track?

No number covers a network. On ChatGPT across 15 US cities, Chen and Koudas (October 2026) found one city captures 9% of recommended businesses, five cities 36% and ten cities 69%, with no plateau. Pick cities by the revenue at stake.


Sources:

See Nanga in action

Discover how the Marketing Intelligence System turns data into decisions.