3d3891aa52
- docs/operations/client-call-workflow-v2.md: PHASE 0-3 with binding rules (closed-loop rule, evidence standard, hours GATE, pricing module gate, one-pager education, cost log) - docs/operations/templates/pre-call-owner-form.md: standard 5-question form - docs/clients/phoenix-salons/call-log.md: 2026-08-17 entry; hours GATE NOT PASSED (Mon-Fri 6v7, Sat 5v6, Sun open/closed all OPEN); actions + owners - canonical record v0.1.1 -> v0.1.2: hours demoted verified/tier_1 to open/tier_2, conflict entry added, change history recorded - data-inventory-v1.md: hours status OPEN block - README.md: call-log pointer
496 lines
17 KiB
JSON
496 lines
17 KiB
JSON
{
|
||
"record_id": "VP-001-phoenix-salon-spa-v0.1.1",
|
||
"record_version": "v0.1.2",
|
||
"record_type": "canonical_business_record",
|
||
"system": {
|
||
"authority": "veripath",
|
||
"created_at": "2026-08-12T23:30:00Z",
|
||
"updated_at": "2026-08-16T10:30:00Z",
|
||
"status": "draft"
|
||
},
|
||
"domains": {
|
||
"identity": {
|
||
"legal_name": {
|
||
"value": null,
|
||
"status": "observed",
|
||
"evidence_tier": "tier_3",
|
||
"observed_at": "2026-08-12T23:30:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "unknown",
|
||
"sources": [],
|
||
"notes": "Legal name not yet captured; DBA is Phoenix Salon + Spa. Prior DBA: La Mae Salon & Spa."
|
||
},
|
||
"dba_name": {
|
||
"value": "Phoenix Salon + Spa",
|
||
"status": "verified",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-05T00:00:00Z",
|
||
"verified_at": "2026-08-12T23:30:00Z",
|
||
"fresh_until": "2026-09-11T23:30:00Z",
|
||
"source_independence": "independent",
|
||
"sources": [
|
||
"GBP snapshot 2026-08-05",
|
||
"website footer/schema 2026-08-11",
|
||
"owner-confirmed 2026-08-11"
|
||
],
|
||
"notes": "Previously known as La Mae Salon & Spa. Rebrand residue persists on Yelp and Facebook."
|
||
},
|
||
"industry": {
|
||
"value": "Beauty salon / Spa",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-05T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"GBP primary category: Salon",
|
||
"GBP additional categories: spa, facials, waxing, lashes, hair coloring, styling, blowouts",
|
||
"website schema.org type: BeautySalon"
|
||
],
|
||
"notes": "GBP and website schema agree. GBP carries 7 additional categories."
|
||
}
|
||
},
|
||
"location": {
|
||
"street_address": {
|
||
"value": "3460 Robin Ln, Ste 4, Cameron Park, CA 95682",
|
||
"status": "verified",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-05T00:00:00Z",
|
||
"verified_at": "2026-08-12T23:30:00Z",
|
||
"fresh_until": "2026-09-11T23:30:00Z",
|
||
"source_independence": "independent",
|
||
"sources": [
|
||
"GBP snapshot 2026-08-05",
|
||
"website footer/contact/schema 2026-08-11",
|
||
"Yelp listing",
|
||
"Facebook page"
|
||
],
|
||
"notes": "All sources agree. GBP uses 'Ste 4' abbreviation; website uses 'Suite 4'."
|
||
},
|
||
"geo_coordinates": {
|
||
"value": null,
|
||
"status": "observed",
|
||
"evidence_tier": "tier_2",
|
||
"observed_at": "2026-08-05T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "unknown",
|
||
"sources": [
|
||
"GBP Place ID: 0x809afa078da84585:0xb483880b57fe2eda",
|
||
"Google Maps: 38.6553155, -120.9664378"
|
||
],
|
||
"notes": "Not present in website JSON-LD schema. Available via GBP/Google Maps."
|
||
}
|
||
},
|
||
"contact": {
|
||
"phone": {
|
||
"value": "+15303509197",
|
||
"status": "verified",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-05T00:00:00Z",
|
||
"verified_at": "2026-08-12T23:30:00Z",
|
||
"fresh_until": "2026-09-11T23:30:00Z",
|
||
"source_independence": "independent",
|
||
"sources": [
|
||
"GBP snapshot 2026-08-05",
|
||
"website footer/schema 2026-08-11",
|
||
"Yelp listing"
|
||
],
|
||
"notes": "All sources agree. Format varies: (530) 350-9197 vs +15303509197."
|
||
},
|
||
"website": {
|
||
"value": "https://phoenixcameronpark.com",
|
||
"status": "verified",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-05T00:00:00Z",
|
||
"verified_at": "2026-08-12T23:30:00Z",
|
||
"fresh_until": "2026-09-11T23:30:00Z",
|
||
"source_independence": "independent",
|
||
"sources": [
|
||
"GBP snapshot 2026-08-05",
|
||
"website self-reference",
|
||
"Yelp listing",
|
||
"Facebook page"
|
||
],
|
||
"notes": "GBP links to http://phoenixcameronpark.com/ (no TLS). Website itself serves HTTPS."
|
||
},
|
||
"email": {
|
||
"value": "ashley@phoenixcameronpark.com",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website footer/contact/schema 2026-08-11"
|
||
],
|
||
"notes": "Owner email. Not present on GBP or Yelp."
|
||
}
|
||
},
|
||
"hours": {
|
||
"regular_hours": {
|
||
"value": {
|
||
"Mon": "09:00-18:00",
|
||
"Tue": "09:00-18:00",
|
||
"Wed": "09:00-18:00",
|
||
"Thu": "09:00-18:00",
|
||
"Fri": "09:00-18:00",
|
||
"Sat": "09:00-18:00",
|
||
"Sun": "closed"
|
||
},
|
||
"status": "open",
|
||
"evidence_tier": "tier_2",
|
||
"observed_at": "2026-08-16T00:00:00Z",
|
||
"verified_at": "2026-08-16T10:30:00Z",
|
||
"fresh_until": "2026-09-16T00:00:00Z",
|
||
"source_independence": "independent",
|
||
"sources": [
|
||
"owner ground truth (Ashley) via Leonard handoff 2026-08-16"
|
||
],
|
||
"notes": "REOPENED 2026-08-17: 2026-08-17 capture shows conflicts GBP Mon-Sat 9-6 / website (JSON-LD) Mon-Fri 9-7 Sat-Sun 9-5 / Apple 10-6 daily incl Sun / Yelp (08-13) Mon-Fri 9-7 Sat 9-7 Sun closed. 2026-08-17 findings call claimed verbal settlement but no written numbers were captured, so the hours GATE (client-call-workflow-v2.md, rule 3) was not passed. Owner-written confirmation of all 7 days required before status returns to verified and before any monitoring handoff."
|
||
},
|
||
"by_appointment_only": {
|
||
"value": true,
|
||
"status": "verified",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": "2026-08-12T23:30:00Z",
|
||
"fresh_until": "2026-08-25T23:30:00Z",
|
||
"source_independence": "independent",
|
||
"sources": [
|
||
"owner statement 2026-08-11",
|
||
"website contact page: 'By appointment only'",
|
||
"GBP attribute: 'Appointment required, Appointments recommended'"
|
||
],
|
||
"notes": "Owner runs primarily by appointment. Same-day availability accepted when possible."
|
||
},
|
||
"timezone": {
|
||
"value": "America/Los_Angeles",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-05T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "unknown",
|
||
"sources": [
|
||
"GBP snapshot metadata"
|
||
]
|
||
}
|
||
},
|
||
"services_and_pricing": {
|
||
"services": [
|
||
{
|
||
"name": "Haircut & Style",
|
||
"description": "Precision haircuts and styling",
|
||
"price": "from $65",
|
||
"unit": "per service",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website /services page 2026-08-11"
|
||
]
|
||
},
|
||
{
|
||
"name": "Full Color",
|
||
"description": "Full hair color service",
|
||
"price": "from $120",
|
||
"unit": "per service",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website /services page 2026-08-11"
|
||
]
|
||
},
|
||
{
|
||
"name": "Balayage / Highlights",
|
||
"description": "Custom color techniques",
|
||
"price": "from $180",
|
||
"unit": "per service",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website /services page 2026-08-11"
|
||
]
|
||
},
|
||
{
|
||
"name": "Extensions",
|
||
"description": "Hair extensions",
|
||
"price": "consultation",
|
||
"unit": "per service",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website /services page 2026-08-11"
|
||
]
|
||
},
|
||
{
|
||
"name": "Phoenix Custom Facial",
|
||
"description": "Customized facial with optional enhancements",
|
||
"price": "from $85 (typical $115-$160 with enhancements)",
|
||
"unit": "per service",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website /services page 2026-08-11"
|
||
]
|
||
},
|
||
{
|
||
"name": "Spray Tan",
|
||
"description": "Full body $60 / Partial $35 / Buddy rate $50 each",
|
||
"price": "varies by type",
|
||
"unit": "per service",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website /services page 2026-08-11"
|
||
]
|
||
},
|
||
{
|
||
"name": "Waxing Services",
|
||
"description": "Various waxing services",
|
||
"price": "from $15",
|
||
"unit": "per service",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website /services page 2026-08-11"
|
||
],
|
||
"notes": "Full waxing price menu NOT_OBSERVED; page links to sub-menus not captured."
|
||
},
|
||
{
|
||
"name": "Eyelash Extensions",
|
||
"description": "Full lash extensions, varies by artist",
|
||
"price": "from $150",
|
||
"unit": "per service",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website /services page 2026-08-11"
|
||
]
|
||
}
|
||
],
|
||
"price_range": {
|
||
"value": "$$$",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website schema priceRange field"
|
||
],
|
||
"notes": "Schema field only; not on GBP."
|
||
}
|
||
},
|
||
"booking": {
|
||
"booking_url": {
|
||
"value": "https://www.vagaro.com/phoenixcameronpark",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": "2026-08-19T23:30:00Z",
|
||
"source_independence": "independent",
|
||
"sources": [
|
||
"GBP 'Book online' button 2026-08-05",
|
||
"website CTA 2026-08-11",
|
||
"organic search result: vagaro.com/phoenixcameronpark"
|
||
],
|
||
"notes": "Vagaro booking page exists with cancellation policy (24hr advance, 50% fee). GBP button destination not confirmed via click test."
|
||
},
|
||
"booking_provider": {
|
||
"value": "Vagaro",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": "2026-08-25T23:30:00Z",
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"GBP prior report",
|
||
"Vagaro URL"
|
||
]
|
||
}
|
||
},
|
||
"proof_and_reputation": {
|
||
"google_reviews": {
|
||
"value": {
|
||
"rating": 4.9,
|
||
"count": 64,
|
||
"responses_observed": true
|
||
},
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-05T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "unknown",
|
||
"sources": [
|
||
"GBP snapshot 2026-08-05"
|
||
],
|
||
"notes": "Response count/detail NOT_OBSERVED. Review count was 64 on 2026-08-05; Yelp showed 65 reviews as of search date."
|
||
},
|
||
"differentiators": {
|
||
"value": [
|
||
"Custom facials (Phoenix Custom Facial)",
|
||
"Style Readers' Choice 2026 Nominee (Mallory Carlos)",
|
||
"By-appointment model",
|
||
"Women-owned business (GBP attribute)",
|
||
"Collective of independent stylists and estheticians (Vagaro bio)"
|
||
],
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website",
|
||
"GBP attributes",
|
||
"Vagaro bio"
|
||
]
|
||
}
|
||
},
|
||
"social": {
|
||
"instagram": {
|
||
"value": "instagram.com/phoenix.cameronpark",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website schema sameAs"
|
||
]
|
||
},
|
||
"facebook": {
|
||
"value": "facebook.com/PhoenixCameronPark",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website schema sameAs"
|
||
]
|
||
},
|
||
"tiktok": {
|
||
"value": "present in website footer",
|
||
"status": "observed",
|
||
"evidence_tier": "tier_1",
|
||
"observed_at": "2026-08-11T00:00:00Z",
|
||
"verified_at": null,
|
||
"fresh_until": null,
|
||
"source_independence": "same_origin",
|
||
"sources": [
|
||
"website footer"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"conflicts": [
|
||
{
|
||
"field": "hours.regular_hours",
|
||
"description": "Owner ground truth conflicts with all public surfaces",
|
||
"owner_truth": "Mon–Sat 9–6, Sun closed",
|
||
"website": "Mon-Fri 9-7, Sat-Sun 9-5",
|
||
"yelp": "Mon-Fri 9-7, Sat 9-7, Sun closed",
|
||
"gbp": "NOT_VERIFIED against owner truth",
|
||
"severity": "high",
|
||
"action_risk": "high",
|
||
"status": "unresolved",
|
||
"discovered_at": "2026-08-11T00:00:00Z"
|
||
},
|
||
{
|
||
"field": "identity.dba_name",
|
||
"description": "Rebrand residue: Yelp reviews and Facebook page still reference 'La Mae Salon'",
|
||
"evidence": "Yelp reviews mention 'La Mae Salon' and 'LaMae'; Facebook page bio says 'Formally La Mae Salon & Spa'",
|
||
"severity": "medium",
|
||
"action_risk": "medium",
|
||
"status": "unresolved",
|
||
"discovered_at": "2026-08-12T23:30:00Z"
|
||
},
|
||
{
|
||
"field": "website.url",
|
||
"description": "GBP links to HTTP URL; website serves HTTPS",
|
||
"gbp": "http://phoenixcameronpark.com/",
|
||
"actual": "https://phoenixcameronpark.com",
|
||
"severity": "low",
|
||
"action_risk": "low",
|
||
"status": "unresolved",
|
||
"discovered_at": "2026-08-05T00:00:00Z"
|
||
},
|
||
{
|
||
"id": "hours-surfaces-2026-08-17",
|
||
"field": "hours.regular_hours",
|
||
"status": "open",
|
||
"evidence": {
|
||
"gbp": "Mon-Sat 09:00-18:00, Sun closed",
|
||
"website": "Mon-Fri 09:00-19:00, Sat-Sun 09:00-17:00 (JSON-LD, 2026-08-17)",
|
||
"apple_maps": "daily 10:00-18:00 incl Sunday (2026-08-17)",
|
||
"yelp": "Mon-Fri 09:00-19:00, Sat 09:00-19:00, Sun closed (2026-08-13, not re-verified)"
|
||
},
|
||
"owner_truth": null,
|
||
"resolution_required": "Owner-written confirmation of all 7 days (hours GATE). No written numbers = stays open."
|
||
}
|
||
],
|
||
"approvals": [],
|
||
"change_history": [
|
||
{
|
||
"timestamp": "2026-08-12T23:30:00Z",
|
||
"action": "created",
|
||
"detail": "Initial draft canonical business record compiled from existing evidence: GBP snapshot 2026-08-05, website capture 2026-08-11, owner ground truth 2026-08-11, live web search 2026-08-12"
|
||
},
|
||
{
|
||
"timestamp": "2026-08-16T10:30:00Z",
|
||
"action": "updated",
|
||
"field": "hours.regular_hours",
|
||
"detail": "Corrected Saturday hours from 09:00-15:00 to 09:00-18:00 per owner ground truth. Source: Leonard handoff 2026-08-16. This is now the authoritative baseline for all surface diffs."
|
||
},
|
||
{
|
||
"date": "2026-08-17",
|
||
"field": "hours.regular_hours",
|
||
"detail": "Reopened hours: demoted verified/tier_1 to open/tier_2. 2026-08-17 capture conflicts (GBP Mon-Sat 9-6 vs website Mon-Fri 9-7 Sat-Sun 9-5) were not locked on the 2026-08-17 call despite verbal 'settled' claim; no written numbers on file. Hours GATE per client-call-workflow-v2.md. Prior baseline Mon-Sat 9-6 Sun closed set 2026-08-16 from Leonard handoff — superseded until owner confirms in writing.",
|
||
"source": "2026-08-17 findings call + multi_surface_2026-08-17 capture"
|
||
}
|
||
]
|
||
}
|