Skip to content
AI Vision - Public audit

The Shelbourne through AI eyes: 82/100

We scanned theshelbourne.com with Baseline's AI Vision audit on 30 July 2026. It came back 82 out of 100: nineteen checks passed, three warned, none failed. Good results are harder to write about than broken ones, because the question stops being what went wrong. It becomes what the 82 measured, what it never measured, and what it cannot see at all.

George, the Baseline Labs mascot, holding gold stars

Two scores, one hotel, twenty points apart

Scan #65 gave theshelbourne.com an overall 82. Across ten modules it produced 19 passes, 3 warnings, 0 failures and 5 informational notes. The same week, a different Baseline audit of the same domain came back at 62 out of 100. The two audits ask different questions, and a score only means something relative to the thing it measured.

82
AI Vision score, out of 100
0
Failed checks across 10 modules
62
Same domain, same week, our other audit

Nobody hired us for this

The Shelbourne is not a Baseline customer. There is no relationship, no brief and no NDA. We picked a well-known Irish site, ran the standard scan, and are publishing what came back. Everything the scan touched is public: the pages, the robots file, the sitemap, the JSON-LD in the page source. Anyone with a browser and twenty minutes can fetch what we fetched. The run was 30 July 2026, standard depth, 50 pages crawled, ten modules, with Claude and ChatGPT queried directly as part of the perception checks. We re-fetched the homepage and the llms.txt file on 3 August; both were unchanged in the details this piece rests on.

What an AI-legible site looks like

Seven of the ten modules scored 100. Six of them earned it. Bot access is open: GPTBot, PerplexityBot, ClaudeBot, anthropic-ai, CCBot and Applebot are all allowed in robots.txt, with no quiet blocks and no noindex anywhere. There is an llms.txt file at the root, 6,841 bytes of prose written for machines. Every one of the 50 crawled pages carries structured data, across seven distinct schema types. Article or BlogPosting markup appears on 35 pages, and all 35 carry both an author and a dateModified. BreadcrumbList is present on all 48 non-homepage pages. The sitemap is present and fresh. Both language models recognised the domain. The seventh module that scored 100 is dealt with below.

Where the 18 points went

Each module scores as passes divided by passes plus warnings plus failures, times 100. Each module carries a weight. Three modules lost points, and the sum is exact:

  • Competitive positioning scored 0.0 at weight 0.100. Lost: 10.00 points.
  • Entity authority scored 66.7 at weight 0.160. Lost: 5.33 points.
  • Content clarity scored 50.0 at weight 0.056. Lost: 2.80 points.

10.00 + 5.33 + 2.80 = 18.13. That leaves 81.87, which rounds to 82. Behind the numbers sit three warnings. The first is entity resolution: two different @id values appear across the Organization and Person blocks, one a hashed person URI and one a plain #organization anchor. Use the same @id URI on every page and an assistant stitching the site together gets one entity instead of two. The second is content clarity: three duplicated meta descriptions spread across eight pages, including a weddings-and-events line repeated four times. The third warning is ours.

Ten of the 18 lost points came from our scanner

Competitive positioning scored zero because all ten positioning queries failed or timed out. The evidence field reads {"n": 10, "errors": 10}. Not one query returned. The hotel did nothing to earn that, and it is the single largest deduction on the report. The module carries an informational note explaining its method, and it matters before anyone treats the number as gospel: positioning checks use single-shot API calls against each engine's training knowledge rather than live consumer sessions.

There is an error in the other direction too. Citation quality is weighted 0.100 and scored 100, and it measured nothing at all. Its own info finding says so: the check requires Perplexity or AI Mode to be enabled, neither was configured for this template, so it was skipped. A skipped module scores full marks by default. That handed the site a clean ten points nobody looked at.

So one broken module took ten points away and one unrun module gave ten points back. They roughly cancel, which is luck rather than design. The reason to print both is simple: a score that hides its own gaps is selling a certainty it does not have. If we only told you about the module that failed, you would think the site was worth 92. If we only told you about the module that was skipped, you would think it was worth 72. Neither is a better answer than showing the working.

100% structured coverage, and not one Hotel

Structured coverage scored a flat 100. Every page carries markup and seven types are in play. What the module cannot ask is whether any of that markup says the site belongs to a hotel. The scan's own entity card lists the types found across the crawl as Article, BreadcrumbList, SiteNavigationElement, WebPage, WebSite, plus Organization and Person. No Hotel. No LodgingBusiness. The homepage carries exactly one ld+json block, and its graph contains WebPage, BreadcrumbList, WebSite and Organization with a nested image. That is what a publisher's markup looks like. Nothing in it says hotel.

The Organization block's full property list is seven items: @id, @type, image, logo, name, sameAs, url. No address. No telephone. No description. No founding date. No price range. No star rating. Google documents that Organization has no required properties at all, so a block like that is perfectly valid and sails through every generic validator. The moment you use the type that actually fits, the bar moves: LocalBusiness requires name and address, and Google states plainly that you must include the required properties for content to be eligible as a rich result, with telephone and priceRange recommended on top.

