<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: VOYGR</title>
    <description>The latest articles on DEV Community by VOYGR (@voygr).</description>
    <link>https://dev.to/voygr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4229666%2F0defede0-454e-4181-905e-31b9ad4144f7.png</url>
      <title>DEV Community: VOYGR</title>
      <link>https://dev.to/voygr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/voygr"/>
    <language>en</language>
    <item>
      <title>Are San Francisco businesses ready for AI? We gave an AI a phone to find out</title>
      <dc:creator>VOYGR</dc:creator>
      <pubDate>Fri, 06 Nov 2026 05:24:17 +0000</pubDate>
      <link>https://dev.to/voygr/are-san-francisco-businesses-ready-for-ai-we-gave-an-ai-a-phone-to-find-out-42n2</link>
      <guid>https://dev.to/voygr/are-san-francisco-businesses-ready-for-ai-we-gave-an-ai-a-phone-to-find-out-42n2</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://voygr.tech/blog/does-sf-talk-to-ai/" rel="noopener noreferrer"&gt;voygr.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We did an experiment for SF Tech Week - how ready are San Francisco businesses for AI? We gave an AI a phone using &lt;a href="https://voygr.tech/placecall/" rel="noopener noreferrer"&gt;PlaceCall&lt;/a&gt;, our API which lets AI agents make real phone calls, and had it call businesses across the city - vets, dentists, bars, cafés, salons and more. It said it was an AI on every call, then asked one useful question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Only 1 in 3 SF businesses kept talking to it.&lt;/strong&gt; Every business which did is on the map above, with what they told us.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;848&lt;/strong&gt; SF businesses our AI spoke with&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 in 3&lt;/strong&gt; kept talking after hearing it was an AI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;79%&lt;/strong&gt; of vets kept talking, the most of any type&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 in 25&lt;/strong&gt; already had an AI answering their phone&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Are businesses ready for AI calls? Not yet
&lt;/h2&gt;

&lt;p&gt;2 out of 3 businesses hung up within seconds of hearing it was an AI. Most of them did not say anything - they listened to the intro and the question, and hung up about 5 seconds later. Very few refused out loud, and almost nobody asked who the AI was calling for.&lt;/p&gt;

&lt;p&gt;This is going to change fast. Soon every personal assistant is going to call businesses for us - to book, to ask, to check something. Right now most businesses hang up on them - and the businesses which answer will be the ones getting the bookings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who talks to an AI, and who hangs up?
&lt;/h2&gt;

&lt;p&gt;Places with a front desk, where answering the phone is part of the job, mostly kept talking. Busy counters mostly hung up.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Business type&lt;/th&gt;
&lt;th&gt;Kept talking&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vets&lt;/td&gt;
&lt;td&gt;79%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dentists&lt;/td&gt;
&lt;td&gt;61%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bike shops&lt;/td&gt;
&lt;td&gt;58%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gyms and studios&lt;/td&gt;
&lt;td&gt;46%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auto repair&lt;/td&gt;
&lt;td&gt;40%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Florists&lt;/td&gt;
&lt;td&gt;32%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Restaurants&lt;/td&gt;
&lt;td&gt;31%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hair salons&lt;/td&gt;
&lt;td&gt;28%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cafés&lt;/td&gt;
&lt;td&gt;26%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dog groomers&lt;/td&gt;
&lt;td&gt;25%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nail salons&lt;/td&gt;
&lt;td&gt;23%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bars&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dry cleaners&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Neighbourhoods differ too - Financial District, SoMa and Nob Hill kept talking more often than the Mission or the Sunset. Most of this is the business mix - the Financial District has a lot of dentists.&lt;/p&gt;

&lt;h2&gt;
  
  
  How many businesses already have an AI answering?
&lt;/h2&gt;

&lt;p&gt;About 1 in 25 businesses which picked up had an AI answering the phone - mostly restaurants, bars and dental offices. In these calls it was our AI talking to their AI. One AI host answered at 11 different venues, and two AI receptionists asked our AI to say “zebra” to prove it is a person.&lt;/p&gt;

&lt;h2&gt;
  
  
  What did businesses tell us?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;94% of dentists that answered are taking new patients&lt;/li&gt;
