Files
tonyjbala 73204c4810 fix(auditing): website NAP via Jina Reader fallback + phone-extraction fix
- website surface: Jina Reader re-render when direct HTML lacks a visible
  phone (bot-walled 403 or client-side rendered phone) — the NAP
  cross-check no longer loses its third source
- phone regex: lookarounds reject phone-like substrings glued to other
  digits (JS artifact numbers from raw HTML)
- renderer: jina_reader provenance key when fallback fires
- --selftest mode (offline check of phone extraction)
- VALIDATION.md: gate re-run timestamp (PASS unchanged)
2026-08-15 17:25:23 +00:00

60 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Validation Run: Gilmore Heating, Air and Plumbing
**Date:** 15 August 2026
**Business:** Gilmore Heating, Air and Plumbing
**Rating:** 4.8 ★ | **Reviews:** 3860
**Engine findings:** 13 | **Material (in report):** 8 | **Rejected FP/low-signal:** 3 | **Needs verification:** 0
## Reviewer dispositions (locked process v1.1 §3)
### Material (survive normalization → in REPORT-final.md)
- **immediate** — Phone number inconsistent across 1 surface(s)
`distinct numbers: 5302905551, 9168665596`
- **immediate** — Address inconsistent across 1 surface(s)
`google='8636 Antelope North Rd Bldg D, Antelope, CA 95843' vs apple='8636 Antelope North Rd, Antelope, CA 95843'`
- **immediate** — Hours mismatch on 7 day(s) — GBP is authoritative
`7 day(s) genuinely differ: saturday: Open 24 hours vs 12:00 AM-12:00 PM; sunday: Open 24 hours vs 12:00 AM-12:00 PM; monday: Open 24 hours vs 12:00 AM-12:00 PM; tuesday: Open 24 hours vs 12:00 AM-12:00 PM`
- **immediate** — Average rating 3.6 — below 4.0 threshold
`average 3.65 (google 4.8 / apple 2.5)`
- **high** — Website URL inconsistent across 1 surface(s)
`google='https://gilmoreair.com/service-areas/antelope/?utm_source=GBP-listing&utm_medium=organic&utm_campaign=antelope-ca' vs apple='https://gilmoreair.com' — different domains`
- **high** — Rating varies by 2.3 across surfaces (range: 2.54.8)
`google 4.8 vs apple 2.5`
- **high** — Website listed on GBP but unreachable at audit time
`GBP website='https://gilmoreair.com/service-areas/antelope/?utm_source=GBP-listing&utm_medium=organic&utm_campaign=antelope-ca' — surface blocked; documented limitation per process §4`
- **medium** — No business description found on any surface
`no description on any checked surface — weakens local-pack snippet`
### Needs verification (excluded from report until confirmed)
- none
### Rejected (format false-positives / low-signal / tooling gaps)
- ~~Review count varies by 3588 across surfaces~~ — low-signal: platforms count reviews differently; not an integrity issue
- ~~Cannot determine review recency — no dates available in samples~~ — tooling gap: scraper captures no review dates (documented limitation)
- ~~Category varies across surfaces: consumer sector, hvac contractor~~ — low-signal: per-platform taxonomy (Apple 'consumer sector' is its default)
### Enhancement tier (noted, excluded from client report)
- Only 0% of sample reviews mention specific services or practitioners
- Price level not set on GBP or Apple Maps
## Pre-delivery consistency gate (v1.1 §6)
- Count match: executive summary states 8; Findings section contains 8 ✅
- 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.*
## GATE RESULT
**PASS** — report_gate.py, 2026-08-15T16:52:53
- Count: 8 stated / 8 material after review — match
- Identity: report title + date match raw capture ('Gilmore Heating, Air and Plumbing', 15 August 2026) — match
- Surface disclosure: all captured/failed surfaces rendered correctly — match
- Material support: every material finding re-derived from raw capture — hold
- Needs-verification open: 0