Summit Ridge Roofing — Phoenix, AZ
Sample report. The business below is fictional and every figure is illustrative. The structure, the checks and the evidence standard are exactly what our audit engine produces for a real business.
At a glance
Every bar below is a measured fact with a citation, a “based on what?” and a way to verify it yourself in under 60 seconds. A score that can’t do all three doesn’t get printed.
212 Google reviews at 4.8★ — 4.7× the median of six named local competitors.
Inquiries after 6 PM have nowhere to land: a phone that rings out and one form. No chat, no text-back.
Not in the top 20 for your money keyword — while 6,600 people a month search it. Peer median rank: 9.
Lighthouse performance, one controlled run. Mobile visitors feel this.
SPF ✓ · DKIM ✓ · DMARC ✗ — the domain is spoofable, and bulk-sender rules punish it.
Our test inquiry, placed at 7:42 PM, sat 14 hours before the first human reply.
Quotes get one touch, then silence — no second contact in the 7 days after our test inquiry.
Quoting, scheduling and every exception route through one person. From your own 20-minute intake.
The finding that matters most
You lead your market on reputation — 212 Google reviews, 4.7× the median of six named local competitors — but after hours there is no way to reach you except a phone that rings out and a single form.
- Why it costs money now: a homeowner comparing roofers at 9 PM finds your 212 reviews, lands on your site, and meets a “call us” button outside business hours. Roofing is urgent by nature — the lead goes to whoever answers first.
- We tested it: a real inquiry through your form at 7:42 PM got its first human reply at 9:54 the next morning. 14 hours and 12 minutes. Then one touch, and silence for the rest of the week.
- Verify in 60 seconds: Google “Summit Ridge Roofing” and count the reviews. Then open the site tonight after 6 PM and try to start a conversation without dialing the phone.
- Confidence: high. The absence of chat was confirmed by two independent layers — a rendered-DOM crawl and a vision pass over a real-browser screenshot. One layer alone is not enough for us to claim an absence.
Your market, named
Not a national industry report — the actual competitors a customer sees when they search your market.
| Business | Reviews | Rating |
|---|---|---|
| Summit Ridge Roofing (you) | 212 | 4.8★ |
| Sunward Roofing Works | 88 | 4.9★ |
| Mesa Verde Roof Co. | 61 | 5.0★ |
| Ironwood Roofing Systems | 54 | 4.6★ |
| Cholla Roofing & Repair | 37 | 4.8★ |
| Ocotillo Roof Pros | 19 | 4.4★ |
| Ridgeline Roofing AZ | 12 | 5.0★ |
Peer median: 45.5 reviews, so you sit at 4.7× the median. Your rating is at market par — the lead is volume, not stars, and we say that plainly rather than inflating it. Every listing passed our identity guard: the place has to match the business before its numbers count.
Website & deliverability
Lighthouse, one controlled run. Thresholds stated: 90+ healthy, 70–89 partial, under 70 weak.
| Lighthouse | Score | Reading |
|---|---|---|
| Performance | 61 | weak |
| Accessibility | 88 | partial |
| Best practices | 79 | partial |
| SEO | 92 | healthy |
| Email DNS | Status |
|---|---|
| MX · Google Workspace | ✓ healthy |
| SPF | ✓ present |
| DKIM | ✓ present |
| DMARC | ✗ absent |
Measured against live DNS with resolver failover — a failed lookup is recorded as unmeasured, never scored as missing. Verify in 60 seconds: run the domain through any public DMARC checker; the _dmarc record comes back empty.
What we refused to tell you
Before a finding reaches this report we attack it the way you would in the first ten seconds of reading it. Findings that fail are suppressed, not softened. This run killed two.
A rendered page can’t prove a form’s submit handler is broken; JS behaviour doesn’t serialize into a crawl. Our vision layer showed the form rendering normally. Unproven, so suppressed.
The first DNS lookup timed out. Our detectors fail closed: a failed lookup is unmeasured, not absent. Re-measured through a fallback resolver, SPF and DKIM are both present. Only the DMARC gap survived.
Most audit tools would have shipped both claims. You’d have refuted them in one click — and rightly stopped trusting the rest of the report.
See the facts behind every number
Every observed number traces to a fact below: collection layer, machine path, value and timestamp.
| Ref | Machine path | Value | Source |
|---|---|---|---|
| F001 | target.signals.audit.reviews_count | 212 | maps enrichment, identity-verified |
| F002 | reputation.review_ratio_vs_median | 4.66 | internal diagnosis |
| F003 | reputation.peer_median_reviews | 45.5 | maps enrichment, 6 named peers |
| F004 | target.signals.chat.has_any | false | rendered-DOM crawl |
| F005 | vision.homepage.chat_widget_visible | false | real-browser vision capture |
| F006 | site_quality.lighthouse.performance | 61 | Lighthouse, single controlled run |
| F007 | serp.organic.target_rank | not in top 20 | live SERP sample |
| F008 | google_ads.search_volume | 6,600/mo · $24.10 CPC | Google Ads keyword data |
| F009 | gbp.quality_score | 84/100 | GBP checklist, verified listing |
| F010 | email_domain.dmarc.present | false | live DNS, resolver failover |
| F013 | ops_probe.first_response_minutes | 852 (14h 12m) | live test inquiry |
| F014 | ops_probe.touches_in_7d | 1 | same test, 7-day window |
| F015 | owner_intake.dependency_rating | high | structured 20-minute intake |
What we did not measure, and won’t pretend to: review velocity (per-review timestamps weren’t collected, so it isn’t computable), ad budgets (transparency portals prove ad presence, never spend), and close rates or average job value (those live in your CRM and your books — sized in discovery, not guessed from outside).
Inside your report: where you’re losing inquiries today · the three highest-impact fixes, ranked · what each one is worth per month, anchored against what you’d pay to solve it another way.
A sample. Yours is built from your operation and your real digital footprint.