&lt;li&gt;86% of cafés are fine with laptops&lt;/li&gt;
&lt;li&gt;a basic haircut is about $80 (median)&lt;/li&gt;
&lt;li&gt;a gym drop-in class is about $35 (median)&lt;/li&gt;
&lt;li&gt;most florists want same-day orders by 2 pm&lt;/li&gt;
&lt;li&gt;happy hours mostly start between 3 and 5 pm&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where a business gave a clear answer, you can see it on its pin on the map.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we did it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The businesses.&lt;/strong&gt; 13 types of San Francisco businesses with public phone numbers. We checked each one with the &lt;a href="https://api.voygr.tech/docs" rel="noopener noreferrer"&gt;VOYGR validation API&lt;/a&gt; to make sure it is still operating, and skipped mobile numbers, chains and duplicates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The calls.&lt;/strong&gt; Made with &lt;a href="https://voygr.tech/placecall/" rel="noopener noreferrer"&gt;PlaceCall&lt;/a&gt;. The AI said it was an AI, then asked one short question which fits the business. Only during business hours, and anyone who asked not to be called again was removed from the list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What counts.&lt;/strong&gt; “Kept talking” means a person heard it was an AI and continued the conversation. Calls which reached voicemail, a phone menu or nobody are not counted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy.&lt;/strong&gt; The map shows only businesses which talked to our AI, with their answer. No recordings and no transcripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  If you are building AI assistants
&lt;/h2&gt;

&lt;p&gt;Plan for most businesses to hang up in the first seconds. A short intro and one clear question got answers, anything longer got a hang-up. And plan for the other side being an AI too.&lt;/p&gt;

&lt;p&gt;We built &lt;a href="https://voygr.tech/placecall/" rel="noopener noreferrer"&gt;PlaceCall&lt;/a&gt; for this - you send a phone number and a task, it makes the call, handles the phone menus and the hold music, and gives you back a structured result. If you are building something like this, we would love to hear about it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>voice</category>
      <category>agents</category>
      <category>research</category>
    </item>
    <item>
      <title>Can AI draw San Francisco from memory?</title>
      <dc:creator>VOYGR</dc:creator>
      <pubDate>Fri, 06 Nov 2026 05:07:13 +0000</pubDate>
      <link>https://dev.to/voygr/can-ai-draw-san-francisco-from-memory-2jp1</link>
      <guid>https://dev.to/voygr/can-ai-draw-san-francisco-from-memory-2jp1</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://voygr.tech/blog/can-ai-draw-san-francisco-from-memory/" rel="noopener noreferrer"&gt;voygr.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In 2023, &lt;a href="https://arxiv.org/abs/2310.02207" rel="noopener noreferrer"&gt;Gurnee and Tegmark&lt;/a&gt; showed that you can read the latitude and longitude of places straight out of a language model’s activations. So there is a map in there somewhere. We wanted to see it.&lt;/p&gt;

&lt;p&gt;We gave six AI chat models, two each from Anthropic, OpenAI and Google, 41,526 points of San Francisco as latitude and longitude, and asked what is at each one - water, a park, a building, a street or something else. They answered from memory, with no maps and no internet, and we checked every answer against OpenStreetMap. We also asked two multiple-choice APIs, Jev by TypeSafe and OpenAI’s Decisions API, one point at a time.&lt;/p&gt;

&lt;p&gt;There are three maps: the whole city at a point every 100 m, at low, medium and high reasoning; Crissy Field, the Palace of Fine Arts and the Marina at a point every 10 m, at medium; and one 500 x 500 m block of the Marina, at medium and high.&lt;/p&gt;

&lt;p&gt;In geocoding terms, this is reverse geocoding from memory: a coordinate goes in, and the model says what is there. We did not test the other direction, from an address to a coordinate.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;86%&lt;/strong&gt; of the city map right for the best three models. "Not water, not park" everywhere gets 61%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$26 vs $135&lt;/strong&gt; for the same city score&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;0.32&lt;/strong&gt; best street score on one Marina block, against 0.23 by chance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;23 of 25&lt;/strong&gt; requests Gemini 4 Argon left empty on that block at high reasoning&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Three models tie at 86%, and one costs five times more
&lt;/h2&gt;

