fix: correct canonical-business-record to valid JSON (was markdown)
This commit is contained in:
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user