1. What the GEO Machine Measures

The GEO Machine answers a single question: when a high-intent traveler asks an AI platform for a hotel recommendation, does your brand surface, and in what light?

As travelers increasingly use ChatGPT, Claude, Perplexity, and Gemini instead of Google for hotel discovery, visibility in these platforms directly impacts booking decisions. Traditional SEO audits measure search engine rankings — a GEO audit measures presence in the conversational AI responses where travelers ask natural-language questions about where to stay.

Each audit runs 60 standardized queries across 4 AI platforms, producing 240 total responses. Brand and competitor mentions are detected with word-boundary precision. Sentiment is classified. Competitor displacement is measured. The output is a scored audit with a prioritized 90-day action plan grounded in specific query-level findings.

2. The Decision Moments Framework

Travelers don't ask one kind of question. They move through four distinct decision moments — each with different intent, different query language, and different weight in how AI platforms form recommendations.

MomentWeightQueriesDefinition
Recommendation45%27 genericHow AI positions the brand when users ask for category-level recommendations
Discovery20%6 genericHow AI surfaces the brand in exploratory, category-browsing searches
Comparison20%3 branded + 12 genericHow the brand appears when travelers compare specific options
Trust15%9 branded + 3 genericSignals of authority, credibility, and safety in AI responses

Recommendation carries the highest weight (45%) because it represents the moment where booking decisions are most directly influenced — the traveler is actively choosing, not just browsing. Weights are fixed industry constants derived from hospitality-sector travel intent modeling, ensuring consistent cross-brand comparison.

3. Query Design

Branded vs. Generic Split

Query TypeCountShareWhat It Measures
Branded1220%What AI platforms say about you — sentiment, recommendation strength, accuracy
Generic4880%Whether AI platforms mention you at all — organic visibility without naming your brand

Pattern-Based Generation

Queries are not hand-written per brand. The system uses a library of 60+ query patterns with placeholders filled from each property's intake data. This ensures every brand audit is methodologically identical while using brand-relevant specifics.

PlaceholderSourceExample
{property}Brand nameBardo Savannah
{region}Geographic dataSavannah Historic District
{competitor}Discovered competitorsThe Dewberry
{persona}Traveler archetypescouples, solo traveler
{experience}Amenity categoriesspa, fine dining
{season}Temporal contextspring, winter holidays
{occasion}Trip purposeanniversary, remote work retreat

Query generation runs through Claude (Sonnet 4) with guardrails that enforce correct branded/unbranded distribution, prevent duplicate queries, and reject off-template output. All placeholders must be resolved — no unsubstituted templates reach execution.

4. Platform Coverage

Four AI platforms are queried, reflecting the fragmented landscape travelers actually use. Running all four prevents single-platform bias — a brand visible on ChatGPT but invisible on Perplexity has a real visibility problem.

PlatformModelSearch Capability
ChatGPTGPT-4oWeb search enabled
ClaudeClaude (Anthropic)Brave Search integration
PerplexitySonarSearch-native architecture
GeminiGemini (Google)Google Search grounding

5. Scoring Methodology

Branded Queries — Sentiment-Based

For queries that include the brand name, scoring measures how the brand is presented, not just whether it appears. Claude classifies each response for sentiment:

SentimentScoreExample
Positive+1"Bardo Savannah is one of the finest boutique hotels in the South"
Neutral0"Bardo Savannah is located in the Historic District"
Negative−1"Bardo Savannah has received mixed reviews for service"

Branded scores are weighted and normalized to a 0–100 scale per decision moment.

Generic Queries — Mention-Based

For queries without any brand name, scoring measures pure presence: did the AI mention you at all? Mentioned = 1, Not mentioned = 0. Normalized to 0–100 as a percentage of generic queries where the brand appeared.

Composite GEO Score

Each decision moment score combines its branded and generic components, then the overall GEO Score is the weighted sum:

GEO Score = (Recommendation × 0.45) + (Discovery × 0.20) + (Comparison × 0.20) + (Trust × 0.15)

Visibility Tiers

TierRangeMeaning
Leader70–100Dominant presence across AI platforms
Considered Option40–69Appears but not consistently positioned as a top choice
Afterthought10–39Mostly invisible except in direct name searches
Not Mentioned0–9Effectively no AI presence

Scoring and gap analysis use deterministic algorithms with no AI component. This is deliberate: the numbers must be reproducible. Run the same responses through the scoring engine twice and you get the same result. AI is used where judgment is required — sentiment, classification, copy generation — not where arithmetic is required.

6. Sentiment Analysis

Claude analyzes every branded query response across all platforms for:

This granularity matters because "mentioned" isn't enough. A brand can be mentioned negatively, mentioned as an afterthought, or positioned as the definitive recommendation — and those outcomes demand radically different strategic responses.

7. Share of Voice

Share of Voice measures competitive position in the generic query landscape — the queries where no brand is named and the AI chooses who to surface.

Methodology: Generic queries only. Branded queries are excluded to avoid inflating the metric — of course "Bardo Savannah" appears when you ask about "Bardo Savannah." Share of Voice is a measure of competitive visibility on a level playing field.

