How BotLens measures its numbers
The rule behind this page: every public number on botlens.app is computed from our database at request time, or it does not appear. Nothing on the marketing site is a typed-in claim, and each headline metric links here.
The audit time statistic
Every audit stores two timestamps: when processing actually starts (not when you clicked, so queue wait does not flatter the number) and when it completes successfully. Failed audits never enter the statistic. The duration is derived inside the database from those two timestamps, so application code cannot write an inconsistent value. The published figure is the median over the trailing thirty days, precomputed every five minutes; the p90 is computed alongside it. When fewer than thirty audits completed in the window, we show the honest count instead of a median from thin data.
What a prompt set is
A prompt set is a fixed list of questions a real buyer would ask an AI assistant, for example asking for recommended providers in a niche. We send each prompt to the engines, store the full answers, and extract which firms were named. Visibility is then a share: how often, and how prominently, a firm appears across the stored answers. Tracked prompts run weekly; the public Index runs only when we start it manually, and a category needs at least 48 stored responses before we treat it as live.
Which engines we query
Share of Answer queries ChatGPT (with web search), Google Gemini (with search grounding), Claude, and Perplexity. The Prompt Tracker currently queries Claude only, and says so in the product. The engine count shown in our live numbers below is counted from stored responses, not asserted.
How the audit score is computed
The TRIAD score rates a site's Discoverability, Content and Authority from automated checks (crawler access, schema markup, llms.txt, content structure, entity signals) and averages the three pillars. The full check list, including the checks that are documented but not yet automated, is on the methodology page.
What confidence labels mean
Every audit stores a coverage label next to its score: how many checks ran and any caveats, for example when a site relies heavily on client-side rendering and a heuristic estimated instead of fully rendering. A score never hides what it could not measure.
Current sample size
These are the live numbers this site is allowed to show, straight from the same endpoint the homepage uses. If the endpoint is down, this section is empty; we do not keep a fallback copy.
What we do not measure
- Engines we do not query: Meta AI, Grok, Microsoft Copilot, DeepSeek, Google AI Overviews.
- Prompt demand volumes (how many people ask a given question). We do not have that data.
- Continuous AI-crawler analytics; our crawler checks are point-in-time audit checks.
- Sentiment today is a coarse label extracted from stored answers; evidence-quoted sentiment scoring is in development and will state its model version when it ships.
- Anything about sites we have not audited or answers we have not stored.
Methodology versions: audit triad-2026.06, Share of Answer soa-2026.07. When the method changes, the version changes, and stored results keep the version they were produced with.