Methodology

How every Prism score is calculated

Seven dimensions, each derived from observable signals — no black boxes, no proprietary mystery weights. If you score a 65, this page tells you exactly why. If you push us on a number, we can show our work.

Most audit tools won't tell you how their scores are built. We think that's a tell. The score is only useful if you trust where it came from.

The overall score

The overall health score on the cover of every Prism report is built in two steps. First, a weighted average of the blended dimensions below — Website Health carries the most weight because it's the strongest single predictor of whether the business shows up when a customer searches.

Second, that average is scaled by an establishment factor driven by review volume: overall = blend × (0.30 + 0.70 × review score ÷ 100). A business with no review evidence keeps 30% of its blend; one with a deep review history keeps all of it. We added this after testing scores against human judgment: a polished website and complete listings can make an unknown business look healthy on paper, but customers — and AI search engines — trust evidence that other customers actually use the business. Review volume is that evidence, so it scales everything else.

DimensionWeight
Website Health30%
Google Business Profile10%
Review Volume15%
AI Sentiment15%
Platform Presencenot blended
Citation Health15%
Local Rankings10%
AI Search Readiness5%
Total100%

When a dimension can't be measured (e.g. AI Sentiment when there's not enough public data), it's excluded and the remaining weights renormalize. A partial scan still produces a meaningful number — just slightly less complete.

The seven dimensions

Each dimension scores 0–100. The card explains what it measures, how the math works, and the concrete things you can change to move it.

Website Health

30% weight

Source

Direct fetch of the homepage + crawl of internal links

What it measures

Technical SEO health of the website itself — the foundation Google reads to decide whether the business is rankable. Covers HTTPS, mobile-friendliness, page speed, structured data, sitemap, robots.txt, meta tags, broken links, and 8+ other signals.

How it's calculated

Start at 100. Subtract 20 for each CRITICAL finding, 10 for each HIGH, 5 for each MEDIUM. LOW findings are surfaced but don't deduct. Score clamped to 0–100.

What moves it

  • Adding HTTPS and getting a clean SSL cert (often the single biggest finding)
  • Fixing broken internal links
  • Adding LocalBusiness schema markup (JSON-LD)
  • Reducing duplicate H1 tags to one per page
  • Shortening title tags to 30–60 characters
  • Adding a sitemap.xml + robots.txt

Google Business Profile

10% weight

Source

Google knowledge graph + Serper /places lookup

What it measures

How complete the Google Business Profile is. Google uses these fields to rank the listing in local search and the map pack — every missing field weakens the signal.

How it's calculated

10 fields × 10 points each. Fields: business name, star rating, review count, hours, address, phone, website, category, photos, business description. presentCount × 10.

What moves it

  • Adding photos (the most common missing field for small businesses)
  • Writing a business description (250–750 characters)
  • Completing hours of operation
  • Adding the primary category
  • Verifying the address and phone match the website

Review Volume

15% weight

Source

Google Business Profile review count

What it measures

How much customer evidence exists. Review volume is the strongest establishment signal we measure — it separates businesses customers demonstrably use from businesses that merely exist online correctly. It is also the input to the establishment factor that scales the whole overall score (see 'The overall score' above).

How it's calculated

35 × log10(review count + 1), capped at 100. The log curve means diminishing returns: going from 0 to 50 reviews is a major jump; going from 300 to 600 is marginal. A Google Business Profile that exists but has zero reviews scores 0 here; a business with no profile at all is treated as having no establishment evidence.

What moves it

  • Asking every completed customer for a Google review (volume is the signal)
  • Getting past the first 10 — the curve is steepest at the start
  • Keeping reviews recent (steady trickle beats a one-time burst)
  • Responding to reviews (drives more of them, and signals engagement)

AI Sentiment

15% weight

Source

Perplexity AI query about the business

What it measures

What AI search engines say about the business when a customer asks about it. With ChatGPT, Perplexity, and Claude increasingly being how people research local services, the answer they generate matters — and it's driven by review depth, sentiment patterns, and citation breadth.

How it's calculated

Perplexity returns a 0–100 sentiment score directly when there's enough public data. When data is too thin (under ~5 surfacing reviews), it returns SCORE: 0 with an 'insufficient data' flag — the report shows 'Not scanned' rather than misleading numeric scores. Heuristic fallback: positive language → 78, negative → 32, neutral → 55.

