Open data
Our ChatGPT readings, every row
201 readings of the logged-in ChatGPT app, taken between 27 August 2026 and 13 September 2026, across 44 trades and 3 metros, with the businesses each answer listed and the domains it cited. Most of the figures on our trade and research pages are computed from these rows. Take them and check us.
Not every figure on this site comes from them. Some research pages are built on Google search results, on a commercial corpus of AI answers or on our own server logs, and each of those pages names its source.
What a row is
One reading: one question, put once to the assistant, with what came back. 890 listed business names and 184 cited domains in all. Source files: vertical_raw.jsonl (45), raw_observations.jsonl (37), vertical_wave2_raw.jsonl (119).
reading_id | Stable id for one reading: the source file, the observation and the run number. |
|---|---|
asked_at | When the question was put, ISO 8601 UTC. The timestamp is the point of the file: every stability figure we publish is a difference between two of these. |
question | The question as it was typed, verbatim. |
trade | Which of the 46 trades the question belongs to, where the run plan records one. Empty for the calibration readings, which have no trade. |
metro | The metro the run was tagged with. Two of our source files wrote Austin two ways (Austin and Austin, TX); both are published as Austin, TX. On one reading of 201 the question names a different place (a Long Island question tagged Austin; found on 2026-09-20); the next field says which. |
metro_in_question | Whether the tagged metro's city actually appears in the question text. |
assistant | The app, always the logged-in ChatGPT app on a free account. |
model | The model tier the app reported for that reading. It drifts, and a comparison across two tiers is a comparison of two instruments. |
web_search_used | Whether the answer ran a web search. Empty where the capture did not record it. |
listed_names | The businesses the answer listed, in the order it listed them. Cleaned the same way every figure on the site is cleaned: an entry that is the assistant's own lead sentence or its interface is not a business (2026-09-20). |
n_listed | How many, for convenience. |
cited_domains | The domains the answer cited, with the class each was given by hand in cite_domain_types.json: biz, dir, body, media, community, plat, other. A domain nobody has classified carries an empty class rather than a guessed one. |
answer_sha256 | SHA-256 of the stored answer text. The answer itself is not published; this ties a row to it. |
What is deliberately not in it
Nothing typed into the form on this site: no business names, no email addresses, no scan requests. Nothing from Google Maps at card level. Not the verbatim answer text either, at least for now, which is why every row carries a hash of it instead.
And one field the design asked for is missing on purpose. Some answers name a business in a sentence without putting it in the list. We can extract those, but the extractor has never been checked against a hand count, and a file whose only value is that it can be checked is the worst place to ship a field we are unsure of. It goes in when it has been measured.
How to read it honestly
One reading is one draw, not a position. Asked the same question ten minutes apart, this assistant returned lists with no names in common at all, which is our own finding: the same question, 10 minutes apart. Two readings served by different model tiers are two instruments, and the tier is on every row so you can keep them apart. And the list is rebuilt for the place the question is asked from: the answer changes with the place you ask from.
License
CC BY 4.0. Use it, quote it, republish it; say where it came from. Attribution to copy: AI Choosing You, readings dataset, CC BY 4.0, https://aichoosingyou.com/data/
The files are regenerated by the build from the same raw readings the trade pages are computed from, and a gate fails the build if they ever disagree with what the pages say.