{
  "generatedAt": "2026-10-23T21:23:31.433Z",
  "storeEnabled": true,
  "lastCrawlRanAt": "2026-10-23T21:00:36.226Z",
  "measurement": {
    "configured": true,
    "store": "postgres",
    "state": "ok",
    "schema": {
      "expected": "0003_minimized_telemetry",
      "current": "0003_minimized_telemetry",
      "error": null
    },
    "dashboard": "enabled",
    "last_ok_at": "2026-10-23T21:23:27.401Z",
    "failed_last_hour": 0,
    "failed_events_total": 0,
    "last_error": null,
    "rejected_last_hour": 0,
    "recent_reject_reasons": [],
    "received_total": 100,
    "stored_total": 100,
    "dropped_total": 0,
    "written_total": 100,
    "duplicates_total": 0,
    "retries_total": 0,
    "not_stored_unconfigured": 0,
    "scope": "this function instance since its cold start"
  },
  "dataset": {
    "revision": "b-merchants@2026-10-23T11:05:07Z#4f15ef234749",
    "importedAt": "2026-10-23T11:08:37Z",
    "sourceLastChecked": "2026-10-23T11:05:07Z",
    "listedSalons": 907,
    "totalSalons": 908
  },
  "providerPolicies": {
    "defaultForUnlistedProviders": "no",
    "providers": [
      {
        "provider": "bookzilla",
        "captureAllowed": "unreviewed",
        "tosUrl": "https://growthzilla.com/tos",
        "reviewedAt": null,
        "continueWhilePending": true,
        "notes": "Growthzilla (\"Bookzilla\", book.appt.cm) terms at https://growthzilla.com/tos have not been reviewed yet. The existing crawl of the public business-configuration endpoint for Hair Shaper (slug hairshaper) keeps running until TJ decides. We never call the endpoint that carries customer appointment records, which is why existing bookings are not subtracted from candidate start times.",
        "capturePermitted": true
      }
    ]
  },
  "salons": [
    {
      "salon": "hairshaper",
      "provider": "bookzilla",
      "providerPolicy": {
        "provider": "bookzilla",
        "captureAllowed": "unreviewed",
        "tosUrl": "https://growthzilla.com/tos",
        "reviewedAt": null,
        "continueWhilePending": true,
        "notes": "Growthzilla (\"Bookzilla\", book.appt.cm) terms at https://growthzilla.com/tos have not been reviewed yet. The existing crawl of the public business-configuration endpoint for Hair Shaper (slug hairshaper) keeps running until TJ decides. We never call the endpoint that carries customer appointment records, which is why existing bookings are not subtracted from candidate start times.",
        "capturePermitted": true
      },
      "crawl": {
        "enabled": true,
        "method": "public_json",
        "refreshEveryMinutes": 30,
        "staleAfterMinutes": 90
      },
      "availability": {
        "capturedAt": "2026-10-23T21:00:36.226Z",
        "freshness": "fresh",
        "source": "store",
        "method": "bookable_cells",
        "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",
        "windows": 191,
        "horizonEnd": "2026-12-23T08:00:00.000Z"
      },
      "lastCrawl": {
        "ok": true,
        "error": null,
        "drift": []
      },
      "verification": {
        "checkedAt": "2026-10-23T05:59:21.410Z",
        "accuracy": 0.5,
        "cases": 12
      },
      "recordVerifiedAt": "2026-10-23T05:54:36.370Z"
    }
  ]
}