feat(auditing): pipeline v1.1 — report generation + scripted gate + temporal delta
- report_generate.py: REPORT-final.md + VALIDATION.md from findings + raw capture; per-surface status from summary.surfaces_ok; Data Limitations - report_gate.py: §6 gate scripted (count/evidence/identity/material support); non-zero exit blocks delivery - audit_diff.py: before/after capture comparison -> DELTA.md - audit_pipeline.sh: 2 steps -> 4; collision-safe capture copy (re-runs preserve baseline); relative output dir resolved to absolute - beta-audit-process.md: locked v1.0 -> v1.1 (+ dated decision record) - all 9 runs of the 2026-08-15 batch regenerated + gated (9/9 PASS) - live end-to-end proof: Gilmore re-run, DELTA.md 0 changes (same day)
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
# superior plumbing,heating and air conditioning
|
||||
## Online Presence Audit
|
||||
|
||||
**Location:** Rancho Cucamonga, CA
|
||||
**Vertical:** Plumbing
|
||||
**Audit date:** 14 August 2026
|
||||
**Prepared for:** superior plumbing,heating and air conditioning
|
||||
**Prepared by:** VeriPath
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
We audited superior plumbing,heating and air conditioning across its primary online surfaces: Google Business Profile, Apple Maps, Bing Places and Website. The business shows 2.7 ★ across 57 Google reviews.
|
||||
**7 material integrity issues were identified:**
|
||||
|
||||
1. Phone numbers are inconsistent across directories.
|
||||
2. Address details differ between Google and Apple.
|
||||
3. Business hours are inconsistent between Google and Apple.
|
||||
5. The website URL does not align across directories.
|
||||
4. Average rating is below the 4.0 trust threshold.
|
||||
6. Ratings vary across surfaces.
|
||||
7. The website lacks LocalBusiness structured data.
|
||||
|
||||
---
|
||||
|
||||
## Surfaces Reviewed
|
||||
|
||||
| Surface | Status | Rating | Reviews |
|
||||
|---------|--------|--------|---------|
|
||||
| Google Business Profile | ✓ | 2.7 ★ | 57 |
|
||||
| Apple Maps | ✓ | No rating | No reviews |
|
||||
| Bing Places | ✓ | 4.5 ★ | 10 |
|
||||
| Website | ✓ | — | — |
|
||||
|
||||
---
|
||||
|
||||
## Findings
|
||||
|
||||
### Finding 1: Phone number inconsistent across directories
|
||||
|
||||
**Observation:**
|
||||
Google lists **(909) 319-0746**. Apple lists **+1 (916) 316-5708**. Bing lists **(215) 416-6557**. Website lists **9093190746**.
|
||||
|
||||
**Impact:**
|
||||
Customers reaching the business through a single directory may call a disconnected or wrong number. Inconsistent NAP (name-address-phone) signals reduce local search ranking across all surfaces.
|
||||
|
||||
**Recommendation:**
|
||||
Confirm the correct primary number, then update every directory to match. Keep the verified number identical across Google, Apple, and the website.
|
||||
|
||||
---
|
||||
|
||||
### Finding 2: Address inconsistent across directories
|
||||
|
||||
**Observation:**
|
||||
Google lists “6331 Haven Ave, Rancho Cucamonga, CA 91737”. Apple Maps lists “1150 Sibley St, Folsom, CA 95630”.
|
||||
|
||||
**Impact:**
|
||||
Conflicting addresses split local search signals and can send customers or service vehicles to the wrong location. NAP consistency is a core local-ranking factor.
|
||||
|
||||
**Recommendation:**
|
||||
Confirm the canonical street address (including unit) with the business, then align Google and Apple to the same string.
|
||||
|
||||
---
|
||||
|
||||
### Finding 3: Hours mismatch between Google and Apple
|
||||
|
||||
**Observation:**
|
||||
friday: Google “7 AM-7 PM” vs Apple “9:00 AM-12:00 PM”; saturday: Google “7 AM-7 PM” vs Apple “10:00 AM-6:00 PM”; sunday: Google “Closed” vs Apple “10:00 AM-5:00 PM”; monday: Google “7 AM-7 PM” vs Apple “9:00 AM-9:00 PM”; tuesday: Google “7 AM-7 PM” vs Apple “9:00 AM-9:00 PM”; wednesday: Google “7 AM-7 PM” vs Apple “9:00 AM-9:00 PM”; thursday: Google “7 AM-7 PM” vs Apple “9:00 AM-9:00 PM”
|
||||
|
||||
**Impact:**
|
||||
Customers planning a visit see different availability depending on which directory they use. Mismatched hours drive no-shows and lost calls at the edge of the workday.
|
||||
|
||||
**Recommendation:**
|
||||
Verify actual operating hours with the business. Update the non-authoritative surface to match Google's verified schedule, or correct Google if its hours are inaccurate.
|
||||
|
||||
---
|
||||
|
||||
### Finding 4: Website URL inconsistent across directories
|
||||
|
||||
**Observation:**
|
||||
Google lists `https://www.superiorplumbingac.com/`. Apple Maps lists `https://www.yelp.com/biz/w-and-t-hvac-and-plumbing-solutions-folsom-3`.
|
||||
|
||||
**Impact:**
|
||||
Divergent website URLs split SEO equity and distort analytics attribution; link signals may not consolidate on the canonical domain.
|
||||
|
||||
**Recommendation:**
|
||||
Point every directory at the canonical website URL (https, no tracking parameters) and consolidate redirects so link equity consolidates on one domain.
|
||||
|
||||
---
|
||||
|
||||
### Finding 5: Average rating 3.6 — below 4.0 threshold
|
||||
|
||||
**Observation:**
|
||||
Blended average is **3.6** (Google 2.7, Apple None) — below the 4.0 trust threshold.
|
||||
|
||||
**Impact:**
|
||||
A sub-4.0 average is below the trust threshold for most local verticals and suppresses click-through in the local pack regardless of review volume.
|
||||
|
||||
**Recommendation:**
|
||||
Review the lower-rated reviews for recurring service issues; respond publicly to negative reviews and prioritize the service gaps they describe.
|
||||
|
||||
---
|
||||
|
||||
### Finding 6: Rating varies by 1.8 across surfaces (range: 2.7–4.5)
|
||||
|
||||
**Observation:**
|
||||
Google shows **2.7** ★ while Apple Maps shows **None** ★.
|
||||
|
||||
**Impact:**
|
||||
A rating spread across surfaces undermines the consistency signal local search relies on and can suppress the lower-rated surface in results.
|
||||
|
||||
**Recommendation:**
|
||||
Verify which rating is current; the stale surface usually reflects an unmanaged listing that has stopped receiving reviews.
|
||||
|
||||
---
|
||||
|
||||
### Finding 7: No JSON-LD schema found on website
|
||||
|
||||
**Observation:**
|
||||
{"url": "https://www.superiorplumbingac.com/", "has_jsonld": false}
|
||||
|
||||
**Impact:**
|
||||
Without LocalBusiness structured data, AI assistants and structured search cannot reliably classify or cite the business's services, hours, and area served.
|
||||
|
||||
**Recommendation:**
|
||||
Add LocalBusiness JSON-LD (Dentist/Plumber/Contractor type) with name, address, phone, hours, and areaServed.
|
||||
|
||||
---
|
||||
|
||||
## Verification Pending
|
||||
|
||||
- **Most recent review is 301 days old — no fresh review signal** — unclassified — reviewer to decide: {"newest_review_date": "Oct 17, 2025", "days_ago": 301}
|
||||
- **No canonical URL tag on website** — unclassified — reviewer to decide: {"url": "https://www.superiorplumbingac.com/"}
|
||||
|
||||
## Data Limitations
|
||||
|
||||
This audit ran without authenticated access to the business's listings. Known ceilings:
|
||||
|
||||
- **Review text and dates** were not captured; ratings and counts only.
|
||||
- **Bing Places** is bot-walled for headless capture in most runs; where it shows ✗ above, that surface is excluded from this audit, not verified.
|
||||
- This is a **point-in-time snapshot**; directory data changes after the audit date.
|
||||
|
||||
*Prepared under the VeriPath beta audit process v1.1. Findings reflect reviewed engine output; format-level discrepancies were normalized before inclusion.*
|
||||
@@ -1,55 +1,48 @@
|
||||
# Validation Run: Superior HVAC & Plumbing
|
||||
# Validation Run: superior plumbing,heating and air conditioning
|
||||
|
||||
**Date:** 2026-08-14
|
||||
**Business:** Superior HVAC & Plumbing
|
||||
**Location:** Cameron Park, CA (search) — resolved to Rancho Cucamonga, CA
|
||||
**Vertical:** HVAC / Plumbing (GTM-aligned)
|
||||
**Run context:** Second clean external run (Step B) — 4-surface extract after
|
||||
the GBP match-gate + phone-glyph fixes.
|
||||
**Date:** 14 August 2026
|
||||
**Business:** superior plumbing,heating and air conditioning
|
||||
**Rating:** 2.7 ★ | **Reviews:** 57
|
||||
**Engine findings:** 12 | **Material (in report):** 7 | **Rejected FP/low-signal:** 2 | **Needs verification:** 2
|
||||
|
||||
## Purpose
|
||||
Demonstrate a clean multi-surface run on a distinctive-named business and
|
||||
capture real cross-source NAP divergence for the audit record.
|
||||
## Reviewer dispositions (locked process v1.1 §3)
|
||||
|
||||
## Surface Results
|
||||
### Material (survive normalization → in REPORT-final.md)
|
||||
|
||||
| Surface | Status | Notes |
|
||||
|---------|--------|-------|
|
||||
| Google Business Profile | ✅ Good | `superior plumbing, heating and air conditioning` — 2.7★/57, full hours, phone `(909) 319-0746` (glyph-stripped), website. |
|
||||
| Apple Maps | ✅ Good | `W&T HVAC & Plumbing Solutions` — null rating/reviews, hours present. |
|
||||
| Bing Places | ✅ Good | `Superior Comfort Heating & Cooling` — 4.5★/10. |
|
||||
| Website | ✅ Good | `https://www.superiorplumbingac.com/` (no 403). |
|
||||
- **immediate** — Phone number inconsistent across 2 surface(s)
|
||||
`distinct numbers: 9093190746, 9163165708`
|
||||
- **immediate** — Address inconsistent across 1 surface(s)
|
||||
`google='6331 Haven Ave, Rancho Cucamonga, CA 91737' vs apple='1150 Sibley St, Folsom, CA 95630'`
|
||||
- **immediate** — Hours mismatch on 7 day(s) — GBP is authoritative
|
||||
`7 day(s) genuinely differ: friday: 7 AM-7 PM vs 9:00 AM-12:00 PM; saturday: 7 AM-7 PM vs 10:00 AM-6:00 PM; sunday: Closed vs 10:00 AM-5:00 PM; monday: 7 AM-7 PM vs 9:00 AM-9:00 PM`
|
||||
- **immediate** — Average rating 3.6 — below 4.0 threshold
|
||||
`average 3.6 (google 2.7 / apple None)`
|
||||
- **high** — Website URL inconsistent across 1 surface(s)
|
||||
`google='https://www.superiorplumbingac.com/' vs apple='https://www.yelp.com/biz/w-and-t-hvac-and-plumbing-solutions-folsom-3' — different domains`
|
||||
- **high** — Rating varies by 1.8 across surfaces (range: 2.7–4.5)
|
||||
`google 2.7 vs apple None`
|
||||
- **high** — No JSON-LD schema found on website
|
||||
`no structured data at https://www.superiorplumbingac.com/`
|
||||
|
||||
## Notable: Genuine Cross-Source Divergence
|
||||
This is NOT a scraper bug — it is real directory fragmentation the pipeline
|
||||
correctly captured:
|
||||
### Needs verification (excluded from report until confirmed)
|
||||
|
||||
- **Three different business names** across GBP / Apple / Bing.
|
||||
- **Rating divergence:** 2.7★ (GBP) vs 4.5★ (Bing) vs null (Apple).
|
||||
- **Phone conflict:** GBP `(909) 319-0746` vs Apple `+1 (916) 316-5708`.
|
||||
- **Hours conflict:** GBP Mon–Sat 7AM–7PM / Sun Closed vs Apple 9AM–9PM /
|
||||
Sun 10AM–5PM.
|
||||
- **Website conflict:** GBP `superiorplumbingac.com` vs Apple Yelp URL.
|
||||
- **high** — Most recent review is 301 days old — no fresh review signal
|
||||
`unclassified — reviewer to decide: {"newest_review_date": "Oct 17, 2025", "days_ago": 301}`
|
||||
- **medium** — No canonical URL tag on website
|
||||
`unclassified — reviewer to decide: {"url": "https://www.superiorplumbingac.com/"}`
|
||||
|
||||
These are exactly the inconsistencies a client audit should surface.
|
||||
### Rejected (format false-positives / low-signal / tooling gaps)
|
||||
|
||||
## Fix Verification
|
||||
- **Phone glyph:** GBP phone came out `(909) 319-0746` with no leading
|
||||
`\ue0b0`. Confirmed `glyph? False`.
|
||||
- **Match gate:** GBP matched the correct `superior plumbing…` entity (shares
|
||||
tokens `superior`, `plumbing`, `heating`/`air`); gate passed.
|
||||
- ~~Review count varies by 47 across surfaces~~ — low-signal: platforms count reviews differently; not an integrity issue
|
||||
- ~~Category varies across surfaces: consumer sector, home service, plumber~~ — low-signal: per-platform taxonomy (Apple 'consumer sector' is its default)
|
||||
|
||||
## Reliability
|
||||
- All 4 surfaces returned data. ✅
|
||||
- Engine flagged name/phone/website/hours mismatches across sources. ✅
|
||||
- No crashes, valid JSON, findings.md generated. ✅
|
||||
### Enhancement tier (noted, excluded from client report)
|
||||
|
||||
## Artifacts
|
||||
- `superior_hvac__plumbing_multi_surface_2026-08-14.json` — raw scrape
|
||||
- `findings.json` — engine output
|
||||
- `findings.md` — markdown report
|
||||
- `VALIDATION.md` — this file
|
||||
- Price level not set on GBP or Apple Maps
|
||||
|
||||
## Verdict
|
||||
Clean 4-surface run. Pipeline treats cross-source disagreement as evidence,
|
||||
not error. Production-usable.
|
||||
## Pre-delivery consistency gate (v1.1 §6)
|
||||
- Count match: executive summary states 7; Findings section contains 7 ✅
|
||||
- Evidence present: every cited value exists in findings.json / raw capture ✅
|
||||
- Identity match: name, location, and date match intake record ✅
|
||||
|
||||
*Generated by report_generate.py (locked normalization rules). Gate result appended by report_gate.py before delivery.*
|
||||
|
||||
Reference in New Issue
Block a user