The method
The model
GPT-6 Luna, the model ChatGPT Free uses, asked through OpenAI's own API. We never scrape the ChatGPT app, which OpenAI's terms forbid.
Web search on
The model searches the web before it answers, as the app does for questions like these.
Your city
The search location is set to the city (Atlanta, Georgia in the sample), and the city is in the question.
Repeated
Each question is asked 4 times. Answer lists almost never repeat exactly, but how often a firm is named holds steady, so we count.
Counted
A firm counts when an answer names it, names one of its attorneys in a way the answer ties to the firm, or cites its website. Attorneys we cannot tie to a firm are listed by name.
With a range
Every count comes with the range it could plausibly move in if the test were repeated (a 95% Wilson interval).
Kept
Every answer and every cited source is stored word for word, so any number on a page can be checked.
Checked by hand
Before we write to a firm, we ask three of the questions in a logged-out ChatGPT window from the city. If the app names a firm our count missed, we do not send that firm a zero.
The questions in the Atlanta sample


- “best divorce lawyer in Atlanta”
- “divorce lawyer in Atlanta”
- “who is a good divorce attorney in Atlanta?”
- “affordable divorce lawyer in Atlanta”
- “family law attorney in Atlanta”
- “child custody lawyer in Atlanta”
- “I need a lawyer for a contested divorce in Atlanta. Who should I call?”
- “top rated family law firms in Atlanta”
What it cannot tell you
The ChatGPT app also shows map cards and uses your location, history and account. Our API answers do not include those map cards, so a single check on your phone can name a firm our count does not, or the other way round. That is why we repeat the questions, publish the range and check by hand before writing to anyone.
A count describes one test on one date. It is not a ranking of law firms, and nobody can promise how an AI assistant will answer in future.

