{
  "captureDate": "2026-09-02T13:55:32.001Z",
  "study": {
    "slug": "dentist-maps-reviews",
    "question": "How many Google reviews does a dental practice need to appear in the Maps top 20, and does rating or review volume track position?",
    "lane": "maps"
  },
  "sample": {
    "markets": 22,
    "serpCalls": 0,
    "resultsSeen": 440,
    "excluded": 3,
    "excludedReasons": [
      [
        "no website",
        3
      ]
    ],
    "uniqueBusinesses": 437,
    "reachable": 417,
    "pageCountMeasured": 352,
    "pageCountMissing": 85
  },
  "distributions": {
    "rating": {
      "n": 437,
      "min": 3.9,
      "p25": 4.8,
      "median": 4.9,
      "p75": 4.9,
      "p90": 5,
      "max": 5,
      "mean": 4.82
    },
    "reviews": {
      "n": 437,
      "min": 17,
      "p25": 337,
      "median": 545,
      "p75": 842,
      "p90": 1252,
      "max": 4730,
      "mean": 667.26
    },
    "pages": {
      "n": 352,
      "min": 1,
      "p25": 44,
      "median": 72,
      "p75": 164,
      "p90": 325,
      "max": 13548,
      "mean": 210.85
    },
    "blogPages": {
      "n": 352,
      "min": 0,
      "p25": 0,
      "median": 1,
      "p75": 12,
      "p90": 90,
      "max": 706,
      "mean": 30.2
    },
    "blogPosts12mo": {
      "n": 176,
      "min": 0,
      "p25": 0,
      "median": 1,
      "p75": 14,
      "p90": 83,
      "max": 406,
      "mean": 24.3
    },
    "mostRecentDays": {
      "n": 176,
      "min": 0,
      "p25": 15,
      "median": 101,
      "p75": 518,
      "p90": 1199,
      "max": 3837,
      "mean": 419.64
    },
    "words": {
      "n": 417,
      "min": 0,
      "p25": 630,
      "median": 1093,
      "p75": 1506,
      "p90": 1978,
      "max": 8884,
      "mean": 1166.18
    },
    "bytes": {
      "n": 417,
      "min": 169,
      "p25": 88451,
      "median": 195629,
      "p75": 333446,
      "p90": 627027,
      "max": 4842391,
      "mean": 305858.8
    },
    "superlatives": {
      "n": 417,
      "min": 0,
      "p25": 1,
      "median": 3,
      "p75": 5,
      "p90": 8,
      "max": 30,
      "mean": 3.69
    },
    "numericClaims": {
      "n": 417,
      "min": 0,
      "p25": 0,
      "median": 0,
      "p75": 1,
      "p90": 3,
      "max": 137,
      "mean": 1.48
    }
  },
  "adoption": {
    "hasWebsite": {
      "yes": 437,
      "outOf": 437,
      "pct": 100
    },
    "hasPhone": {
      "yes": 437,
      "outOf": 437,
      "pct": 100
    },
    "isChain": {
      "yes": 3,
      "outOf": 437,
      "pct": 1
    },
    "hasJsonLd": {
      "yes": 343,
      "outOf": 417,
      "pct": 82
    },
    "hasLocalBusinessSchema": {
      "yes": 217,
      "outOf": 417,
      "pct": 52
    },
    "hasReviewSchema": {
      "yes": 63,
      "outOf": 417,
      "pct": 15
    },
    "hasFaqSchema": {
      "yes": 42,
      "outOf": 417,
      "pct": 10
    },
    "hasCareersLink": {
      "yes": 75,
      "outOf": 417,
      "pct": 18
    },
    "hasBlogLink": {
      "yes": 248,
      "outOf": 417,
      "pct": 59
    },
    "hasPricingLink": {
      "yes": 23,
      "outOf": 417,
      "pct": 6
    },
    "hasFinancingMention": {
      "yes": 185,
      "outOf": 417,
      "pct": 44
    },
    "hasOnlineBooking": {
      "yes": 274,
      "outOf": 417,
      "pct": 66
    },
    "hasChatWidget": {
      "yes": 32,
      "outOf": 417,
      "pct": 8
    },
    "hasForm": {
      "yes": 174,
      "outOf": 417,
      "pct": 42
    },
    "mentionsEmergency": {
      "yes": 189,
      "outOf": 417,
      "pct": 45
    },
    "mentionsGuarantee": {
      "yes": 22,
      "outOf": 417,
      "pct": 5
    }
  },
  "correlations": {
    "rankVs_rating": {
      "n": 437,
      "rho": 0.109,
      "significant": true,
      "strength": "weak"
    },
    "rankVs_reviews": {
      "n": 437,
      "rho": -0.254,
      "significant": true,
      "strength": "weak"
    },
    "rankVs_pages": {
      "n": 352,
      "rho": -0.015,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "rankVs_blogPages": {
      "n": 352,
      "rho": -0.043,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "rankVs_blogPosts12mo": {
      "n": 176,
      "rho": 0.044,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "rankVs_mostRecentDays": {
      "n": 176,
      "rho": -0.004,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "rankVs_words": {
      "n": 417,
      "rho": -0.091,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "rankVs_bytes": {
      "n": 417,
      "rho": -0.068,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "rankVs_superlatives": {
      "n": 417,
      "rho": -0.025,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "rankVs_numericClaims": {
      "n": 417,
      "rho": -0.081,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "ratingVs_reviews": {
      "n": 437,
      "rho": -0.066,
      "significant": false,
      "strength": "no meaningful relationship"
    },
    "pagesVs_reviews": {
      "n": 352,
      "rho": 0.194,
      "significant": true,
      "strength": "weak"
    },
    "superlativesVs_numericClaims": {
      "n": 417,
      "rho": 0.322,
      "significant": true,
      "strength": "moderate"
    }
  },
  "bands": [
    {
      "positions": "1-3",
      "n": 66,
      "rating": 4.9,
      "reviews": 769,
      "pages": 80,
      "blogPages": 1,
      "blogPosts12mo": 1,
      "mostRecentDays": 170,
      "words": 1165,
      "bytes": 219350,
      "superlatives": 2,
      "numericClaims": 1
    },
    {
      "positions": "4-7",
      "n": 86,
      "rating": 4.9,
      "reviews": 627,
      "pages": 71,
      "blogPages": 1,
      "blogPosts12mo": 1,
      "mostRecentDays": 93,
      "words": 1029,
      "bytes": 218290,
      "superlatives": 3,
      "numericClaims": 0
    },
    {
      "positions": "8-12",
      "n": 109,
      "rating": 4.9,
      "reviews": 548,
      "pages": 74,
      "blogPages": 1,
      "blogPosts12mo": 1,
      "mostRecentDays": 198,
      "words": 1216,
      "bytes": 202120,
      "superlatives": 3,
      "numericClaims": 1
    },
    {
      "positions": "13-20",
      "n": 176,
      "rating": 4.9,
      "reviews": 448,
      "pages": 72,
      "blogPages": 1,
      "blogPosts12mo": 1,
      "mostRecentDays": 83,
      "words": 989,
      "bytes": 191569,
      "superlatives": 3,
      "numericClaims": 0
    }
  ],
  "thresholds": {
    "reviews": {
      "n": 437,
      "shareBelow": {
        "50": 2,
        "100": 4,
        "200": 11,
        "300": 21,
        "500": 46,
        "1000": 83,
        "2000": 98
      }
    },
    "pages": {
      "n": 352,
      "shareBelow": {
        "10": 3,
        "25": 11,
        "50": 30,
        "100": 62,
        "200": 80,
        "500": 95
      }
    },
    "blogPages": {
      "n": 352,
      "shareBelow": {
        "1": 39,
        "5": 70,
        "10": 73,
        "25": 81,
        "50": 86
      }
    },
    "superlatives": {
      "n": 417,
      "shareBelow": {
        "1": 15,
        "3": 47,
        "5": 71
      }
    },
    "numericClaims": {
      "n": 417,
      "shareBelow": {
        "1": 53,
        "3": 89
      }
    },
    "rating": {
      "n": 437,
      "shareAtLeast": {
        "5": 13,
        "4.5": 95,
        "4.7": 87,
        "4.8": 79,
        "4.9": 61
      }
    }
  },
  "derived": {
    "blogLinkButEmpty": {
      "yes": 112,
      "outOf": 225
    },
    "superlativesWithoutNumbers": {
      "yes": 87,
      "outOf": 417
    },
    "chainLocations": {
      "yes": 3,
      "outOf": 437
    }
  },
  "contrast": {
    "rating": {
      "topMedian": 4.9,
      "topN": 66,
      "bottomMedian": 4.9,
      "bottomN": 132
    },
    "reviews": {
      "topMedian": 769,
      "topN": 66,
      "bottomMedian": 447,
      "bottomN": 132
    },
    "pages": {
      "topMedian": 80,
      "topN": 59,
      "bottomMedian": 72,
      "bottomN": 105
    },
    "blogPages": {
      "topMedian": 1,
      "topN": 59,
      "bottomMedian": 1,
      "bottomN": 105
    },
    "blogPosts12mo": {
      "topMedian": 1,
      "topN": 38,
      "bottomMedian": 1,
      "bottomN": 52
    },
    "mostRecentDays": {
      "topMedian": 170,
      "topN": 38,
      "bottomMedian": 85,
      "bottomN": 52
    },
    "words": {
      "topMedian": 1165,
      "topN": 61,
      "bottomMedian": 955,
      "bottomN": 128
    },
    "bytes": {
      "topMedian": 219350,
      "topN": 61,
      "bottomMedian": 175904,
      "bottomN": 128
    },
    "superlatives": {
      "topMedian": 2,
      "topN": 61,
      "bottomMedian": 2,
      "bottomN": 128
    },
    "numericClaims": {
      "topMedian": 1,
      "topN": 61,
      "bottomMedian": 0,
      "bottomN": 128
    }
  },
  "limits": [
    "Results were captured once on 2026-09-02, from one location setting per market. Rankings vary by device, personalization and time.",
    "Rank is the position within this query only. It is not a measure of overall visibility.",
    "Page count comes from published sitemaps. Sites without a sitemap are reported as missing, never as zero.",
    "Blog volume counts sitemap URLs under a blog, news, article or resources path; sites publishing under other paths are undercounted.",
    "Recency uses the sitemap lastmod value, a modification date rather than strictly a publication date.",
    "Claim counts come from homepage text only and count phrases, not intent.",
    "Ratings and review counts are as displayed by Google Maps at capture time and can lag the business's actual reviews.",
    "Correlation is not causation. A relationship here describes what co-occurs among businesses that already rank, not what causes ranking.",
    "Businesses appearing in more than one market are counted once."
  ]
}