From 7d1f748a460e8689713991ee3f82b2dc8c21db6c Mon Sep 17 00:00:00 2001 From: Tony Balascio Date: Wed, 12 Aug 2026 23:30:10 +0000 Subject: [PATCH] fix: correct canonical-business-record to valid JSON (was markdown) --- .../canonical-business-record-v0.1.1.json | 492 ++++++++++++++++-- 1 file changed, 448 insertions(+), 44 deletions(-) diff --git a/docs/clients/phoenix-salons/canonical-business-record-v0.1.1.json b/docs/clients/phoenix-salons/canonical-business-record-v0.1.1.json index 92cb087..b80c25a 100644 --- a/docs/clients/phoenix-salons/canonical-business-record-v0.1.1.json +++ b/docs/clients/phoenix-salons/canonical-business-record-v0.1.1.json @@ -1,44 +1,448 @@ -# Phoenix Salon + Spa — Silent Customer Loss Map - -**Date:** 2026-08-13 -**Status:** Draft -**Evidence source:** GBP snapshot 2026-08-05, website capture 2026-08-11, owner ground truth 2026-08-11, live search 2026-08-12 - ---- - -## Loss Points - -| # | Loss Point | Surface | Evidence | Impact | Severity | -|---|---|---|---|---|---| -| L-1 | Hours conflict: all public surfaces show incorrect hours | Website, Yelp, GBP | Owner ground truth vs website/schema/Yelp | Customers show up when closed; trust erosion; missed appointments | HIGH | -| L-2 | Rebrand residue: Yelp reviews reference 'La Mae Salon' | Yelp | Live search results show 'LaMae' in review snippets | Confuses new customers; old brand competes with new; review context is misleading | MEDIUM | -| L-3 | Facebook still references 'Formally La Mae Salon & Spa' | Facebook | Page bio visible in search results | Brand confusion; signals incomplete rebrand to AI systems | MEDIUM | -| L-4 | GBP hours not verified against owner truth | GBP | GBP snapshot shows 'Closes 6pm' but full schedule not captured | May be partially correct or stale; unverified | HIGH | -| L-5 | GBP services, posts, Q&A not observed | GBP | Services: NOT_OBSERVED, Posts: NOT_OBSERVED, Q&A: NOT_OBSERVED | GBP incomplete; missing structured signals for AI systems | MEDIUM | -| L-6 | No geo coordinates in JSON-LD schema | Website | Schema audit confirms NOT_PRESENT | Search engines must infer location; slower/more error-prone indexing | LOW | -| L-7 | No aggregateRating/reviewCount in JSON-LD schema | Website | Schema audit confirms NOT_PRESENT | Missed structured-data signal for AI representation | LOW | -| L-8 | GBP links to HTTP URL; website serves HTTPS | GBP | GBP shows http://; website redirects to https:// | Minor security signal loss; potential redirect confusion | LOW | -| L-9 | Mallory Carlos nominee mention with no booking path | Website | Nominee blurb on home/services; no profile or 'Book with Mallory' | Review-to-booking gap; nominee credibility wasted | MEDIUM | -| L-10 | Website is React SPA (Lovable) — body content requires JS execution | Website | Full HTML source: client-rendered SPA | Crawlers see schema in head but may miss page text; AI systems may not render body | MEDIUM | - ---- - -## Severity Distribution - -| Level | Count | Loss Points | -|---|---|---| -| HIGH | 2 | L-1 (hours conflict), L-4 (GBP hours unverified) | -| MEDIUM | 5 | L-2 (Yelp rebrand), L-3 (Facebook rebrand), L-5 (GBP incomplete), L-9 (Mallory gap), L-10 (SPA crawlability) | -| LOW | 3 | L-6 (no geo), L-7 (no rating in schema), L-8 (HTTP link) | - ---- - -## Recommended Correction Priority - -1. **L-1/L-4 (hours):** Define owner-verified hours, update website/schema, update GBP, update Yelp -2. **L-2/L-3 (rebrand):** Request Yelp business info update; update Facebook bio -3. **L-5 (GBP):** Populate services, create posts, seed Q&A -4. **L-9 (Mallory):** Add profile and booking path for nominee -5. **L-10 (SPA):** Ensure server-side rendering or pre-rendering for crawlers -6. **L-6/L-7 (schema):** Add geo and aggregateRating to JSON-LD -7. **L-8 (HTTP):** Update GBP website URL to HTTPS +{ + "record_id": "VP-001-phoenix-salon-spa-v0.1.1", + "record_version": "0.1.1", + "record_type": "canonical_business_record", + "system": { + "authority": "veripath", + "created_at": "2026-08-12T23:30:00Z", + "updated_at": "2026-08-12T23: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-15:00", + "Sun": "closed" + }, + "status": "verified", + "evidence_tier": "tier_1", + "observed_at": "2026-08-11T00:00:00Z", + "verified_at": "2026-08-12T23:30:00Z", + "fresh_until": "2026-08-19T23:30:00Z", + "source_independence": "unknown", + "sources": [ + "owner ground truth (Ashley) 2026-08-11" + ], + "notes": "OWNER-VERIFIED GROUND TRUTH. All other public surfaces carry INCORRECT hours. Website/schema say Mon-Fri 9-7, Sat-Sun 9-5. Yelp says Mon-Fri 9-7, Sat 9-7. GBP not verified against owner truth. Operating model is by-appointment; no canonical hours previously existed." + }, + "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-Fri 9-6, Sat 9-3, 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" + } + ], + "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" + } + ] +} \ No newline at end of file