What moves it

  • Getting more Google reviews (more sample = more confident sentiment)
  • Responding to existing reviews (signals engagement)
  • Building reviews across multiple platforms (Yelp, Facebook, industry-specific)
  • Adding social proof to the website (case studies, testimonials)

Platform Presence

0% weight

Source

Citation scrape + GBP details

What it measures

How many of the platforms customers actually use to evaluate businesses surface this one. Heavy weight on GBP because it's the dominant local-search platform, plus credit for Facebook, Instagram, Yelp, and other industry-specific platforms. Shown for context — since mid-2026 this dimension is not blended into the overall score, because its signal substantially overlapped the Google Business Profile dimension (it was being counted twice).

How it's calculated

Base 20. GBP present: +25. GBP rating ≥ 4.0: +10. GBP reviews: +10 (50+), +7 (20+), +3 (5+). GBP category set: +5. GBP→website match: +5. Other platforms: up to +30 (5 per platform). Clamped 5–100.

What moves it

  • Claiming the Google Business Profile (jumps the score 25–50 points immediately)
  • Building review count past the 5/20/50 tier thresholds
  • Adding Facebook, Instagram, industry directories
  • Maintaining NAP (Name/Address/Phone) consistency between site and GBP

Citation Health

15% weight

Source

Serper search results scan for citation domains

What it measures

How broadly the business appears across the citation sources Google surfaces — directories, maps, review sites, social profiles. Breadth of presence is the primary signal (an established business turns up in many distinct sources; an invisible one in a handful). Name/Address/Phone visibility in each source is scored as a bonus, and conflicting NAP data as a penalty.

How it's calculated

+9 per distinct citation domain found. Bonus: +6 per source with name, phone, and address all visible; +3 per source with name plus one of phone/address. −8 per source with mismatched NAP data. Clamped 5–100. Zero citations → score 10 (visibility floor). Note: phone/address rarely survive Google's snippet truncation, so their absence alone is not penalized — only contradictions are.

What moves it

  • Claiming and updating Yelp, Yellow Pages, BBB listings
  • Fixing NAP inconsistencies across existing citations
  • Building citations on industry-specific directories
  • Auditing for duplicate listings (one of the most common silent ranking killers)

Local Rankings

10% weight

Source

SerpApi searches for 5–6 auto-generated keywords

What it measures

Where the business actually ranks for the queries customers type. We auto-generate 5–6 keywords per business: the base (e.g. "flooring company North Little Rock"), plus modifier variants ("best", "top rated", "affordable", "near me"), plus a state-explicit form when state is known.

How it's calculated

Per keyword: position 1 = 100 points, position 2 = 90, ..., position 10 = 10. Outside top 10 (or in 3-pack only) = 100 if in the local pack, else 0. Final score: average across all keywords. Local pack appearance counts as position 1.

What moves it

  • Improving the underlying GBP (rank correlates strongly with GBP completeness)
  • Building reviews (modifier queries weight reviews heavily)
  • Location-specific content on the website
  • Adding service area pages

AI Search Readiness

5% weight

Source

Direct fetch of homepage, robots.txt, and structured data probe

What it measures

Whether AI search engines (ChatGPT, Perplexity, Claude, Google AI Overviews, Bing Copilot) can actually read the website. Many sites silently block AI crawlers via robots.txt or rely on JavaScript-only rendering that bots can't process.

How it's calculated

Start at 100. CRITICAL findings (blocked crawler) = −25 each. HIGH (no schema, no semantic HTML) = −15 each. MEDIUM (missing meta description, sparse content) = −8 each. LOW = −3 each. Clamped 0–100.

What moves it

  • Adding GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended, and Bingbot to robots.txt as Allow
  • Adding LocalBusiness Schema.org JSON-LD
  • Using semantic HTML (header, main, article, footer)
  • Server-side rendering critical content (not JS-only)

About the data sources

Prism uses three external data providers: SerpApi for organic search and local pack results, Serper for citation discovery and Google Maps lookups, and Perplexity for AI sentiment. Site checks run directly against the target website — no third-party intermediary.

Every scan re-runs all data sources from scratch. We don't cache results, so the score you see reflects the live state of the business's online presence at the moment of the scan.