← OmniForce

Measurement Methodology

GEO tooling lives or dies on measurement quality. Here is exactly how we measure, so every number in a report can be traced to a method.

What we measure

For each tracked prompt we run it against every configured engine and record what the engine returned. From those runs we derive visibility (share of runs that mention or cite you), citations (the sources cited, categorized), share of voice vs tracked competitors, sentiment, and AI-referred revenue (sessions, conversions, revenue).

Engines

Consumer surfaces are captured with real-browser scraping (ChatGPT, Perplexity, Google AI Overviews, Google AI Mode, Copilot, Grok); frontier models with web search are queried via API (Gemini, Claude, Grok, Mistral, DeepSeek, Kimi, OpenAI). Each run records the engine and, where available, the model version.

Sampling & auditability

Metrics are rates over a window, never a single answer. Every run is persisted as an immutable snapshot (prompt, engine, model version, raw answer, citations, fan-out, scores, timestamp), so aggregates are re-derivable. If an engine cannot be reached, the run is skipped — never filled with synthetic output.

Scoring

Position-Adjusted Word Count (PAWC) weights brand mentions by position and length with entity/numeric/table multipliers; share of voice compares that against tracked competitor domains on the same prompt; decay models citation survival with a per-engine constant.

Integrity (anti-cloaking)

Answer engines must see what humans see. We compare the canonicalized rendered text served to an AI crawler against the human page (token-set parity) and refuse to serve AI-specific content that differs materially.

Limitations

Answer engines are non-deterministic and personalized — results are samples, not ground truth. We sample a fixed prompt set, so market coverage depends on it. Search volume is not currently sourced (measured query fan-out is the demand proxy). AI-referred revenue requires the client beacon or server-side conversion events.

Crawler IPs are stored as keyed HMAC hashes, never raw. Events are tenant-scoped and enforced with row-level security. Report snapshots are shareable by unguessable token and contain only aggregate metrics.