The hotel's own llms.txt states its street address at 27 St Stephen's Green, its phone number, its 1824 founding year and its place in Marriott's Autograph Collection. In prose. In a text file. It states none of those four in its structured data. The site tells assistants in plain English what it declines to tell them in a format machines can parse without inference. Hotel is a documented subtype of LodgingBusiness, inheriting through both the Organization and Place branches, and it carries fields built for exactly this: address, telephone, priceRange, starRating, amenityFeature and checkinTime, with checkoutTime and numberOfRooms on the parent type. schema.org's own hotel markup guide spells out the shape: a lodging business, an accommodation, and an offer, with rooms linked to the hotel by containsPlace and containedInPlace, and rates modelled as offers because things do not have prices, only offers on things do.

Coverage measures whether pages have markup. It does not measure whether the markup describes the business. A score of 82 cannot see that gap, and we would fix it before anything the score did flag.

What Claude and ChatGPT said when asked

Claude, self-reported confidence 72 out of 100, described a historic luxury hotel on St Stephen's Green with heritage dating back to the 18th century. Its own key-facts list, in the same response, said "Founded in 1824, making it one of Dublin's oldest hotels". 1824 is the 19th century. The hotel was founded in 1824 by Martin Burke, a native of County Tipperary, and Irish national press marked 2024 as the 200th anniversary. The fact list was right and the prose was a century out, in one answer.

ChatGPT, self-reported confidence 85, gave a shorter answer and got more of it right: established 1824, part of the Autograph Collection by Marriott, located in Dublin city centre. The rebrand checks out. The hotel joined Marriott's Autograph Collection in 2019 after a $40 million refurbishment, and it is owned by Archer Hotel Capital and operated by Marriott International under that brand. On this pair of answers the more confident model was the more accurate one. Treat that as one data point about two responses. It says nothing about how either model is calibrated in general.

Read the whole exchange as a snapshot. Each engine got one single-shot API call against its training knowledge, and a second run could easily land differently. The gaps the models named travel further. Claude asked for clear information about current ownership and management. The hotel states that in the opening paragraph of the file it published for machines to read. Claude also asked for schema.org structured data about amenities, room types and services, arriving independently at the ceiling described above. Both models separately asked for accessibility information. Two engines naming the same gap is a thin sample, but it is the one item on this report we would act on first.

In priority order

If this were our site, the order would be:

  • Publish accessibility information. Two independent engines named it. It serves real guests before it serves any crawler, and nothing else on this list has that dual return.
  • Add a Hotel or LodgingBusiness block with address, telephone, starRating and priceRange. The facts are already written down in llms.txt. This is transcription work; the research is done. Give the rooms their own Accommodation objects and rates as Offers.
  • Collapse the two @id values into one canonical URI used on every page. Cheap, mechanical, and it stops assistants resolving one hotel into two entities.
  • Rewrite the three duplicated meta descriptions so the eight affected pages describe themselves rather than the brand.
  • Ignore the competitive positioning score until the module runs cleanly. A zero from a timeout tells you nothing.

Run an AI Vision scan on your own site

The obvious follow-ups

Is 82 a good score?
Yes, relative to what it measured. Nineteen passes, three warnings and zero failures across ten modules puts the site well ahead of most we scan. Read it as "82 on these checks" rather than "82 on AI visibility", because two of the ten modules did not produce a usable measurement on this run.
Why did two Baseline audits of the same site differ by twenty points?
Because they ask different questions. AI Vision looks at machine legibility: crawler access, structured data, entity consistency, what models say when queried. The other audit weighs a different set of signals entirely. Neither number invalidates the other. It is the same reason a car passes an emissions test and fails a brake test.
Would adding Hotel schema change the score?
Barely. Structured coverage already scores 100 because every page carries markup, so adding the correct type moves nothing in the arithmetic. That is the point of the ceiling section. The gain is downstream: a machine reading the page can answer where the hotel is and how to phone it without inferring anything from prose.
Should you trust a score when one module in it was broken?
You should trust a score that tells you which module was broken. The number on its own is not the deliverable. The per-module breakdown, the weights and the evidence are. If a tool will not show you the working, you cannot tell a clean 82 from a lucky one.
Does an llms.txt file replace structured data?
No, and this site is the clearest illustration we have. Its llms.txt states the address, phone number, founding year and parent company in prose. The structured data states none of them. One is a courtesy note; the other is a machine-readable contract. Do both, and keep them saying the same thing.

Sources: Shelbourne Hotel, Wikipedia - Kennedy Wilson case study - Irish Examiner, 5 March 2024 - schema.org/Hotel - schema.org/LodgingBusiness - schema.org hotel markup guide - Google, LocalBusiness structured data - Google, Organization structured data. Baseline AI Vision scan #65, theshelbourne.com, 30 July 2026, with a live re-check on 3 August 2026.

References (8)
  1. Organization has no required properties at all (developers.google.com)
  2. LocalBusiness requires name and address (developers.google.com)
  3. Hotel is a documented subtype of LodgingBusiness (schema.org)
  4. checkoutTime and numberOfRooms on the parent type (schema.org)
  5. hotel markup guide (schema.org)
  6. The hotel was founded in 1824 by Martin Burke, a native of County Tipperary (en.wikipedia.org)
  7. the 200th anniversary (irishexaminer.com)
  8. The hotel joined Marriott's Autograph Collection in 2019 after a $40 million refurbishment (kennedywilson.com)

See how AI search sees your site

Free AI visibility check in under a minute

Check my site
George
Online
0%