Files
veripath/docs/validation/2026-08-15-scottys-heating-air/VALIDATION.md
T
Leonard 394d5dae3f 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)
2026-08-15 16:52:23 +00:00

52 lines
2.8 KiB
Markdown
Raw 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: Scotty's Heating & Air
**Date:** 15 August 2026
**Business:** Scotty's Heating & Air
**Rating:** 4.8 ★ | **Reviews:** 180
**Engine findings:** 10 | **Material (in report):** 3 | **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: 5304297616, 5306266000`
- **medium** — Website URL carries UTM parameters on one listing
`google='https://www.scottysheatingandair.com/?utm_source=google&utm_medium=organic&utm_campaign=gbp' vs apple='https://www.scottysheatingandair.com/' — same domain, attribution/SEO split risk (Gilmore precedent: material)`
- **high** — Rating varies by 0.7 across surfaces (range: 4.14.8)
`google 4.8 vs apple 4.1`
### Needs verification (excluded from report until confirmed)
- **immediate** — Hours mismatch on 5 day(s) — GBP is authoritative
`5 day(s) affected by '1800' parse artifact: monday: 8 AM-4:30 PM vs 8:00 AM-4:1800 PM; tuesday: 8 AM-4:30 PM vs 8:00 AM-4:1800 PM; wednesday: 8 AM-4:30 PM vs 8:00 AM-4:1800 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 143 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 3; Findings section contains 3 ✅
- 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: 3 stated / 3 material after review — match
- Identity: report title + date match raw capture ("Scotty's Heating & Air", 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