Disclosure. Meraki Agency sells marketing and front-desk services to the businesses it grades. The score is Meraki Agency's opinion, based only on the inputs listed on this page. Every report shows each input beside the score with its source and the time it was fetched.
The two scores and the headline
- Online Presence (0–100): how a business shows up on Google, its reviews and its website.
- Operational Responsiveness (0–100): what happens when a customer calls, texts or writes.
- Headline = the lower of the two, not the average. Until a business's responsiveness tests have run, the headline is the Online Presence score and the report says so.
- Each component is rated green (full points), amber (half points) or red (no points). A pillar score is points awarded ÷ points possible on the components we could measure, × 100, rounded to the nearest whole number.
When something could not be measured
If a source fails, a website blocks our crawler, a request times out, or data is incomplete, the component is shown as could not be measured. It is left out of the score entirely; it is never counted as zero and never described as poor. Components marked "not collected yet" below are part of the published rubric but are left out of every score until we collect their inputs.
Online Presence
| Component | Group | Rule (green / amber / red) | Med spa | HVAC / roofing / plumbing | Auto repair |
|---|---|---|---|---|---|
| Rating | Reviews | ≥4.8 / 4.5–4.79 / <4.5 | 10 | 10 | 10 |
| Review count | Reviews | ≥100 / 20–99 / <20 per location | 8 | 8 | 8 |
| Review velocity (last 90 days) | Reviews | Newest review ≤14 days and ≥6 in 90 days / newest ≤60 days / older | 8 | 8 | 8 |
| Owner response rate (last 10 reviews) | Reviews | 10 of 10 within 3 days / 1–9 / 0 (fewer than 10 reviews: all of them) | 5 | 4 | 6 |
| GBP completeness (not collected yet) | Profile completeness | Primary category exact-match, ≥3 secondaries, hours, description, services with prices, attributes, booking link: all / most / missing primary or hours | 8 | 8 | 8 |
| GBP photos and posts (not collected yet) | Profile completeness | ≥50 photos and a post in last 30 days / ≥20 photos / fewer | 6 | 4 | 4 |
| Map-pack rank (5 terms, 5×5 grid) | Map pack rank | Top 3 in ≥60% of points / top 10 / outside | 10 | 12 | 10 |
| Website speed (PSI mobile Performance) | Website | ≥80 / 50–79 / <50 | 5 | 5 | 5 |
| Mobile usability and SSL | Website | Pass / minor / fail (HTTPS with no mixed content and Best Practices ≥80 / HTTPS only / no HTTPS) | 3 | 3 | 3 |
| Contact and booking friction | Website | Click-to-call in header, live booking widget, form ≤4 fields / two of three / fewer | 10 | 8 | 10 |
| Schema markup | Website | LocalBusiness subtype, phone, hours, rating present / partial / none | 3 | 3 | 3 |
| NAP consistency (Google, Yelp, Facebook, site) | Listings consistency | All match / one mismatch / two or more | 4 | 5 | 5 |
| Directory presence (vertical set) (not collected yet) | Listings consistency | All required / most / missing one required | 5 | 4 | 6 |
| Social presence (not collected yet) | Profile completeness | Instagram active in 30 days or Facebook page active / present / none | 6 | 2 | 2 |
| Paid presence (Google Ads, LSA where eligible, Meta) (not collected yet) | Map pack rank | Running where eligible / one channel / none | 4 | 8 | 5 |
| Measurement readiness (GA4, Ads tag, call tracking) | Website | All three / one or two / none | 2 | 5 | 4 |
Group weights shown on the results page are the sum of their components' weights:
- Map pack rank: Med spa 14, HVAC / roofing / plumbing 20, Auto repair 15
- Reviews: Med spa 31, HVAC / roofing / plumbing 30, Auto repair 32
- Profile completeness: Med spa 20, HVAC / roofing / plumbing 14, Auto repair 14
- Website: Med spa 23, HVAC / roofing / plumbing 24, Auto repair 25
- Listings consistency: Med spa 9, HVAC / roofing / plumbing 9, Auto repair 11
Compliance items (flagged, not scored)
These are reported as flags for the owner to review. They never add or remove points.
- Med spa: Medical director named; testimonial disclaimers and compensation disclosures present
- HVAC / roofing / plumbing (hvac, plumbing): License number on site (HVAC TDLR, plumbing RMP)
- HVAC / roofing / plumbing (roofing): No deductible-waiver language (roofing)
- Auto repair: Warranty terms stated (months, miles)
Operational Responsiveness
| Component | Group | Rule (green / amber / red) | Med spa | HVAC / roofing / plumbing | Auto repair |
|---|---|---|---|---|---|
| Business-hours call answered by a human | Phone answer | Answered ≤30 s / answered >30 s or IVR to human / voicemail or no answer | 25 | 25 | 25 |
| After-hours call handling | Phone answer | Human or AI answers, or voicemail that states next steps and a text follows / voicemail only / rings out | 10 | 20 | 10 |
| Missed-call text-back | Missed-call text-back | Text within 2 min / within 10 min / none | 15 | 15 | 15 |
| Web or chat inquiry first human reply | Web form reply | ≤5 min / ≤1 hour / >1 hour or never | 20 | 15 | 15 |
| Online booking exists and completes | Online booking | Live widget with real availability / request form only / none | 15 | 10 | 15 |
| Quote or consultation path clarity | Online booking | Price ranges or "starting at" shown and consult bookable / one of two / neither | 10 | 5 | 10 |
| Speed to lead on paid channel (opt-in only) | Web form reply | Not scored pre-consent; shown as "unlock" | 0 (not scored) | 5 (not scored) | 5 (not scored) |
| Review reply speed (last 10) | Web form reply | Already in presence pillar; cross-reference only | 5 (not scored) | 5 (not scored) | 5 (not scored) |
Group weights shown on the results page are the sum of their components' weights:
- Phone answer: Med spa 35, HVAC / roofing / plumbing 45, Auto repair 35
- Missed-call text-back: Med spa 15, HVAC / roofing / plumbing 15, Auto repair 15
- Web form reply: Med spa 25, HVAC / roofing / plumbing 25, Auto repair 25
- Online booking: Med spa 25, HVAC / roofing / plumbing 15, Auto repair 25
Inputs and where they come from
| Input | Source |
|---|---|
ads.google_active |
SerpApi: Google Ads Transparency Center and Local Services Ads results |
ads.lsa_present |
SerpApi: Google Ads Transparency Center and Local Services Ads results |
ads.meta_active |
Not collected yet |
dir.required_present |
Not collected yet |
dir.required_total |
Not collected yet |
gbp.attributes |
Not collected yet |
gbp.book_online_url |
DataForSEO Google My Business Info |
gbp.description |
Not collected yet |
gbp.hours |
Google Places API (New), Place Details |
gbp.last_post_age_days |
Not collected yet |
gbp.newest_review_age_days |
Google reviews via Apify (fallback Outscraper), up to 200 newest |
gbp.owner_response_median_hours |
Google reviews via Apify (fallback Outscraper), up to 200 newest |
gbp.owner_response_rate_last10 |
Google reviews via Apify (fallback Outscraper), up to 200 newest |
gbp.primary_type |
Google Places API (New), Place Details |
gbp.rating |
Google Places API (New), Place Details |
gbp.review_count |
Google reviews via Apify (fallback Outscraper), up to 200 newest |
gbp.review_velocity_90d |
Google reviews via Apify (fallback Outscraper), up to 200 newest |
gbp.services |
Not collected yet |
gbp.total_photos |
DataForSEO Google My Business Info |
gbp.types |
Google Places API (New), Place Details |
nap.site_match |
Comparison of Google's listing with the website's own markup and text |
rank.grid_top10_share |
DataForSEO Google Maps results, 5×5 grid at 1-mile spacing, 5 search terms |
rank.grid_top3_share |
DataForSEO Google Maps results, 5×5 grid at 1-mile spacing, 5 search terms |
shop.call_after_hours |
Our own content-free test contacts (one call, one web inquiry; no recording) |
shop.call_business_hours |
Our own content-free test contacts (one call, one web inquiry; no recording) |
shop.online_booking |
Our own content-free test contacts (one call, one web inquiry; no recording) |
shop.textback |
Our own content-free test contacts (one call, one web inquiry; no recording) |
shop.web_inquiry |
Our own content-free test contacts (one call, one web inquiry; no recording) |
site.ads_tag |
Our crawl of the homepage and up to 3 linked pages |
site.booking_widget_vendor |
Our crawl of the homepage and up to 3 linked pages |
site.call_tracking |
Our crawl of the homepage and up to 3 linked pages |
site.facebook_link |
Our crawl of the homepage and up to 3 linked pages |
site.forms |
Our crawl of the homepage and up to 3 linked pages |
site.ga4 |
Our crawl of the homepage and up to 3 linked pages |
site.https_ok |
Google PageSpeed Insights (lab test, mobile and desktop) |
site.instagram_link |
Our crawl of the homepage and up to 3 linked pages |
site.mixed_content |
Google PageSpeed Insights (lab test, mobile and desktop) |
site.price_ranges_shown |
Our crawl of the homepage and up to 3 linked pages |
site.psi_best_practices |
Google PageSpeed Insights (lab test, mobile and desktop) |
site.psi_mobile_perf |
Google PageSpeed Insights (lab test, mobile and desktop) |
site.schema_hours |
Our crawl of the homepage and up to 3 linked pages |
site.schema_localbusiness |
Our crawl of the homepage and up to 3 linked pages |
site.schema_phone |
Our crawl of the homepage and up to 3 linked pages |
site.schema_rating |
Our crawl of the homepage and up to 3 linked pages |
site.tel_links |
Our crawl of the homepage and up to 3 linked pages |
social.active_30d |
Not collected yet |
Competitors
We compare each business with three nearby businesses of the same Google category that are open and have at least 10 reviews, chosen by log10(review count + 1) × rating within 5 miles (10 miles if fewer than three qualify). We compare public listing signals only, and we never run responsiveness tests on competitors. Anything we did not fetch for a competitor is shown as not fetched, never as zero.
Disputes and rescans
If you think an input is wrong, or your site blocked our scan, ask for a rescan from the contact page. We respond within two business days and show the new result with its own fetch time.
Changelog
- 1.0.0 (2026-10-17): Initial transcription of the report's rubric tables (section 3.7).