&lt;p&gt;At a point every 100 m, a point lands on a street or a building by chance, so we score the city map as water, park or everything else. At high reasoning, Gemini 4 Argon, GPT-6.1 Sol and GPT-6 Astra all got 86% of it right, against 61% for answering “not water, not park” everywhere. They are within a point of each other, so we call it a tie.&lt;/p&gt;

&lt;p&gt;Astra’s run on the city map cost $135. Argon’s and Sol’s cost about $26 each. These are what our runs cost: Anthropic and OpenAI went through their Batch APIs at half price, and Gemini through the regular API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxwyebsrw7nlj0t790gva.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxwyebsrw7nlj0t790gva.png" alt="Gemini 4 Argon's San Francisco from memory at high reasoning" width="695" height="570"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Gemini 4 Argon 86%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc7ozkl2o32radrfugr22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc7ozkl2o32radrfugr22.png" alt="GPT-6.1 Sol's San Francisco from memory at high reasoning" width="695" height="570"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GPT-6.1 Sol 86%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhtsc9k8snbkqm506zgzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhtsc9k8snbkqm506zgzz.png" alt="Claude Opus 5.5's San Francisco from memory at high reasoning" width="695" height="570"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Claude Opus 5.5 84%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The other two joint best maps, and Claude Opus 5.5 at 84% for $7.72, all at high reasoning and a point every 100 m. GPT-6 Astra's is at the top of the post.&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Right&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-6 Astra high&lt;/td&gt;
&lt;td&gt;86.4%&lt;/td&gt;
&lt;td&gt;$135.13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Argon high&lt;/td&gt;
&lt;td&gt;86.2%&lt;/td&gt;
&lt;td&gt;$26.62&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-6.1 Sol high&lt;/td&gt;
&lt;td&gt;85.7%&lt;/td&gt;
&lt;td&gt;$25.52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Opus 5.5 high&lt;/td&gt;
&lt;td&gt;84.0%&lt;/td&gt;
&lt;td&gt;$7.72&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 3.8 Flash high&lt;/td&gt;
&lt;td&gt;82.1%&lt;/td&gt;
&lt;td&gt;$28.79&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Fable 5.1 high&lt;/td&gt;
&lt;td&gt;81.7%&lt;/td&gt;
&lt;td&gt;$36.58&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jev&lt;/td&gt;
&lt;td&gt;66.7%&lt;/td&gt;
&lt;td&gt;$0.28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI Decisions API&lt;/td&gt;
&lt;td&gt;40.4%&lt;/td&gt;
&lt;td&gt;$0.32&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;San Francisco at a point every 100 m: the share of points right and what the run cost. Chat models at high reasoning; Jev and the Decisions API answer one point at a time.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The good maps have the coastline, Golden Gate Park, the Presidio and Lake Merced in the right place. Small parks are hit and miss - the best park score is 0.45. Every chat model drew its best map at high reasoning. GPT-6 Astra and Gemini 4 Argon gained about 6 points from low to high, and GPT-6.1 Sol got 83% at medium for $4.61.&lt;/p&gt;
&lt;h2&gt;
  
  
  Streets are the weak spot
&lt;/h2&gt;

&lt;p&gt;On the 10 m Marina map all five answers count. GPT-6 Astra, GPT-6.1 Sol, Claude Fable 5.1 and Claude Opus 5.5 put the Palace of Fine Arts lagoon in the right place. Fable, Astra and Sol score 0.19-0.21 on streets here, against 0.11-0.14 if their own answers were shuffled at random. That looks like knowing which parts of the map are dense grid and which are park.&lt;/p&gt;

