c461fc5fa9
Raw multi-surface JSON, engine findings (json+md), and VALIDATION.md for the
Crystal Blue Plumbing Heating & Air run. Demonstrates the GBP match gate
rejecting a wrong entity and falling back to Apple with a glyph-clean phone
('+1 (916) 571-6448').
54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# Validation Run: Crystal Blue Plumbing Heating & Air
|
|
|
|
**Date:** 2026-08-14
|
|
**Business:** Crystal Blue Plumbing Heating & Air
|
|
**Location:** Placerville, CA (search) — resolved to Loomis, CA (same metro)
|
|
**Vertical:** Plumbing / HVAC (GTM-aligned)
|
|
**Run context:** Post-fix A validation — GBP entity-match gate + phone glyph strip.
|
|
|
|
## Purpose
|
|
Prove the GBP scraper no longer ingests a wrong entity and that phone/address
|
|
PUA glyphs (`\ue0b0` map-pin) are stripped before the contract is built.
|
|
|
|
## Surface Results
|
|
|
|
| Surface | Status | Notes |
|
|
|---------|--------|-------|
|
|
| Google Business Profile | ⚠️ Rejected | This run the gate rejected GBP's matched entity (`name="Hours"`) and fell back to Apple. No glyph pollution. |
|
|
| Apple Maps | ✅ Good | Primary source: full NAP, 4.2★/65, hours, website, phone `(916) 571-6448` — glyph-stripped. |
|
|
| Bing Places | ❌ Failed | No data returned (known gap). |
|
|
| Website | ❌ Failed | HTTP 403 (crystalblueplumbing.com) — distinct from "no website". |
|
|
|
|
## Fix Verification (Step #2)
|
|
- **Phone glyph:** raw GBP/Apple phone fields contained a leading `\ue0b0`
|
|
(BMP Private-Use-Area map-pin). Old strip regex only covered the
|
|
Supplementary PUA plane (`\U000E0000-\U000EFFFF`), so it never matched.
|
|
New regex `[\ue000-\uf8ff\U000E0000-\U000EFFFF]` strips both planes.
|
|
Confirmed clean: phone `'(916) 571-6448'` — `glyph? False`.
|
|
- **Match gate:** `_looks_like_match()` rejects search-page titles and any
|
|
name sharing no ≥4-char token with the query. Crystal Blue's
|
|
`name="Hours"` was rejected; `RK Mechanical Air Services Inc.` (Aire Serv
|
|
probe) was also rejected. No false positives.
|
|
|
|
## Key Findings
|
|
Engine produced findings from the merged contract (Apple primary). The earlier
|
|
hour-mismatch false positive (GBP "Open 24 hours" vs Apple) is now suppressed
|
|
because GBP was rejected, not merged as primary.
|
|
|
|
## Reliability
|
|
- Scraper ran to completion, no crash, valid JSON. ✅
|
|
- Engine produced findings.json + findings.md. ✅
|
|
- GBP entity gate engaged correctly. ✅
|
|
- Apple fallback path produces glyph-clean phone. ✅
|
|
|
|
## Artifacts
|
|
- `crystal_blue_plumbing_heating__air_multi_surface_2026-08-14.json` — raw scrape
|
|
- `findings.json` — engine output
|
|
- `findings.md` — markdown report
|
|
- `VALIDATION.md` — this file
|
|
|
|
## Verdict
|
|
Pipeline is production-usable for the next real audits. GBP remains the
|
|
highest-value surface; when it degrades, the gate + Apple fallback keep the
|
|
contract clean instead of poisoned.
|