GLOSSARYScore model v2.4 · last reviewed October 8, 2026

Glossary: every metric, the way we compute it

Definitions and formulas for the numbers you see in Specoria: the free test’s score and levels, agent traffic from your logs, AI visibility and the agent simulator. Each formula is checked against our code by an automated test, so this page changes when the calculation does.

Readiness score (free test)

How 27 checks on your public pages become one number from 0 to 100.

#Agent readiness score

A number from 0 to 100 from fixed, published, weighted rules: the same rules for every site, no AI model involved. Only checks we actually measured count.

Formula

score = round(100 × Σ (weight × credit) ÷ Σ weight), over measured checks only; then the critical-blocker cap

Example Our sample report (web-scraping.dev, October 8, 2026): measured checks carry 90 weight and earn 67.07; round(100 × 67.07 ÷ 90) = 75.

Source: Sample report ·

See also: How the free test works · Sample report

#Check result and credit

Each check ends as passed, partly passed, failed, not verifiable or not applicable. Credit is the share of the check’s weight it earns.

Formula

passed = 1 · partly passed = the check’s own share (0 to 1; 0.5 when none is given) · failed = 0

Example An offer with three of four required fields passes partly with credit 0.75.

See also: Every check and its weight

#Not verifiable

A check we couldn’t measure: the page didn’t open, a security layer stopped us, the site rate-limited us, or the information can’t be seen from outside. It leaves both the numerator and the denominator, so it never counts as passed and never as zero.

#Not applicable

A store-only check (cart, checkout, product offer, returns policy…) on a hotel or service site. It leaves the score; those sites are scored on the shared checks plus their own sector checks, which also add up to 100.

#Insufficient measurement

When the measured checks carry less than 30 weight in total, we don’t show a number: the result would rest on too little. The page says which part of the site was closed to the scan instead.

Formula

Σ weight of measured checks < 30 → no score shown

#Critical blocker

A failed check that means an agent can’t read the store at all, or reads it wrongly: for example, a hard refusal to bots, products only visible with JavaScript, no Product data on the product page, or a price mismatch. It caps the score.

Formula

one blocker → score ≤ 59 · two or more → score ≤ 39

See also: robots.txt: when a block is critical

#Readiness level

Agent-ready, partly ready or hard for agents to read. “Agent-ready” also needs the simulated agent not to eliminate the store (a reason tied to a check, such as unreadable shipping terms).

Formula

Agent-ready: score ≥ 80, no critical blocker, not eliminated · hard to read: score < 40 · otherwise: partly ready

#Category score

The same formula inside one of the five categories: access, product data, policies and trust, consistency, action. A category with nothing measured shows no number.

Formula

category score = round(100 × Σ (weight × credit) ÷ Σ weight) over the category’s measured checks

#Priority order

The order in which findings are shown and become tasks: critical blockers first, then the checks that lose the most weighted points; ties follow the model’s fixed order.

Formula

points lost = weight × (1 − credit)

#Potential score

The score you would reach if the first three priorities passed, with the blocker cap applied again. It is a deterministic calculation, not a forecast of traffic or sales.

Formula

potential = max(score, score with the first 3 priorities set to passed)

Example Sample report: score 75; with its first three priorities passing, 89.

Agent traffic (from your server logs)

What we count when you load an access log, in the project panel or in the free crawl-to-refer tool.

#Agent purpose

Why a bot visits, from the provider’s own documentation. We recognize 26 AI and search bots: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Googlebot, Googlebot-Image, Googlebot-Video, Googlebot-News, Storebot-Google, GoogleOther, GoogleOther-Image, GoogleOther-Video, Google-Agent, bingbot, Applebot, Amazonbot, Meta-ExternalAgent, Meta-ExternalFetcher, Bytespider, CCBot, DuckAssistBot, MistralAI-User.

Formula

training · AI search index · fetching for a user · classic search engine

See also: Identify a bot from its user agent

#Claimed identity

A bot’s name as written in its User-Agent header. Anyone can copy a user agent, so every identity in our traffic report is a claim, never “verified”, unless it is checked against the provider’s published IP ranges or a signature.

See also: How our own crawler identifies itself

#Human page view

A request that isn’t from a recognized bot, has a user agent without generic automation signs (bot, crawl, spider, curl, headless…), and is for a page rather than an asset or API path.

#AI-referred visit

A human page view whose Referer is an AI assistant’s domain (chatgpt.com, perplexity.ai, claude.ai, gemini.google.com, copilot.microsoft.com…), or, when the Referer says nothing, whose utm_source names one. Many apps don’t send a Referer, so this is a lower bound.

Formula

Referer domain first, then utm_source; from the Referer only the domain is read, from the page address only utm_source

#Crawl-to-refer

How many requests an AI company’s bots make for every human visit its assistants send you. Classic search engine bots are left out. With no referred visit, the ratio isn’t calculated.

Formula

crawl-to-refer = AI bot requests of a company ÷ AI-referred visits from that company’s assistants

Example OpenAI bots made 1,200 requests (training, AI search and user fetches; Googlebot’s requests don’t count) and ChatGPT sent 40 visits: 1,200 ÷ 40 = 30 requests per visit.

See also: Calculate it from your own log, in your browser

#Training-only page

A page a training crawler read successfully that no AI search bot or user agent requested, and that got no AI-referred visit in the same log. A hint that the page feeds models but not answers.

AI visibility (paid plans)

What we record when we ask AI answer engines shopping questions about your category.

#Mention rate

The share of AI answers that name your brand or store. Failed calls are left out. We ask 8 shopping questions by default on ChatGPT, Perplexity, Gemini, each 3 times on paid plans; even so, read one measurement as a point on a trend.

Formula

mention rate = answers that mention you ÷ successful answers

Example 24 answers, 2 failed, you’re mentioned in 6: 6 ÷ 22 = 27%.

#Citation rate

The share of AI answers that cite a page on your site as a source.

Formula

citation rate = answers that cite your domain ÷ successful answers

Example Same run, your site is cited in 3: 3 ÷ 22 = 14%.

#Share of voice

Your mentions against everyone named in the same answers. Each name counts once per answer; review sites, forums, news and encyclopedias are sources, not sellers, and don’t count.

Formula

share of voice = your mentions ÷ (your mentions + competitors’ mentions)

Example You’re named in 6 answers, competitor A in 9, competitor B in 5: 6 ÷ 20 = 30%.

Agent simulator

How a live run in a real browser is judged.

#Reached checkout

A simulator run succeeds when an agent reaches the address or payment form, or the “log in / continue as guest” screen. It never presses the order or payment button and never types personal data; on hotel and service sites it stops at the booking or contact form without typing into it.

See also: Try the agent simulator

Run the free test →Try the free tools →