Fourteen line items, a hundred points, and a real run scored against them — including the seventy points that came out blank.
A GEO audit scores whether AI assistants can reach your site, identify your business correctly, and find a reason to quote it — and this is the entire scoring sheet we use, published, with no form in front of it. 14 line items across 5 dimensions add up to 100 points: 30 computed from the answers themselves, 20 probed against your site, and 50 from intake answers you supply — because nothing can determine your review recency or your Google Business Profile completeness by guessing. Each row below also carries the question you would ask to score it yourself, which is the free version of this page.
| Line item | Points | Where the number comes from | How to check it yourself |
|---|---|---|---|
| AI visibility baseline — 30 points | |||
| Mention rate | 15 | computed from the answer run | Ask ten discovery questions with no business name in them. In how many answers are you named? |
| Average position | 8 | computed from the answer run | When you are named in a list, what position do you sit at? |
| Citation rate | 7 | computed from the answer run | How many answers link to your own domain? |
| Entity foundations — 20 points | |||
| NAP consistency | 8 | from intake answers you supply | Compare name, address and phone on your site, Google, Yelp and Apple Maps character by character. |
| Google Business Profile completeness | 8 | from intake answers you supply | Categories, services, hours, ten or more photos, three or more Q&A entries, attributes, description — which are missing? |
| Entity disambiguation | 4 | from intake answers you supply | Read every brand-question answer against the truth. Is anything wrong, and is any of it about somebody else? |
| Technical reachability — 15 points | |||
| AI crawler reachability | 6 | probed against your site | curl your home page with each AI search crawler’s user agent. Any status that is not 200 is a hard gate. |
| Server-rendered key facts | 5 | probed against your site | curl your page and grep the raw HTML for your prices, hours, services, phone and address. Missing means invisible. |
| Structured data | 4 | probed against your site | Does your structured data exist, and is it filled with real values rather than an empty template? |
| Off-site citation assets — 25 points | |||
| Third-party listing coverage | 10 | from intake answers you supply | Take the domains the assistants cited in your category. Are you listed on them? |
| Review quality and recency | 8 | from intake answers you supply | How many reviews, how recent, and are you replying to them? |
| Community mentions | 7 | from intake answers you supply | Does your business appear anywhere people discuss it — forums, local groups, community threads? |
| Content freshness & structure — 10 points | |||
| Update cadence | 5 | probed against your site | When did your key pages last change in a way that mattered? |
| Answer-first page structure | 5 | from intake answers you supply | Does each key page answer its question in the first paragraph, or after four scrolls? |
Rendered from geo_radar/audit.py when this page is
built, so the sheet on this page is the sheet the tool runs.
A visibility score with hidden weights is not a measurement, it is a persuasion device: you cannot tell whether it moved because your site improved or because the vendor reweighted something. Ours is above, and every sub-score in a delivered report carries the evidence it was derived from — a line in the archive, a probe result, or the intake answer you gave.
The same applies to the numbers inside a score. Our own mention rate started out overcounting, because a name match is not an identification — the whole story is in the number our own tool got wrong first, including the transcript that gave it away.
The pipeline has been run end to end once, on 15 August 2026, against a test business in Seattle: 12 questions on two assistants, 24 answers, no failed calls. The site probes were not run and the intake was never filled in, so the only line items that got a score are the 30 points that come from the answers themselves:
| Line item | Score | Detail, as the tool wrote it |
|---|---|---|
| Mention rate | 0 / 15 | 0.0% (0 of 24 valid answers); a further 8 answers were about a similarly-named business and were not counted |
| Average position | 0.0 / 8 | never mentioned — no position to record |
| Citation rate | 0 / 7 | 0.0% |
70 of the 100 points were never scored on that run — the intake questionnaire was not filled in and the site probes were not run — so the sample has no total, and this page does not print one. A partial score dressed up as a grade would say “we did not finish” in the shape of your result.
Two other things the sample shows, and they are both worth seeing before you buy anything: with a single sample per question, the share-of-voice table read 100% for a competitor that was mentioned exactly once — that is what n=1 looks like — and the 8 answers counted out of the mention rate in the table above were about a similarly-named business in another country. Both are in the redacted sample; no real competing business is named on this site.
If you want the same thing run on your business rather than a sample, the audit page has the price and the turnaround, and there is a free check before any of it. If you would rather start by asking the questions yourself, the question pack builder writes the set for you.
A scored check of whether AI assistants can reach your site, tell your business apart from similarly-named ones, and find something worth quoting. Ours scores 14 line items across 5 dimensions for 100 points, and the whole sheet is on this page.
Yes. Every row of the rubric above carries the question you would ask to score it. The items you cannot answer alone are the run-based ones, which need the questions actually asked in the assistants.
Because the run it came from was. The intake questionnaire was not filled in and the site probes were not run, so 70 of the 100 points have no score. Publishing it that way is the point: a partial score presented as a grade would be reporting our own gap as your result.
The weights are published and every sub-score names the evidence it came from. A score whose weights you cannot see cannot be argued with, and cannot tell you which change moved it.
No. The delivered report names the real competitors in your market because you need them; nothing published on this site does.
geo_radar/audit.py and the score.json it produced on 15 August 2026: 14 sub-scores, their point caps, and the source of each. Both tables above are rendered from those files at build time.