&lt;p&gt;Claude Opus 5.5 called 3% of the points a street, against 21% in reality, and painted the grid as one big building. That got it the most points right on the map (48.8%) and the lowest street score of any chat model (0.04).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnoezboyhdvsrral8uzgq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnoezboyhdvsrral8uzgq.png" alt="OpenStreetMap of Crissy Field, the Palace of Fine Arts and the Marina at a point every 10 m" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;OpenStreetMap&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F606jx44uakyel41qvrny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F606jx44uakyel41qvrny.png" alt="GPT-6 Astra's map of the area, with the Palace of Fine Arts lagoon in place" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GPT-6 Astra 46%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk7favcvqfvfi5iw01re7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk7favcvqfvfi5iw01re7.png" alt="GPT-6.1 Sol's map of the area" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GPT-6.1 Sol 46%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0439cj0sta6n24edzndu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0439cj0sta6n24edzndu.png" alt="Claude Fable 5.1's map, with the Marina streets drawn as stripes across the whole map" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Claude Fable 5.1 44%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6xwajxftt7qwqffecbe7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6xwajxftt7qwqffecbe7.png" alt="Claude Opus 5.5's map, with the street grid painted as one big building" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Claude Opus 5.5 49%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Forgclriv3p9xkn382e5u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Forgclriv3p9xkn382e5u.png" alt="Gemini 4 Argon's map of the area" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Gemini 4 Argon 44%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu6pnncfpaeqihcj9itrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu6pnncfpaeqihcj9itrc.png" alt="Gemini 3.8 Flash's map of the area" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Gemini 3.8 Flash 36%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb39drr7tuotx4w49z2fz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb39drr7tuotx4w49z2fz.png" alt="Jev's map: almost all water, with a strip of buildings along the bottom" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Jev 29%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq468ncmvslut68vabf8p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq468ncmvslut68vabf8p.png" alt="The Decisions API's map, in bands of water and park" width="760" height="488"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;OpenAI Decisions API 29%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Crissy Field, the Palace of Fine Arts and the Marina at a point every 10 m, medium reasoning, with the share of points right.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To see if more thinking finds single streets, we took one 500 x 500 m block of the Marina grid, 46% buildings and 33% streets. That is 2,500 points in 25 requests of 100, and we asked every model at medium and at high reasoning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F401e1t9xpd7driqrvxdj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F401e1t9xpd7driqrvxdj.png" alt="OpenStreetMap of a 500 x 500 m block of the Marina street grid" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;OpenStreetMap&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff3frm82wv9c7x2010yp4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff3frm82wv9c7x2010yp4.png" alt="GPT-6 Astra's block at medium reasoning" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GPT-6 Astra medium 0.31&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9g976keihgvam03m2k9z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9g976keihgvam03m2k9z.png" alt="GPT-6 Astra's block at high reasoning" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GPT-6 Astra high 0.32&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fugr04z3lyyky7uqv6koe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fugr04z3lyyky7uqv6koe.png" alt="GPT-6.1 Sol's block at medium reasoning" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GPT-6.1 Sol medium 0.27&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8te24y3afhv36fyrumt7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8te24y3afhv36fyrumt7.png" alt="GPT-6.1 Sol's block at high reasoning" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GPT-6.1 Sol high 0.29&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgd9rkhx6m7ur6znmpnnc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgd9rkhx6m7ur6znmpnnc.png" alt="Claude Fable 5.1's block at high reasoning" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Claude Fable 5.1 high 0.25&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxhslgqz9k93exopskq46.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxhslgqz9k93exopskq46.png" alt="Gemini 3.8 Flash's block at high reasoning" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Gemini 3.8 Flash high 0.27&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fet4jjeows7vvalx7b8ru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fet4jjeows7vvalx7b8ru.png" alt="Claude Opus 5.5's block at high reasoning, mostly buildings" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Claude Opus 5.5 high 0.15&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv4mjpsf91k3siub633h9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv4mjpsf91k3siub633h9.png" alt="Gemini 4 Argon's block at high reasoning, almost all no answer" width="600" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Gemini 4 Argon high 8% answered&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One 500 x 500 m block of the Marina at a point every 10 m, with each map's street score.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The best street score was 0.32, from GPT-6 Astra at high, where 1 means every street in the right place. Its own answers shuffled around the block score 0.23. High reasoning added 0.01-0.03 to the street score and cost up to 3.6 times as much. Only Astra and GPT-6.1 Sol beat their shuffled answers, by 0.04-0.09, and that is a thin margin on 25 requests. The other four score about what they would by putting the same number of streets in random places.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Medium → high&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-6 Astra&lt;/td&gt;
&lt;td&gt;0.31 → 0.32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-6.1 Sol&lt;/td&gt;
&lt;td&gt;0.27 → 0.29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 3.8 Flash&lt;/td&gt;
&lt;td&gt;0.25 → 0.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Fable 5.1&lt;/td&gt;
&lt;td&gt;0.22 → 0.25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Opus 5.5&lt;/td&gt;
&lt;td&gt;0.13 → 0.15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 4 Argon&lt;/td&gt;
&lt;td&gt;0.22 → no answer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Street score on the 500 x 500 m Marina block, where 1 means every street in the right place.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So the best models know San Francisco like a tourist with a good memory. They get the coastline and the big parks, and they get the street grid wrong.&lt;/p&gt;
&lt;h2&gt;
  
  
  Two multiple-choice APIs
