AISearchScore

Public contract · demo-v0

How the score is built

Name + website + market → a 0–100 Recommendation Score a business owner can read in one glance. The number is AI search visibility — not Maps, not SEO, not a blended “readiness” grade.

What we measure

How often major AI answer engines mention or recommend the business when a prospective buyer asks high-intent questions in that market and trade — without using the business name in the prompt.

Branded queries (“is Harbor HVAC any good?”) are diagnostic only. They do not go into the headline number.

Visibility = appeared in N of M

Visibility % is the share of tracked unbranded prompts where the brand appeared at least once — “appeared in N of M searches.” That mention rate is the Recommendation Score backbone.

Visibility % = 100 × (prompts with a mention) / (tracked prompts)
engine_score  = same ratio, per engine
AISearchScore = round(average(engine_scores))

Start simple: mention rate. Soften later with recommend-vs-bare-mention or top-3 position if owners say mention-alone feels unfair.

Direct vs Indirect mentions

Direct

The engine answer cites or links the brand’s own domain (your website) while naming the business.

Indirect

The answer names the brand through a third-party source — Yelp, Angi, BBB, news, Reddit, directories — not your site.

Both count toward Visibility (appeared or not). The Direct / Indirect split tells you whether engines can cite you, or only talk about you via someone else’s page.

Engines

  1. ChatGPT
  2. Google AI
  3. Perplexity
  4. Claude

Equal weight across 4 engines unless validation shows one dominates buyer behavior for local services. Engines may be added or paused; the run artifact records which set was used.

Prompts

From the business name, site, and city we generate unbranded buyer-intent prompts in three buckets:

No brand name in scored prompts. Natural language. The prompt set is stored with the run so a re-score uses the same questions.

Recommendation Score vs Fix / Audit

The headline Recommendation Score is only AI visibility (mention rate across engines). Fix Score and the AI Site Audit (NAP, GBP, schema, citations, service pages, robots/sitemap readiness) stay separate. Mixing them hides the thing owners actually feel: “AI never says our name.”

Audit findings feed the Plem action layer. They do not inflate or deflate the Recommendation Score.

Repeatability contract

A score is a run artifact. Movement is only meaningful when the contract matches:

Re-score the same prompt set to compare weeks. Changing prompts or engines starts a new series — do not chart them as continuous.

Demo vs live (honest labels)

Demo mode

Default when no engine API keys are set. Score is deterministic from the business name hash. Prompts, competitors, and excerpts are generated so the UI is clickable. Every response is labelled DEMO / mode: "demo". We never claim these are live engine results.

Live mode

Requires one or more provider keys (OPENAI_API_KEY, etc.). Real adapters run; artifacts land under data/runs/ when Supabase is offline. Labelled mode: "live" only when adapters actually ran.

Snapshot = 1 sample

On-demand beta scores use 1 sample per (prompt × engine). That is a point-in-time snapshot, not a multi-draw average. Engine answers are non-deterministic — the same business can move several points between runs.

For validation batches and any paid re-score we plan 3 samples and take mention rate. Until then, treat the number as a labeled snapshot under a fixed prompt-set version.

This website ships in demo by default

Live ChatGPT / Google AI / Perplexity / Claude adapters plug in via lib/engines/ without changing the report layout. Check /api/health for modeHints.scoring.

Get a demo scoreView AI Site AuditOpen dashboard