394d5dae3f
- 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)
50 lines
2.5 KiB
Markdown
50 lines
2.5 KiB
Markdown
# Validation Run: Cameron Park Family Dentistry
|
|
|
|
**Date:** 15 August 2026
|
|
**Business:** Cameron Park Family Dentistry
|
|
**Rating:** 4.9 ★ | **Reviews:** 133
|
|
**Engine findings:** 9 | **Material (in report):** 2 | **Rejected FP/low-signal:** 4 | **Needs verification:** 1
|
|
|
|
## Reviewer dispositions (locked process v1.1 §3)
|
|
|
|
### Material (survive normalization → in REPORT-final.md)
|
|
|
|
- **immediate** — Phone number inconsistent across 1 surface(s)
|
|
`distinct numbers: 5306770272, 6560355451`
|
|
- **medium** — JSON-LD present but no LocalBusiness type
|
|
`schema at https://cameronparkfamilydentistry.com/ lacks LocalBusiness/Dentist/Plumber type — AI/structured data can't classify the business`
|
|
|
|
### Needs verification (excluded from report until confirmed)
|
|
|
|
- **immediate** — Hours mismatch on 5 day(s) — GBP is authoritative
|
|
`1 day(s) affected by '1800' parse artifact: friday: 8 AM-3 PM vs 8:1800 AM-3:00 PM — verify against live Apple Maps; excluded from report until confirmed`
|
|
|
|
### Rejected (format false-positives / low-signal / tooling gaps)
|
|
|
|
- ~~Address inconsistent across 1 surface(s)~~ — same street/city/zip; suite format only (# vs Ste vs Unit)
|
|
- ~~Review count varies by 120 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: dentist, health care~~ — 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 2; Findings section contains 2 ✅
|
|
- 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:27:11
|
|
|
|
- Count: 2 stated / 2 material after review — match
|
|
- Identity: report title + date match raw capture ('Cameron Park Family Dentistry', 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: 1
|