&lt;/h2&gt;

&lt;p&gt;Jev and OpenAI’s Decisions API, which runs GPT-6 Luna, both answer a multiple-choice question with a probability for each choice. That seemed a natural fit for “which of these five is it?”, so we asked them one point at a time. The chat models got 100 points per request.&lt;/p&gt;

&lt;p&gt;On the city map Jev drew a box, with water around the edge and everything else inside, and got 66.7%, above the 61% for “not water, not park” everywhere. The Decisions API called 53% of the city a park and got 40.4%.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnqfwunl2274vlmj85c6o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnqfwunl2274vlmj85c6o.png" alt="OpenStreetMap of San Francisco at a point every 100 m: water, parks and everything else" width="695" height="570"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;OpenStreetMap&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3vuyxu92ktmty23g5bxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3vuyxu92ktmty23g5bxq.png" alt="Jev's San Francisco: water around the edge, everything else inside, no parks" width="695" height="570"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Jev 67%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fboxetpdeqjqrfvtwzp5j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fboxetpdeqjqrfvtwzp5j.png" alt="The Decisions API's San Francisco, with parks across much of the city" width="695" height="570"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;OpenAI Decisions API 40%&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;San Francisco at a point every 100 m, with the share of points each one got right.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;On the 10 m Marina map both got about 29% right. 84% of Jev’s answers there were water, and the Decisions API’s were split between water and park. Neither was sure: the answer each one picked got 37% (Jev) and 41% (Decisions API) on average, against 20% for a blind guess, and both were as sure of their wrong answers as of their right ones.&lt;/p&gt;
&lt;h2&gt;
  
  
  What broke
&lt;/h2&gt;

&lt;p&gt;Gemini 4 Argon at high reasoning thinks itself out of room. Its output limit is 32,768 tokens, thinking included. On the city map it thinks for about 15,000 tokens per request, and 4 of 159 requests came back empty. All 4 answered on a second try, and Argon reached the top only after that.&lt;/p&gt;

&lt;p&gt;On the dense Marina block, 23 of 25 requests came back empty, and 24 retries in a row failed. There it thinks for about 30,000 tokens even when we send it only 10 points, so 10-point requests just fit. Redoing the block that way would have cost about $75, so we left the hole. One of the joint best models on the city map is the least reliable one.&lt;/p&gt;

&lt;p&gt;OpenAI’s Batch API stalled on 5 of 8 batches for about an hour, and GPT-6.1 Sol at high can think for up to half an hour per request. We finished those through the regular API and OpenAI’s background mode. Apart from Argon high on the block, every run answered 100% of its points.&lt;/p&gt;
&lt;h2&gt;
  
  
  How precise is this?
&lt;/h2&gt;

&lt;p&gt;We ran GPT-6.1 Sol medium and Gemini 4 Argon low on the city map a second time. 12% and 11% of points changed, but the scores moved by less than half a point: 83.4% to 83.7%, and 80.1% to 79.7%.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Honest caveat - treat models within a point of each other on the city map as tied. On the small block the ranges are about ±3 points. OpenStreetMap is the answer key, so its mistakes count against the models. Different wording, points in order instead of shuffled, or fewer points per request would change the numbers. We did not tune the setup on the scores.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Run it yourself
&lt;/h2&gt;

