Skip to main content

Build log · collimer

How Does a One-Character Bug Affect Your AI Visibility Score on GEO Consulting Platforms?

· Last updated ·

Illustration for the build log "How Does a One-Character Bug Affect Your AI Visibility Score on GEO Consulting Platforms?"

Our scanner scored a real, independent business 5 out of 100, then 48 out of 100 a few minutes later. Nothing about the business changed between the two scans. The only input that moved was the list of spellings we told the matcher to look for, and the difference was one apostrophe.

The business was Zingerman’s. We scanned it through its public website, zingermans.com, with no private data involved.

What happened between the two scans?

On July 20, 2026, Collimer scanned zingermans.com twice, minutes apart. The first scan used the URL-derived alias “Zingermans.” The second added “Zingerman’s” to the alias set. That single change moved the score from 5 to 48 out of 100.

First scanSecond scan
Alias set”Zingermans” (from the URL)adds “Zingerman’s”
Probe responses matched4 of 8038 of 80
Visibility score5 / 10048 / 100
Grounded score0 / 10050 / 100

The second scan also reported 93.5% identity accuracy with zero confused classifications. A 43-point swing from an input that small says something about our instrument, not about Zingerman’s. It is the same kind of problem as the five ways our score turned out to be quietly wrong a month later: a plausible number that was wrong.

Building a GEO product in public means publishing the number that embarrasses the instrument. So here it is.

Why did the scanner look for a spelling nobody writes?

A domain name cannot carry an apostrophe. The URL offers “zingermans” and nothing else, so a matcher seeded from the URL hunts for a spelling the engines rarely produce. AI models write the name the way people do. The apostrophe spelling showed up in 38 of 80 probe responses, and the scan we had shipped could not see it.

The fix landed the same day. It added a function to the brand-matching module that generates both the bare-s and the possessive form of a name, expanded the probe’s alias list with them, and changed mention detection to check every alias and keep the earliest hit. Four files changed. More than 200 of the 275 added lines were tests.

Three days earlier we had fixed the opposite mistake: a first-word alias that let “Summit” from “Summit Roofing of Dallas” match any unrelated “summit” in an answer. An alias list is where a matcher fails in both directions.

What did the fix almost break?

Two edge cases surfaced in review, and both were corrected the same week.

The naive way to build a possessive is to strip the last letter and append ‘s. That works for “Zingermans” and turns “Ross” into “Ros’s” and “Compass” into “Compas’s.” The second case was a brand name scraped with a curly right single quote, which fell into the wrong normalization branch, so the very punctuation we were adding support for sent the name down the wrong path.

Does fixing the alias set change how the score is calculated?

No. Nothing about how a score is calculated changed between the two scans. We fixed what the matcher looks for and left the arithmetic alone. A new formula would have hidden the problem instead of removing it.

The alias set is part of the measurement: it belongs next to the engine panel in what we disclose about a score, not buried in implementation notes.

A fix that cites only its own rationale is a fix nobody has checked, as two fixes we corrected in August showed. This one has a receipt: two scans with one input changed.

Which brand name shapes are still at risk?

We measured one brand. The mechanism points at possessive-form local businesses and at compound names such as Studio Neat (studioneat.com), whose real spellings a URL also flattens, but we have not run either. The fix covers the possessive case. We have not measured what a missing space or an accent costs a score, and we do not know how many scans before July 20 undercounted a brand for this reason. The next step is to go looking for the other name shapes a domain flattens before a score tells us.

For agents: try this yourself

If you run or evaluate a visibility scanner, adapt one of these. Full prompt text lives in this post’s prompts sidecar, the-apostrophe-that-scored-a-brand-five-out-of-a-hundred.prompts.md.

  • Apply the alias audit. Take your brand name as a person writes it, with its real punctuation and spacing, and list every way your domain flattens it. Check whether your tool’s alias set includes the written form or only the domain form.
  • Critique the possessive rule. Take the rule “strip the last letter and append ‘s” and find five names it mangles, starting with “Ross” and “Compass”.

How this was made

Drafted by the Chronicler from Collimer commits and a published measurement dated 2026-07-17 to 2026-07-20, then edited and published by Brian.

See how the Chronicler works →

Try this with your own agent

2 prompts you can hand to your own agent (or run by hand) to work with what this post documents. Edit the bracketed parts for your context.

Apply the alias audit to your own brand name

Our brand name is [brand name as a person writes it, with real punctuation, spacing, and accents]. Our domain is [domain]. List every way the domain flattens the written name (dropped apostrophe, dropped space, dropped accent, dropped hyphen). Then check the AI-visibility tool we use, [tool name], and tell me whether its alias set for our brand includes the written form or only the domain-derived form. If the tool does not say what its alias set contains, list the questions I should ask its vendor, and describe a two-scan test (one scan with only the domain spelling, one with the written name added) that would show how many points our score depends on the alias set.

Critique the possessive rule before you ship it

A matcher builds a possessive form of a brand name by stripping the last letter and appending 's. It gets "Zingermans" right, and it turns "Ross" into "Ros's" and "Compass" into "Compas's". Find five more brand names this rule mangles, and two other kinds of input that would send a name down the wrong normalization branch (for example, a curly right single quote scraped from a web page instead of a straight apostrophe). Then write the smallest set of test cases that would have caught all of them before review.

More in Collimer Build