{
  "name": "AI SEO Perth observation methodology",
  "version": "1.0",
  "updated": "2026-09-09",
  "url": "https://aiseoperth.net.au/methodology/",
  "publisher": "Search Scope",
  "publisher_url": "https://searchscope.com.au/",
  "scope": "How AI-assisted search systems retrieve, cite and recommend sources for prompts with a Perth, Western Australia context.",
  "objectives": [
    "Record which businesses, brands and sources AI-assisted search systems name, recommend and cite for Perth prompts.",
    "Record which domains and URLs are cited, and classify each source.",
    "Measure how answers vary across repeated runs, session profiles and platforms.",
    "Track change over time on a fixed prompt set."
  ],
  "query_classes": [
    {
      "id": "informational",
      "description": "What something is or how it works, no purchase intent."
    },
    {
      "id": "commercial",
      "description": "Looking for a type of provider or product without naming one."
    },
    {
      "id": "comparison",
      "description": "Comparing two or more named options or approaches."
    },
    {
      "id": "recommendation",
      "description": "Asking the system to shortlist or recommend providers."
    },
    {
      "id": "local",
      "description": "Any prompt whose answer depends on a Perth or Western Australian location."
    },
    {
      "id": "brand",
      "description": "Asking about a named business or brand."
    },
    {
      "id": "competitor",
      "description": "Asking for alternatives to a named business or brand."
    },
    {
      "id": "trust-validation",
      "description": "Checking whether a named business is legitimate, reviewed or safe to use."
    }
  ],
  "buyer_stages": [
    "awareness",
    "consideration",
    "decision",
    "retention",
    "not-applicable"
  ],
  "platforms": [
    {
      "id": "chatgpt",
      "name": "ChatGPT",
      "notes": "Web product with search enabled. Model label recorded per run."
    },
    {
      "id": "google-ai-overviews",
      "name": "Google AI Overviews",
      "notes": "google.com.au results page. Not every query triggers an overview; absence is recorded."
    },
    {
      "id": "google-ai-mode",
      "name": "Google AI Mode",
      "notes": "Recorded separately from AI Overviews because the surface and its citation behaviour differ."
    },
    {
      "id": "gemini",
      "name": "Gemini",
      "notes": "Gemini app, web."
    },
    {
      "id": "perplexity",
      "name": "Perplexity",
      "notes": "Web product, default mode unless otherwise recorded."
    },
    {
      "id": "claude",
      "name": "Claude",
      "notes": "Web product with web search enabled where available."
    },
    {
      "id": "copilot",
      "name": "Microsoft Copilot",
      "notes": "Consumer web product."
    }
  ],
  "session_profiles": [
    {
      "id": "clean-baseline",
      "description": "A dedicated account with no prior history, location set to Perth where the platform allows it."
    },
    {
      "id": "persona-a",
      "description": "A seeded account with a defined history, used to measure personalisation divergence."
    },
    {
      "id": "persona-b",
      "description": "A second seeded account with a different history."
    },
    {
      "id": "logged-out",
      "description": "No account. Only used where the platform serves answers without login."
    },
    {
      "id": "api",
      "description": "Programmatic access where a platform offers it. Recorded separately because API behaviour can differ from the consumer product."
    }
  ],
  "repeated_runs": {
    "minimum_runs_per_prompt": 3,
    "why": "Outputs vary between sessions on the same prompt. A single run is an anecdote. Repeated runs let the publication report how often a brand or domain appeared, not whether it appeared once."
  },
  "recorded_fields": [
    "prompt (verbatim)",
    "query_class",
    "buyer_stage",
    "industry",
    "location",
    "platform",
    "model_or_surface",
    "observation_date, observation_time, timezone",
    "run_number",
    "session_profile",
    "brands_mentioned",
    "brands_recommended",
    "brand_order",
    "citations_present",
    "cited_urls",
    "cited_domains",
    "source_classes",
    "response_notes",
    "region_or_session_notes",
    "source_capture",
    "methodology_version"
  ],
  "source_classes": [
    {
      "id": "owned",
      "description": "A domain owned by a brand named in the answer."
    },
    {
      "id": "third-party",
      "description": "An independent site that is none of the classes below."
    },
    {
      "id": "platform-owned",
      "description": "A property owned by the platform answering, for example Google Maps for a Google surface."
    },
    {
      "id": "ugc",
      "description": "User-generated content: forums, Reddit, review threads, Q&A sites."
    },
    {
      "id": "directory",
      "description": "Business directories and listing sites."
    },
    {
      "id": "publisher",
      "description": "News and editorial publishers."
    },
    {
      "id": "brand-source",
      "description": "A brand's own profile on a third-party platform, for example a Google Business Profile or a LinkedIn company page."
    }
  ],
  "evidence_labels": [
    {
      "id": "documented",
      "description": "Stated by a platform or another primary source, with a link and a date."
    },
    {
      "id": "observed",
      "description": "Measured directly by this publication, with the dataset and date named."
    },
    {
      "id": "tested",
      "description": "An experiment with a defined methodology, sample and limitations."
    },
    {
      "id": "inferred",
      "description": "A conclusion drawn from several signals. Written as inference, never as fact."
    },
    {
      "id": "hypothesis",
      "description": "Worth testing, not established."
    }
  ],
  "limitations": [
    "Session variance: the same prompt returns different answers across runs.",
    "Personalisation: account history, saved preferences and prior chats can change results.",
    "Location: platforms infer location differently and not all of them let it be set.",
    "Model updates: platforms change models and retrieval behaviour without notice, so observations are dated and versioned.",
    "Logged-in state: consumer products behave differently logged in, logged out and through an API.",
    "Citation availability: some surfaces show citations inconsistently or not at all, so absence of a citation is not evidence a source was unused.",
    "Sampling: a fixed prompt set is a sample of the questions people ask, not the population.",
    "No universal score: this publication does not compute a single ranking or 'GEO score'. Frequencies are reported per prompt set, platform and period."
  ],
  "versioning": {
    "policy": "Any change to prompt sets, platforms, session profiles, recorded fields or classification rules increments the version. Observations carry the version they were collected under and are never re-labelled.",
    "history": [
      {
        "version": "1.0",
        "date": "2026-09-09",
        "note": "Initial methodology published. No observation rounds completed."
      }
    ]
  }
}