&lt;p&gt;The code, every answer and the answer keys are open at &lt;a href="https://github.com/voygr-tech/sf-from-memory" rel="noopener noreferrer"&gt;github.com/voygr-tech/sf-from-memory&lt;/a&gt;. Three commands rebuild the scores, costs and figures without an API key. This started as a quick question and got out of hand.&lt;/p&gt;
&lt;h2&gt;
  
  
  If your AI agent needs real places
&lt;/h2&gt;

&lt;p&gt;If you need reverse geocoding, use a geocoder, not a model’s memory. At a point every 10 m, the best model got under half of the Marina right (Claude Opus 5.5, 48.8% at medium reasoning), and none of them drew its streets.&lt;/p&gt;

&lt;p&gt;This test asked about the ground, not about businesses. We read the result as a picture of what a model’s memory is good for: the big shapes, not the detail. Whether the café on a given corner is still open, and when, is detail. We would have an agent look that up rather than remember it.&lt;/p&gt;

&lt;p&gt;We are VOYGR. We build APIs that tell AI agents which places exist, whether they are open and what they offer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Validate a business&lt;/strong&gt;: Send a name and address, get back how strong the evidence is that the business exists at that location&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enrich a place&lt;/strong&gt;: &lt;code&gt;open_closed&lt;/code&gt;, opening hours, contacts, menus, prices, and custom attributes you describe in plain English&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch jobs&lt;/strong&gt;: Up to 10,000 places at a time, for checking a whole list&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PlaceCall&lt;/strong&gt;: Send a US phone number and a plain-language task, and an AI voice agent places the real call and returns a structured result&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One request asks whether a place is open, when, and how to reach it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "poi_name": "Example Bakery",
  "address": "123 Example Street",
  "country": "US",
  "attributes": ["open_closed", "opening_hours", "phone"]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you are an agent, start at &lt;a href="https://api.voygr.tech/llms.txt" rel="noopener noreferrer"&gt;api.voygr.tech/llms.txt&lt;/a&gt; or the &lt;a href="https://api.voygr.tech/openapi.json" rel="noopener noreferrer"&gt;OpenAPI spec&lt;/a&gt;. In Claude Code, run &lt;code&gt;/plugin marketplace add voygr-tech/placecall&lt;/code&gt;, then &lt;code&gt;/plugin install placecall@placecall&lt;/code&gt;, then &lt;code&gt;/mcp&lt;/code&gt;, pick PlaceCall and sign in. The &lt;a href="https://voygr.tech/placecall/" rel="noopener noreferrer"&gt;PlaceCall page&lt;/a&gt; has the other setups.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api.voygr.tech/checkout" rel="noopener noreferrer"&gt;Get a free API key&lt;/a&gt; · &lt;a href="https://api.voygr.tech/docs" rel="noopener noreferrer"&gt;Read the API docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have tested AI on real places before: our &lt;a href="https://voygr.tech/report/" rel="noopener noreferrer"&gt;LLM local search benchmark&lt;/a&gt; ran 2,415 evaluations of local search answers, with every recommended place checked against Google Search and Maps, and our &lt;a href="https://voygr.tech/blog/does-sf-talk-to-ai/" rel="noopener noreferrer"&gt;SF Tech Week study&lt;/a&gt; had an AI talk to 848 San Francisco businesses by phone.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Which AI model knows San Francisco best?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In our test, Gemini 4 Argon, GPT-6.1 Sol and GPT-6 Astra tie at 86% of points right on a map of San Francisco with a point every 100 m, scored as water, park or everything else, all at high reasoning. Answering 'not water, not park' everywhere gets 61%. Astra's run cost $135, the other two about $26 each.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can AI models draw a city map from memory?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Roughly. The best models put the coastline, Golden Gate Park, the Presidio and Lake Merced in the right place, but none drew the Marina street grid. On a 500 x 500 m block the best street score was 0.32, from GPT-6 Astra, where its own answers shuffled at random score 0.23.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does more reasoning help AI models with maps?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On the city map, yes: every chat model drew its best map at high reasoning, and GPT-6 Astra and Gemini 4 Argon gained about 6 points from low to high. On the Marina block, high reasoning added only 0.01-0.03 to the street score and cost up to 3.6 times as much.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can an LLM do reverse geocoding from memory?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Only roughly. We gave six AI chat models San Francisco coordinates and asked what is at each one, from memory. At a point every 100 m the best three got 86% right on water, park or everything else, against 61% for a trivial answer. At a point every 10 m in the Marina, at medium reasoning, the best got 48.8% across water, park, building, street and other, and none drew the street grid. We did not test forward geocoding, from an address to a coordinate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Should an AI agent answer questions about places from memory?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Our test covered what is at a point on the map, not businesses. There, the best models got the big picture right and the detail wrong. For facts about a specific place, such as whether a business is still open, we would have the agent look them up. VOYGR's APIs tell AI agents which places exist, whether they are open and what they offer; agents can start at &lt;a href="https://api.voygr.tech/llms.txt" rel="noopener noreferrer"&gt;https://api.voygr.tech/llms.txt&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>maps</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>Is Google Maps accurate for closed businesses? We checked 400 places</title>
      <dc:creator>VOYGR</dc:creator>
      <pubDate>Fri, 06 Nov 2026 05:07:04 +0000</pubDate>
      <link>https://dev.to/voygr/is-google-maps-accurate-for-closed-businesses-we-checked-400-places-50k2</link>
      <guid>https://dev.to/voygr/is-google-maps-accurate-for-closed-businesses-we-checked-400-places-50k2</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://voygr.tech/blog/is-google-maps-accurate-for-closed-businesses/" rel="noopener noreferrer"&gt;voygr.tech&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Short answer - not always. Google Maps is probably the best map out there, but it is still far from ground truth for whether a business is open. So we checked it properly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;400&lt;/strong&gt; US places tested&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;93&lt;/strong&gt; marked closed by VOYGR&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;23 : 3&lt;/strong&gt; disputed closures, verified in our favor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;27%&lt;/strong&gt; of the 86 closures still open or missing on Google Maps&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How we tested
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Took 400 random US places from &lt;a href="https://overturemaps.org/" rel="noopener noreferrer"&gt;Overture Maps&lt;/a&gt;, the open map dataset.&lt;/li&gt;
&lt;li&gt;Ran them through the &lt;a href="https://api.voygr.tech/docs/guides/enrich-business/" rel="noopener noreferrer"&gt;VOYGR Enrich API&lt;/a&gt;, asking for &lt;code&gt;open_closed&lt;/code&gt; and &lt;code&gt;existence&lt;/code&gt; - whether each business is still operating at its address. It marked 93 as closed.&lt;/li&gt;
&lt;li&gt;Looked up how each of the 93 appeared in its public Google Maps listing (August 2026).&lt;/li&gt;
&lt;li&gt;Where the listing disagreed with us, verified each place by hand with independent sources - the business’s own website, registries, obituaries, relocation notices - and, where needed, a call to the listed number with &lt;a href="https://voygr.tech/placecall/" rel="noopener noreferrer"&gt;PlaceCall&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What Google Maps showed for our 93 closures
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Google Maps listing&lt;/th&gt;
&lt;th&gt;Places&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Permanently closed&lt;/td&gt;
&lt;td&gt;57&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Temporarily closed&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open&lt;/td&gt;
&lt;td&gt;29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No listing found&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So the listing agreed with us on 63 places and disagreed on 30.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who was right on the 30 disputes
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;After verification&lt;/th&gt;
&lt;th&gt;Places&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Really closed&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Actually open - we were wrong&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Could not confirm either way&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;17 closures were confirmed by independent sources and 6 by phone - a person confirmed it, or the number was disconnected. Phone lines alone can mislead: one closed restaurant chain still answers “for store hours, please press one” weeks after announcing on its own website that every location had closed.&lt;/p&gt;