01
Primary Rate — How often the brand is the primary recommendation (first-mentioned, most emphatically endorsed)
02
Co-Mention Rate — How often the brand appears alongside competitors
03
Platform Breakdown — Share of Voice by platform, revealing platform-specific weaknesses
04
Competitor Share — Which competitors dominate the generic query space

8. Competitor Intelligence

Competitor Discovery

The system doesn't assume it knows your competitors. During the Discovery stage, it scans all AI responses for competitor names, surfaces the top 5 real competitors by mention frequency, and writes them back into the analysis. This means the competitive comparison reflects who the AI platforms actually name alongside you, not a static list.

Mention Classification

Every competitor and brand mention is classified into one of four types:

Mention TypeMeaning
Direct RecommendationThe AI explicitly recommends this property
List InclusionThe property appears in a list of options
Contrast MentionMentioned in contrast to another property
Passing ReferenceMentioned in passing without endorsement

Displacement Analysis

Displacement occurs when a competitor is mentioned but your brand is either absent (not mentioned at all) or outranked (both mentioned, competitor positioned ahead). Displacements are aggregated into threat levels:

Threat LevelDisplacementsStrategic Meaning
Primary≥ 10Systematically displacing you across multiple territories
Significant≥ 5Regularly outranks you in specific contexts
Moderate≥ 2Appears ahead of you in specific query clusters
Minimal1Isolated displacement, likely query-specific

9. Gap Analysis

When the brand receives zero mentions on a query, that query is a gap. Gaps are grouped by territory — topic domains that represent clusters of traveler intent (e.g., "luxury spa experiences," "historic district hotels," "beachfront dining").

Gap Classification

Each territory is classified by competitor fill rate and displacement pattern:

Gap TypeFill RateMeaning
Unowned< 30%No brand owns this territory — open opportunity
Contested30–70%Multiple brands compete for visibility
Owned by Competitor≥ 70%A specific competitor dominates this territory
Authority GapMajority outrankedYour site exists but AI doesn't treat it as authoritative
Page Exists, Not IndexedN/AContent exists on your site but AI platforms don't reference it

Site Inventory Enrichment

When a site inventory is available, gap analysis is cross-referenced against the brand's actual website content to determine whether a gap is a content gap (the site doesn't address this topic) or an indexing gap (the content exists but AI platforms don't surface it). This produces specific content action types:

10. Multi-Run Trend Analysis

A single audit is a snapshot. Two or more audits, run over time, reveal trajectory. The Process phase aggregates data from multiple collection runs and calculates:

01
Score Trendsrising, falling, stable, or volatile (volatility ratio > 0.15). A brand that scores 45 one month and 42 the next isn't "falling" — it's stable within variance. A brand that drops from 65 to 45 in one platform over three runs has a specific, addressable problem.
02
Gap Persistence — Which gaps appear across multiple runs, distinguishing systemic issues from one-off misses
03
Competitor Persistence — Which competitors consistently displace the brand across runs
04
Platform Shifts — Where platform-level visibility is improving or degrading

11. 3-Tier Action Plan

The action plan translates analysis into a sequenced, scored 90-day execution plan with three tiers:

TierTimeframeScopeExamples
Quick WinsThis weekLow-effort, immediate-impact fixesFix broken schema, claim unverified GBP listing, add missing page titles
Month 1–390 daysStrategic content and authority workCreate content for unowned territories, build backlinks, platform-specific optimization
BonusOpportunisticAdditional high-potential actionsAdvanced schema strategies, competitive differentiation plays

Actions are ranked by composite scoring of GEO Score Impact (how much this action could move the overall score), Commercial Impact (business value beyond the score), and Implementation Effort (resource requirements). The system enforces diversity across tiers, validates minimum requirements, and applies a hard stop if Tier 1+2 actions don't collectively close enough gaps to be needle-moving.

12. Validation & Guardrails

Preflight Check

Before running the full 60-query budget, the system runs 2 canary queries across all platforms to detect brand detection regex mismatches, platform search capability issues, API authentication problems, and configuration errors. If preflight fails, the full run is blocked — preventing wasted API spend on a broken configuration.

Query Guardrails

Generated queries are validated against correct branded/unbranded counts per decision moment, minimum branded queries per moment, duplicate detection, and placeholder resolution. Queries that violate guardrails are regenerated.

Fact Review Gate

Before the action plan is finalized, factual claims are extracted and presented for human review. Claims can be approved, rejected, or modified — ensuring the final output is editorially sound before it reaches the client.

13. Limitations

14. Technical Implementation

ComponentTechnology
RuntimeBun (TypeScript)
Query GenerationClaude Sonnet 4 (Anthropic API)
Query ExecutionChatGPT, Claude, Perplexity, Gemini APIs
Sentiment AnalysisClaude (Anthropic API)
Mention ClassificationClaude (Anthropic API)
Scoring & Gap AnalysisPure computation (deterministic, no AI)
Competitor DiscoveryClaude (Anthropic API) + regex
Site InventoryPuppeteer (headless Chrome) + Claude
Report GenerationHTML → Chrome headless → PDF
Report CopyClaude (Anthropic API), 2-stage generation + validation