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 a weighted average of the seven dimensions below. Site Health and Google Business Profile carry the most weight because they're the two strongest predictors of whether the business shows up when a customer searches.

DimensionWeight
Website Health20%
Google Business Profile20%
AI Sentiment15%
Platform Presence15%
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

20% 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

20% 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

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

15% 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.

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 consistently the business's Name, Address, and Phone (NAP) appear across the web. Google reads citation consistency as a trust signal — Yelp, Yellow Pages, BBB, Facebook, and similar all need to say the same thing.

How it's calculated

Per-citation: CONSISTENT (name + phone + address visible) = +15. PARTIAL (name + 1 of phone/address) = +7. PARTIAL_WEAK (name only) = +2. GHOST (mismatch) = −10. Plus visibility bonus: +3 per organic result the business surfaces in. Clamped 5–100. Zero citations → score 10 (visibility floor).

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.