&lt;p&gt;Across all 93 places we marked closed: &lt;strong&gt;86 closed (92%) - 63 where the Google Maps listing agreed with us, plus 23 we verified independently - 3 wrong and 4 unresolved.&lt;/strong&gt; So 23 of those 86 closures still showed as open or missing on Google Maps.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Honest caveat - this test checks the closures we flagged. We did not separately re-check the 63 closures where the Google Maps listing agreed with us, and we did not measure closures we missed among the other 307 places, so it is not a full accuracy score. Google Maps listings change over time; the statuses above are what the listings showed when we checked in August 2026.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  VOYGR Enrich API
&lt;/h2&gt;

&lt;p&gt;The API behind step 2. Business status is one of many fields it returns for each place you send:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open or closed&lt;/strong&gt;: &lt;code&gt;open_closed&lt;/code&gt; returns open, closed, unknown or not_exists, and &lt;code&gt;existence&lt;/code&gt; scores whether the place is real&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom attributes&lt;/strong&gt;: Describe any field in plain English and pick a type - bool, enum, string or number&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contacts and socials&lt;/strong&gt;: Phone, email, website, Facebook, Instagram and TikTok&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Opening hours&lt;/strong&gt;: Current hours, researched from the web&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Owners and key people&lt;/strong&gt;: Names and roles, with optional contact details&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence and freshness&lt;/strong&gt;: Every answer comes with a confidence and an &lt;code&gt;as_of&lt;/code&gt; date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Standard and custom attributes in one request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"poi_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Example Bakery"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"address"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"123 Example Street"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"country"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"US"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"attributes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"open_closed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"opening_hours"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"phone"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"outdoor_seating"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Does the place have outdoor seating?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"value_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bool"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://api.voygr.tech/checkout" rel="noopener noreferrer"&gt;Get a free API key&lt;/a&gt; · &lt;a href="https://api.voygr.tech/docs/guides/enrich-business/" rel="noopener noreferrer"&gt;Read the Enrich API docs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PlaceCall
&lt;/h2&gt;

