Specification v1 · 2026-09-09 · measured on gpt-5-6 · corpus of 82 recorded answers, 186 fan-out searches
The ASS score is a per-recording measurement of a business’s standing in one ChatGPT answer, decomposed along the three routes by which recommended entities were observed to enter delivered answers: Authority (parametric prior), Sources (retrieval and entity channels), and Specificity (first-party satisfaction of the fan-out’s query intents). It is computed from captured transport, not from a rendered page and not from an API surrogate.
A single buyer-intent prompt is submitted in a fresh conversation on an authenticated consumer session. Two artefacts are recorded: the server-sent event stream of the answer and the persisted conversation record fetched after the stream closes. The persisted record carries the tool-call nodes (recipients web and web.run), the search result groups, and the entity references; the stream carries ordering. Captures are paced at a minimum ninety-second interval, one prompt per conversation, and a conversation with more than one user turn is flagged as contaminated and excluded.
An integrity gate runs before any analysis: stream and persisted record must both be present, agree on conversation identity, and pass the user-turn check. A recording that fails the gate is listed in the report as excluded and contributes nothing to the score.
Before answering, the model emits pipe-delimited tool-call lines. Six call types are decoded by grammar:
| Line | Channel | Fields |
|---|---|---|
business | location | phrases | entities | Local business records (entity channel) | Location, category phrases, and the entities the model pre-names |
product | query ; entities | Product records | Query and pre-named products |
fast | query | freshness | domain | Web search | Query, optional freshness window in days, optional site scope |
slow | query | freshness | domain | Deep web search | As above |
image | query | Image search | Query |
search("...") | Top-level web search | The query the rest of the fan-out hangs off |
Each decoded query is tagged for intent by pattern: year_qualified, pricing, official_lookup, reviews, awards (credential language), availability, near_me, rankings, comparison, site_scoped, and platform_named. Site scopes are split into own-brand and third-party. Words the query added beyond the user’s prompt are recorded as addenda whether or not a tag matched them, so an untagged signal is visible rather than lost.
Every brand named in the delivered answer is attributed to one path, resolved in the order events occurred:
Across the current corpus the distribution is prior 29.8%, places 37.0%, web 3.5%, unattributed 29.6%. These are the shares quoted beside each pillar on the front page and they are recomputed on every capture.
100 if the business is named in the delivered answer. 60 if it is pre-seeded into a fan-out query but not named. 0 otherwise. Name matching is word-bounded and case-insensitive against the answer text with citation markers resolved to their display names.
Scored only over channels the recording used. When the entity channel was pulled: presence in the records 50, presence in the retrieval pool (title or snippet of an opened page) 30, presence on a named or opened directory or review platform 20. When no entity channel was pulled the 50 is redistributed 60/40 across the remaining two. When nothing was retrieved at all the pillar is not measured.
The set of intents asked is the subset of fan-out tags with a first-party check: pricing, year, official, credentials, reviews, hours, service area. The business’s site is read (home page plus up to four internal pages it links to, preferring pages whose path suggests pricing, about, contact, reviews, services, areas or accreditation), and each asked intent is tested against the plain text of those pages. Score is passes over asked, as a percentage. If the fan-out carried no checkable intent, the four most common corpus intents stand in (year, pricing, official, reviews) and the report says so. If the home page cannot be fetched the pillar is not measured.
| Intent | First-party check |
|---|---|
| pricing | A currency-denominated figure, or “from” plus a figure |
| year | The current calendar year in page text |
| official | One page carrying who (about), how to reach (contact) and what (services) together |
| credentials | Licence, accreditation, certification, insurance, membership or a named trade body |
| reviews | A reviews or testimonials surface, or a stated rating |
| hours | Opening hours, 24/7, same-day, or a day-range with times |
| service area | An explicit coverage statement |
Overall = arithmetic mean of the measured pillars, rounded to an integer. Unmeasured pillars are excluded from the denominator. Bands: 70–100 In the running, 35–69 Known, not chosen, 0–34 Not in the picture. Every score is reported with its recording identifier, model build, locale and timezone, so it can be reproduced or challenged.
The capture engine, grammar, analyzers and public corpus are the ones behind llmjesus.com, where the corpus figures are published with their sample sizes and re-measured on every capture. ASSmetric is a Serpply Ltd product and is not affiliated with OpenAI or Google.
← Get your ASS score