State of Cannabis · Methodology

How the score works

The Heady Findability Score measures how easily customers find a licensed dispensary on Google Maps, Google search and ChatGPT. Every store is scored the same way, out of 100, against licensed rivals only. Scorer v2.0, locked Oct 9, 2026.

Points

100 points, five sections

Local visibility carries the most weight because that's where dispensary customers search. Speed is measured for diagnosis only and earns no points.

GradesA 85+, B 70 to 84, C 55 to 69, D 40 to 54, F under 40.
Hard capA site that's down, or that Google can't see, is capped at 39.
No websiteScored on Maps and profile only. Labeled, not graded.
Points by section (100 total)
SectionPointsWhat it measures
Local43Wins Google Maps at its own front door (23) and across a 5x5 grid around the store against licensed rivals only (20).
Profile5Review count, rating, and whether the Google profile links to the store's own website.
Search27Ranks for its own name (12), has 10+ menu product pages Google can index (10), has a store page with address, hours and schema (5).
AIO15How many of 15 ChatGPT answers about the store's neighborhood name this specific location (5 unbranded prompts, 3 runs each).
Web10Menu link in the main navigation, order path of two clicks or fewer, working XML sitemap, correct canonical tags.

Step 1

Match every licence to its storefront

We start from the state's licence list: retail storefront and non-storefront licences, plus microbusiness licences with a published address. In California, microbusinesses run real storefronts.

  1. Delivery-only. Non-storefront licences get that label and are not scored.
  2. Find the storefront. We match by address first, allowing for address ranges and small street-number differences on the same street and city. If that fails, we look for the trade name within 300 metres of the licence address.
  3. Status.Each licence is Found, Delivery-only, Not retail, Closed, or Couldn't match. Only Found stores are scored. A store we couldn't match is never reported as “not on Maps.”
  4. Shared addresses. One licence counts as one store. When several listings share an address we pick by name, then by cannabis category. The others become findings: a duplicate listing or a squatter.
  5. Website.A store with no website of its own is labeled No website. If the Google profile links somewhere else (a marketplace or a link page) but the store does have its own site, we score that site and add the finding “profile doesn't link to your site.”

Density

A store is rural if five or fewer found storefronts sit within 10 miles; otherwise it's urban. A city takes the tier of its median store. Urban map grids use 1-mile spacing; rural grids use 2.5-mile spacing.

Step 2

Hard caps

Two failures cap the score at 39, whatever else the store earns:

  • Site down.The home page fails on two separate fetchers (server error, DNS failure, timeout or parked page). A block from just one fetcher is labeled Couldn't check, not a fail.
  • Google can't see the content. A noindex tag or robots.txt blocks both the home page and the store page, or both pages show nothing but the age gate.

Everything else is points, and every miss shows up on the store's report as a named finding.

Step 3

How each section scores

Rivals are licensed only. A competitor listing counts only if it matches a found, licensed storefront. Spam listings, unlicensed shops and delivery services drop out.

Local (43)

  • Own front door (23).Three searches (“dispensary”, “cannabis dispensary near me”, “cannabis store”) run from five points: the store's location and four points half a mile out. Each result scores 1 for #1, 0.5 for #2 and 0.25 for #3. Points are 23 times the average.
  • Wide grid (20).A 5x5 grid around the store, each slot scored 1, 0.5 or 0.25 the same way, compared against the local leader. The store's grid rank is shown on its report.

Profile (5)

Reviews (500+ earns 3, 200+ earns 2, 50+ earns 1), a rating of 4.5 or higher (1), and a Google profile that links to the store's own site (1). Missing hours and a non-cannabis main category show up as findings.

Search (27)

  • Owns its name (12).“[trade name] dispensary [city]” searched three times. #1 earns 12, #2 to #3 earns 6, #4 to #10 earns 3, at half value if the wrong page ranks. Points are the average of the three.
  • Menu Google can read (10).10+ product pages on the store's own domain in Google's index earns 10, 1 to 9 earns 5, none earns 0. A menu hosted on a vendor's domain earns 0.
  • Store page (5).A page with the location's address and hours earns 3; LocalBusiness or Store schema earns 2.

AIO (15)

Five fixed, unbranded prompts about the store's area, each asked three times in ChatGPT (15 answers). Points are 15 times the share of answers that name this specific store. Mentions of the brand's other locations don't count.

Web (10)

Menu link in the main navigation (3), an order path of two clicks or fewer (3), a working XML sitemap (2), and correct canonical tags (2).

Step 4

Grades, ranks and operators

  • Grades. A 85+, B 70 to 84, C 55 to 69, D 40 to 54, F under 40.
  • Local rank.Stores are ranked by total score within their neighborhood, or within the city when the neighborhood isn't known. Grid rank is shown separately.
  • No website. No grade and no overall rank. The report shows Local, Profile, the grid rank and the label.
  • Loses its own front door.Not #1 at the store's own location on two or more of the three searches.
  • Operators. Multi-store operators get an average, their weakest store, a store count, and how many of their stores lose their own front door.

This score is the outside-in view. Share of Mapadds capture and retention once we're working with your data.

Want to be on the A list?

We'll walk you through your store's report and the fixes that move your score most. Multi-store operators get every location in one view.

Get My Findability Plan