&lt;p&gt;The API behind step 4. It gives your app or AI agent a phone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real phone calls&lt;/strong&gt;: Send a US phone number and a plain-language task, and an AI voice agent places the call&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Menus and hold&lt;/strong&gt;: The agent works through phone trees and waits on hold for you&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured result&lt;/strong&gt;: Every call returns an outcome summary, the full transcript and a recording&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mid-call questions&lt;/strong&gt;: When the agent needs a decision, it asks you through a stream or a webhook&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live status&lt;/strong&gt;: Track each call as it moves from queued to dialing, in progress and completed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay for results&lt;/strong&gt;: Calls that fail or never reach a real conversation cost nothing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One request places a real call:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"target_phone"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"+15551234567"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"brief"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ask whether the store is still open and what time it closes today."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"en"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://voygr.tech/placecall/" rel="noopener noreferrer"&gt;Try PlaceCall&lt;/a&gt; · &lt;a href="https://api.voygr.tech/docs/guides/place-a-call/" rel="noopener noreferrer"&gt;Read the PlaceCall docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keys are free to start, so try both on your own list - we would love to hear what you find. And if you are curious how AI assistants handle closed places, our &lt;a href="https://voygr.tech/report/" rel="noopener noreferrer"&gt;LLM local search benchmark&lt;/a&gt; found all seven model configurations giving booking advice for a Buenos Aires restaurant that had already closed.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Why do closed businesses still show as open on Google Maps?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Closures are easy to miss, because the signals around a closed business can keep looking alive. In our test, one closed chain's phone line still answered with its usual menu weeks after the company announced on its own website that every location had closed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you check if a business is permanently closed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look for independent evidence: a closure notice on the business's own website, a registry or obituary record, a relocation notice, or a disconnected phone line. When the evidence conflicts, call the business. To do this at scale, the VOYGR Enrich API returns an open_closed status (open, closed, unknown or not_exists) for each place you send.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can the Enrich API check thousands of places at once?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. The VOYGR Enrich API takes batch jobs of up to 10,000 places at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which phone numbers can PlaceCall call?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PlaceCall calls US phone numbers. It does not call businesses located in Indiana, Louisiana, Minnesota, Montana or Nebraska, whatever number they list, and it refuses numbers with those states' area codes. English works best, and twelve other languages are supported on a best-effort basis.&lt;/p&gt;

</description>
      <category>maps</category>
      <category>data</category>
      <category>api</category>
      <category>research</category>
    </item>
  </channel>
</rss>
