How the index is built

The mechanic.

We’re a research tool, not an opinion. Every number on every page traces to a query you could re-run yourself. This page documents how.

Step 1 · Define the market

Three axes — geo, keyword, engine.

A market is a metro plus a specialty. For Fort Myers plastic surgery, the geographic scope is a 50-mile circle centered on Fort Myers (26.64°N, 81.87°W), broken into named sub-markets so each can be filtered independently.

Geo axis · 5 sub-markets

  • Fort Myers · 26.6406, −81.8723
  • Cape Coral · 26.5629, −81.9495
  • Punta Gorda · 26.9298, −82.0454
  • Bonita Springs · 26.3398, −81.7787
  • Estero · 26.4381, −81.8067

Keyword basket · 12 money terms

  • plastic surgeon
  • best plastic surgeon
  • plastic surgery
  • breast augmentation
  • facelift
  • mommy makeover
  • tummy tuck
  • liposuction
  • rhinoplasty
  • Botox
  • eyelid surgery
  • plastic surgery cost

Engine coverage · 3 today, 5 next

  • Google organic · top 20 results per (keyword, geo)
  • Google map pack · the local 3-pack (bundled with the organic call)
  • Bing organic · top 20 (smaller share, useful for AI-search correlation since Bing powers ChatGPT search)
  • Claude · conversational citation tracking via procedure-specific prompts
  • ChatGPT · same prompts as Claude (next pass)
  • Grok, Perplexity, Google AI Overviews · on the roadmap

Step 2 · Run the queries

One pass. ~105 queries. ~$0.28.

Cartesian product of (geo × keyword × engine), pruned with two principles: map-pack rides on the Google call, and AI engines get conversational prompts instead of one prompt per keyword.

Tier 1 (5 core geos)
  Google + map pack:  5 geos × 12 keywords = 60 queries
  Bing organic:       5 geos × 6 keywords  = 30 queries
  Claude AI:          5 geos × 3 procedure-specific prompts = 15 queries
                                            ───────────────
                                            105 queries / pass

DataForSEO + Anthropic API spend ≈ $0.28 per pass.

Step 3 · Build the universe

Dedupe, categorize, sub-market tag.

Every organic result, every map-pack listing, every Claude-named entity is folded into one row per unique practice (keyed by domain primary, GMB place_id secondary). The aggregator filters directory sites, content pages, manufacturer brands, and out-of-market high-DR bleed.

Each practice is tagged: plastic_surgery · dermatology · med_spa · laser_clinic · cosmetic_other. The matrix shows plastic surgeons; outliers get their own section so the SERP reality stays transparent.

Step 4 · Score

The Visibility Score formula.

Per (practice, keyword, engine), a position becomes a CTR-weighted score. Engine weights are configurable so the formula can flex as AI search grows. Final score normalized 0–100 across the universe (share of voice).

score(practice) = Σ over (keyword, engine) [
  kw_volume_weight × position_score(pos, engine) × engine_weight
]

position_score, Google organic (CTR curve)
  pos 1=100  pos 2=65  pos 3=42  pos 4=28  pos 5=18
  pos 6–10  ≈ 12 → 3   pos 11–20 ≈ 2 → 0.5   pos 21+ = 0

position_score, map pack: pos 1=80  pos 2=45  pos 3=25
position_score, Bing organic: same curve × 0.8

AI citation score:
  named 1st in response = 100
  named 2nd            = 70
  named 3rd            = 50
  mentioned at all     = 25

engine_weight (starting, tunable)
  Google organic   0.45
  Google map pack  0.12
  Bing organic     0.08
  Claude           0.20
  ChatGPT          0.15

Step 5 · Publish & refresh

Date-stamped. Re-crawled quarterly.

Every page carries the date the underlying data was captured plus a dateModified in schema markup. Markets re-run every 90 days — data refreshes, date stamps advance, AI engines that change behavior are re-scored.

Practices can request immediate takedown at any time — one email at info@medicaladvertising.agency.

Known limits

What this pass doesn’t catch.

  • Practice lat/lng currently approximated to sub-market center pending GMB info lookups (planned for pass 3).
  • Claude refused 4 of 12 prompts in pass 2 — the "mommy makeover" prompt triggered the medical-advice guardrail in every sub-market. Prompt phrasing is being iterated.
  • Bing surfaces high-DR national practices (e.g. Dr Kenneth Hughes, Los Angeles) over local Fort Myers competitors. The matrix shows this honestly; a "local-only" filter is on the roadmap.
  • ChatGPT axis pending API key — current AI signal is Claude-only.
  • Site audit data on dossier pages (Section 7) lands after the Screaming Frog crawl pipeline ships in pass 3.