{
  "ref": "san-francisco/hair-salon/code-salon-castro-upper-market",
  "depth": "detailed",
  "depth_info": {
    "depth": "detailed",
    "label": "Detailed",
    "note": "Detailed: imported, and the business itself publishes a priced menu, an online booking link and its opening hours or service durations — every published service, price and duration is shown; not profiled in depth.",
    "can_rely_on": [
      "Every service, price and duration exactly as the business publishes it (often starting prices), with the page and date it was read.",
      "The online booking link (through our measured redirect) and published opening hours or durations, each with source and date.",
      "Identity, address and licence or registry status as of the state or city data date shown."
    ],
    "cannot_rely_on": [
      "Appointment availability: we only have published opening hours, never open slots.",
      "What a service includes, unless the service name says so (check `comparable`).",
      "Stylists, cancellation or deposit policies, accessibility: not researched (UNKNOWN).",
      "That the business is open today: operating status is UNKNOWN unless stated."
    ]
  },
  "availability_basis": "published_hours",
  "last_verified_at": "2026-10-23T14:56:25Z",
  "crawl_log": [
    {
      "source": "price_page",
      "label": "Price page (salon website)",
      "url": "https://codesalonsf.com/",
      "host": "codesalonsf.com",
      "ref": null,
      "checked_at": "2026-10-23T14:56:25Z",
      "data_as_of": null,
      "result": "HTTP 200",
      "ok": true,
      "facts": [
        "opening hours",
        "phone",
        "website (link check)",
        "2 menu items, 2 with prices"
      ]
    },
    {
      "source": "booking_page",
      "label": "Booking page (Fresha)",
      "url": "https://www.fresha.com/a/code-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh",
      "host": "fresha.com",
      "ref": null,
      "checked_at": "2026-10-22T17:32:57Z",
      "data_as_of": null,
      "result": "HTTP 200",
      "ok": true,
      "facts": [
        "booking link (link check)"
      ]
    },
    {
      "source": "manual",
      "label": "Manual verification",
      "url": "https://codesalonsf.com/contact-us/",
      "host": "codesalonsf.com",
      "ref": null,
      "checked_at": "2026-10-22T17:11:18Z",
      "data_as_of": null,
      "result": "read",
      "ok": null,
      "facts": [
        "matched to this business",
        "name",
        "address",
        "subtypes",
        "website",
        "online booking link (Fresha)"
      ]
    },
    {
      "source": "licence",
      "label": "CA Board of Barbering & Cosmetology licence data",
      "url": "https://search.dca.ca.gov/",
      "host": "search.dca.ca.gov",
      "ref": null,
      "checked_at": null,
      "data_as_of": "2026-10-01",
      "result": "no matching establishment licence (matching can miss)",
      "ok": true,
      "facts": [
        "licence lookup"
      ]
    }
  ],
  "salon": {
    "id": "sf-code-salon-castro-upper-market",
    "slug": "code-salon-castro-upper-market",
    "depth": "detailed",
    "name": "Code Salon",
    "aliases": [],
    "description": "Code Salon is a hair salon at 561 Castro St, San Francisco, CA 94114 (Castro / Upper Market). Listed from the business’s own website; not profiled in depth. 2 published prices.",
    "subtypes": [
      "hair_salon"
    ],
    "tags": [
      "balayage",
      "color",
      "extensions",
      "grey-coverage",
      "highlights",
      "keratin"
    ],
    "address": {
      "street": "561 Castro St",
      "city": "San Francisco",
      "state": "CA",
      "postalCode": "94114",
      "country": "US"
    },
    "geo": {
      "lat": 37.759968,
      "lng": -122.434564
    },
    "neighborhood": "castro-upper-market",
    "neighborhoodLabel": "Castro / Upper Market",
    "areas": {
      "value": [],
      "provenance": {
        "status": "inferred",
        "source": {
          "type": "derived",
          "label": "radius around a named landmark (OpenStreetMap Nominatim centers)"
        },
        "observedAt": "2026-10-22T17:32:57Z",
        "note": "Area centers geocoded with OpenStreetMap Nominatim on 2026-10-23 from the named landmark/intersection (center_ref); radii are conservative editorial choices (300-600 m). Data © OpenStreetMap contributors."
      }
    },
    "nearbyNeighborhoods": {
      "value": [],
      "provenance": {
        "status": "inferred",
        "source": {
          "type": "derived",
          "url": "https://data.sfgov.org/resource/j2bu-swwd.geojson",
          "label": "DataSF Analysis Neighborhoods polygons"
        },
        "observedAt": "2026-10-22T17:32:57Z",
        "note": "Neighborhoods whose edge is within about 400 m (a short walk)."
      }
    },
    "timezone": "America/Los_Angeles",
    "phone": {
      "value": "+13479258225",
      "provenance": {
        "status": "verified",
        "source": {
          "type": "salon_website",
          "url": "https://codesalonsf.com/"
        },
        "observedAt": "2026-10-22T17:32:54Z"
      }
    },
    "website": {
      "value": "https://codesalonsf.com/",
      "provenance": {
        "status": "verified",
        "source": {
          "type": "manual",
          "url": "https://codesalonsf.com/contact-us/"
        },
        "observedAt": "2026-10-22T17:11:18Z",
        "matchedOn": [
          "name",
          "address"
        ]
      },
      "evidence": [
        {
          "status": "verified",
          "source": {
            "type": "link_check",
            "url": "https://codesalonsf.com/"
          },
          "observedAt": "2026-10-22T17:32:54Z",
          "note": "Opened by our link checker (HTTP 200).",
          "check": {
            "httpStatus": 200,
            "ok": true,
            "finalUrl": "https://codesalonsf.com/"
          }
        }
      ]
    },
    "hours": {
      "value": [
        {
          "day": "monday",
          "closed": false,
          "open": "08:00",
          "close": "20:00"
        },
        {
          "day": "tuesday",
          "closed": false,
          "open": "08:00",
          "close": "20:00"
        },
        {
          "day": "wednesday",
          "closed": false,
          "open": "08:00",
          "close": "20:00"
        },
        {
          "day": "thursday",
          "closed": false,
          "open": "08:00",
          "close": "20:00"
        },
        {
          "day": "friday",
          "closed": false,
          "open": "08:00",
          "close": "20:00"
        },
        {
          "day": "saturday",
          "closed": false,
          "open": "08:00",
          "close": "20:00"
        },
        {
          "day": "sunday",
          "closed": false,
          "open": "08:00",
          "close": "20:00"
        }
      ],
      "provenance": {
        "status": "verified",
        "source": {
          "type": "salon_website",
          "url": "https://codesalonsf.com/"
        },
        "observedAt": "2026-10-23T14:56:25Z",
        "note": "Published business hours daily; round-the-clock appointment requests do not mean 24-hour services."
      }
    },
    "operatingStatus": {
      "value": "unknown",
      "provenance": {
        "status": "unknown",
        "source": {
          "type": "openstreetmap"
        },
        "observedAt": "2026-10-22T17:32:57Z",
        "note": "Listed in public map data; we have not confirmed the business is open today."
      }
    },
    "policies": null,
    "attributes": null,
    "license": {
      "value": null,
      "provenance": {
        "status": "unknown",
        "source": {
          "type": "state_license",
          "url": "https://search.dca.ca.gov/",
          "dataset": "ca-dca-bbc"
        },
        "observedAt": "2026-10-01T00:00:00Z",
        "note": "No matching CA establishment licence found in state licensee data as of 2026-10-01. Matching by name and address can miss; this does not mean the business is unlicensed. Check search.dca.ca.gov."
      }
    },
    "licenseLookup": {
      "ran": true,
      "dataAsOf": "2026-10-01"
    },
    "registration": {
      "value": null,
      "provenance": {
        "status": "unknown",
        "source": {
          "type": "business_registry",
          "label": "no source we checked publishes this"
        },
        "observedAt": "2026-10-22T17:32:57Z",
        "note": "Not matched to a business-registry record."
      }
    },
    "bookingSources": [
      {
        "id": "sf-code-salon-castro-upper-market:booking:fresha",
        "salonId": "sf-code-salon-castro-upper-market",
        "provider": "fresha",
        "kind": "online",
        "publicUrl": "https://www.fresha.com/a/code-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh",
        "providerIds": {},
        "capabilities": null,
        "crawl": {
          "method": "none",
          "headers": {},
          "refreshEveryMinutes": 0,
          "staleAfterMinutes": 0,
          "enabled": false
        },
        "provenance": {
          "status": "verified",
          "source": {
            "type": "manual",
            "url": "https://codesalonsf.com/contact-us/"
          },
          "observedAt": "2026-10-22T17:11:18Z",
          "matchedOn": [
            "name",
            "address"
          ]
        },
        "evidence": [
          {
            "status": "verified",
            "source": {
              "type": "link_check",
              "url": "https://www.fresha.com/a/code-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh"
            },
            "observedAt": "2026-10-22T17:32:57Z",
            "note": "Opened by our link checker (HTTP 200).",
            "check": {
              "httpStatus": 200,
              "ok": true,
              "finalUrl": "https://www.fresha.com/a/code-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh"
            }
          }
        ]
      }
    ],
    "stylistIds": [],
    "offeringIds": [
      "sf-code-salon-castro-upper-market:svc:1",
      "sf-code-salon-castro-upper-market:svc:2"
    ],
    "outOfScopeServices": [],
    "evidence": [],
    "sources": [
      {
        "type": "salon_website",
        "url": "https://codesalonsf.com/",
        "fetchedAt": "2026-10-22T17:32:54Z"
      },
      {
        "type": "manual",
        "url": "https://codesalonsf.com/contact-us/",
        "fetchedAt": "2026-10-22T17:11:18Z"
      },
      {
        "type": "salon_website",
        "url": "https://codesalonsf.com/",
        "field": "opening hours",
        "fetchedAt": "2026-10-23T14:56:25Z",
        "note": "Published business hours daily; round-the-clock appointment requests do not mean 24-hour services."
      }
    ],
    "fieldSources": {
      "name": {
        "provenance": {
          "status": "verified",
          "source": {
            "type": "manual",
            "url": "https://codesalonsf.com/contact-us/"
          },
          "observedAt": "2026-10-22T17:11:18Z",
          "matchedOn": [
            "name",
            "address"
          ]
        }
      },
      "address": {
        "provenance": {
          "status": "verified",
          "source": {
            "type": "manual",
            "url": "https://codesalonsf.com/contact-us/"
          },
          "observedAt": "2026-10-22T17:11:18Z",
          "matchedOn": [
            "name",
            "address"
          ]
        }
      },
      "location": {
        "provenance": {
          "status": "verified",
          "source": {
            "type": "manual",
            "url": "https://codesalonsf.com/contact-us/"
          },
          "observedAt": "2026-10-22T17:11:18Z",
          "note": "address geocoded via DataSF registered-business points",
          "matchedOn": [
            "name",
            "address"
          ]
        }
      },
      "neighborhood": {
        "provenance": {
          "status": "inferred",
          "source": {
            "type": "derived",
            "url": "https://data.sfgov.org/resource/j2bu-swwd.geojson"
          },
          "observedAt": "2026-10-22T13:39:05Z",
          "note": "point-in-polygon of the merchant's coordinates"
        }
      },
      "subtypes": {
        "provenance": {
          "status": "verified",
          "source": {
            "type": "manual",
            "url": "https://codesalonsf.com/contact-us/"
          },
          "observedAt": "2026-10-22T17:11:18Z",
          "matchedOn": [
            "name",
            "address"
          ]
        }
      }
    },
    "externalIds": {
      "agentDiscovery": "code-salon-castro-upper-market"
    },
    "verifiedAt": "2026-10-22T17:32:57Z",
    "provenance": {
      "status": "verified",
      "source": {
        "type": "manual",
        "url": "https://codesalonsf.com/contact-us/"
      },
      "observedAt": "2026-10-22T17:11:18Z",
      "matchedOn": [
        "name",
        "address"
      ]
    }
  },
  "stylists": [],
  "offerings": [
    {
      "id": "sf-code-salon-castro-upper-market:svc:1",
      "slug": "haircut",
      "salonId": "sf-code-salon-castro-upper-market",
      "name": "Haircut",
      "category": "haircut",
      "serviceCategory": "haircut",
      "tags": [],
      "haircutType": "cut",
      "hairLength": null,
      "audience": null,
      "includes": {
        "shampoo": null,
        "rinse": null,
        "blowDry": null,
        "style": null,
        "consultation": null
      },
      "comparable": false,
      "comparisonNote": "Type cut — INFERRED from the service name. Not comparable apples-to-apples: whether a wash is included not published.",
      "price": {
        "currency": "USD",
        "kind": "range",
        "amount": 100,
        "amountMax": 250,
        "provenance": {
          "status": "verified",
          "source": {
            "type": "salon_website",
            "url": "https://codesalonsf.com/"
          },
          "observedAt": "2026-10-22T17:32:54Z",
          "note": "As published on the business’s own price list."
        }
      },
      "durationMinutes": {
        "value": null,
        "provenance": {
          "status": "unknown",
          "source": {
            "type": "derived",
            "label": "no source we checked publishes this"
          },
          "observedAt": "2026-10-22T17:32:54Z",
          "note": "Duration not published."
        }
      },
      "stylistIds": [],
      "bookableOnline": true,
      "providerRefs": [],
      "verifiedAt": "2026-10-22T17:32:54Z",
      "provenance": {
        "status": "verified",
        "source": {
          "type": "salon_website",
          "url": "https://codesalonsf.com/"
        },
        "observedAt": "2026-10-22T17:32:54Z",
        "note": "As published on the business’s own price list."
      }
    },
    {
      "id": "sf-code-salon-castro-upper-market:svc:2",
      "slug": "hair-color",
      "salonId": "sf-code-salon-castro-upper-market",
      "name": "Hair Color",
      "category": "color",
      "serviceCategory": "color",
      "tags": [
        "color"
      ],
      "haircutType": null,
      "hairLength": null,
      "audience": null,
      "includes": {
        "shampoo": null,
        "rinse": null,
        "blowDry": null,
        "style": null,
        "consultation": null
      },
      "comparable": false,
      "comparisonNote": "Not a haircut service (color); outside the haircut taxonomy.",
      "price": {
        "currency": "USD",
        "kind": "range",
        "amount": 200,
        "amountMax": 600,
        "provenance": {
          "status": "verified",
          "source": {
            "type": "salon_website",
            "url": "https://codesalonsf.com/"
          },
          "observedAt": "2026-10-22T17:32:54Z",
          "note": "As published on the business’s own price list."
        }
      },
      "durationMinutes": {
        "value": null,
        "provenance": {
          "status": "unknown",
          "source": {
            "type": "derived",
            "label": "no source we checked publishes this"
          },
          "observedAt": "2026-10-22T17:32:54Z",
          "note": "Duration not published."
        }
      },
      "stylistIds": [],
      "bookableOnline": true,
      "providerRefs": [],
      "verifiedAt": "2026-10-22T17:32:54Z",
      "provenance": {
        "status": "verified",
        "source": {
          "type": "salon_website",
          "url": "https://codesalonsf.com/"
        },
        "observedAt": "2026-10-22T17:32:54Z",
        "note": "As published on the business’s own price list."
      }
    }
  ],
  "availability": {
    "freshness": "unknown",
    "slotBasis": "schedule_candidates",
    "bookingsSubtracted": false,
    "slotBasisLabel": "candidate start times from the salon's published staff schedule; existing bookings are not subtracted, so some may already be taken — confirm on the booking page",
    "availability_basis": "published_hours",
    "confirmed": false,
    "note": "No availability captured; published opening hours only. Use /api/v1/availability?ref= for a date."
  },
  "booking": {
    "salonId": "sf-code-salon-castro-upper-market",
    "url": "https://agentsalonsf.com/out?m=san-francisco/hair-salon/code-salon-castro-upper-market&to=https%3A%2F%2Fwww.fresha.com%2Fa%2Fcode-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh",
    "targetUrl": "https://www.fresha.com/a/code-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh",
    "precision": "salon",
    "instructions": "Opens the business’s own booking page. Choose the service (and staff, if offered), pick an open time — live slots are shown only on the booking page — and confirm with your details."
  },
  "booking_cta": {
    "kind": "online",
    "label": "Book on Fresha",
    "url": "https://agentsalonsf.com/out?m=san-francisco/hair-salon/code-salon-castro-upper-market&to=https%3A%2F%2Fwww.fresha.com%2Fa%2Fcode-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh",
    "target_url": "https://www.fresha.com/a/code-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh"
  },
  "verification": {
    "name": {
      "method": "manual",
      "status": "verified",
      "checked_at": "2026-10-22T17:11:18Z",
      "source_url": "https://codesalonsf.com/contact-us/"
    },
    "address": {
      "method": "manual",
      "status": "verified",
      "checked_at": "2026-10-22T17:11:18Z",
      "source_url": "https://codesalonsf.com/contact-us/"
    },
    "neighborhood": {
      "method": "derived",
      "status": "inferred",
      "checked_at": "2026-10-22T13:39:05Z",
      "source_url": "https://data.sfgov.org/resource/j2bu-swwd.geojson",
      "note": "point-in-polygon of the merchant's coordinates"
    },
    "phone": {
      "method": "salon_website",
      "status": "verified",
      "checked_at": "2026-10-22T17:32:54Z",
      "source_url": "https://codesalonsf.com/"
    },
    "website": {
      "method": "link_check",
      "status": "verified",
      "checked_at": "2026-10-22T17:32:54Z",
      "source_url": "https://codesalonsf.com/",
      "note": "Opened by our link checker (HTTP 200).",
      "ok": true,
      "http_status": 200
    },
    "hours": {
      "method": "salon_website",
      "status": "verified",
      "checked_at": "2026-10-23T14:56:25Z",
      "source_url": "https://codesalonsf.com/",
      "note": "Published business hours daily; round-the-clock appointment requests do not mean 24-hour services."
    },
    "prices": {
      "method": "salon_website",
      "checked_at": "2026-10-22T17:32:54Z",
      "source_urls": [
        "https://codesalonsf.com/"
      ]
    },
    "booking": {
      "method": "link_check",
      "status": "verified",
      "checked_at": "2026-10-22T17:32:57Z",
      "source_url": "https://www.fresha.com/a/code-salon-previously-belles-and-whistles-salon-san-francisco-561-castro-street-uj79e5zh",
      "note": "Opened by our link checker (HTTP 200).",
      "ok": true,
      "http_status": 200
    },
    "registration": null,
    "license": null
  },
  "not_verified": [
    "We have not checked live appointment availability — check open slots on the booking page.",
    "No matching CA establishment license found (matching can miss; this does not mean unlicensed).",
    "We have not called the business.",
    "Not matched to a business-registry record.",
    "Prices are as published on the date shown and can change."
  ],
  "dataset_revision": "b-merchants@2026-10-23T11:05:07Z#4f15ef234749",
  "links": {
    "html": "https://agentsalonsf.com/salons/code-salon-castro-upper-market",
    "markdown": "https://agentsalonsf.com/salons/code-salon-castro-upper-market.md"
  }
}