{
  "@context": {
    "@language": "en",
    "@vocab": "https://schema.org/",
    "citeAs": "cr:citeAs",
    "column": "cr:column",
    "conformsTo": "dct:conformsTo",
    "cr": "http://mlcommons.org/croissant/",
    "data": {
      "@id": "cr:data",
      "@type": "@json"
    },
    "dataType": {
      "@id": "cr:dataType",
      "@type": "@vocab"
    },
    "dct": "http://purl.org/dc/terms/",
    "examples": {
      "@id": "cr:examples",
      "@type": "@json"
    },
    "extract": "cr:extract",
    "field": "cr:field",
    "fileProperty": "cr:fileProperty",
    "fileObject": "cr:fileObject",
    "fileSet": "cr:fileSet",
    "format": "cr:format",
    "includes": "cr:includes",
    "isLiveDataset": "cr:isLiveDataset",
    "jsonPath": "cr:jsonPath",
    "key": "cr:key",
    "md5": "cr:md5",
    "parentField": "cr:parentField",
    "path": "cr:path",
    "rai": "http://mlcommons.org/croissant/RAI/",
    "recordSet": "cr:recordSet",
    "references": "cr:references",
    "regex": "cr:regex",
    "repeated": "cr:repeated",
    "replace": "cr:replace",
    "sc": "https://schema.org/",
    "separator": "cr:separator",
    "source": "cr:source",
    "subField": "cr:subField",
    "transform": "cr:transform"
  },
  "@type": "sc:Dataset",
  "conformsTo": [
    "http://mlcommons.org/croissant/1.1",
    "http://mlcommons.org/croissant/RAI/1.0"
  ],
  "name": "front-desk-review-pricing",
  "description": "The Front Desk Review: independent, sourced pricing & capability data on front-office software (AI Receptionists, Call Tracking, Business Texting, Online Booking). Every figure carries its source URL and the date it was last verified.",
  "url": "https://frontdeskreview.com/data/",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "version": "2026-06-12T00:00:00.000Z",
  "datePublished": "2026-06-12T00:00:00.000Z",
  "dateModified": "2026-06-12T00:00:00.000Z",
  "temporalCoverage": "2026-06-10/2026-06-12",
  "isLiveDataset": true,
  "citeAs": "The Front Desk Review, front-desk software pricing dataset, 2026-06-12, https://frontdeskreview.com/data/ (CC-BY-4.0).",
  "creator": {
    "@type": "sc:Organization",
    "name": "The Front Desk Review",
    "url": "https://frontdeskreview.com"
  },
  "publisher": {
    "@type": "sc:Organization",
    "name": "The Front Desk Review",
    "url": "https://frontdeskreview.com"
  },
  "keywords": [
    "pricing",
    "software",
    "front office",
    "AI receptionist",
    "call tracking",
    "business texting",
    "online booking"
  ],
  "rai:dataCollection": "Figures are captured manually from each vendor's own public pricing page; every figure is stored with the page URL and the ISO date it was accessed, and where possible corroborated by a second independent public capture.",
  "rai:dataCollectionType": "Manual human curation of public web sources.",
  "rai:dataCollectionTimeframe": "2026-06-12",
  "rai:dataCollectionRawData": "Vendor public pricing pages (URLs recorded per figure in the source_url column).",
  "rai:dataCollectionMissingData": "Quote-only / enterprise tiers that publish no usable price are recorded with a null price and an explicit quote_only flag rather than a guessed figure.",
  "rai:dataPreprocessingProtocol": "Plans are normalized to a common monthly basis (base price in USD, included minutes/calls, marginal overage rates, billing model, annual discount) so heterogeneous billing shapes line up on the same axes.",
  "rai:dataReleaseMaintenancePlan": "Figures are re-checked on a rolling basis; corrections are published with dates and the corpus is re-exported deterministically from the stored datasets.",
  "rai:personalSensitiveInformation": "None. The corpus contains only published software pricing and capability facts about vendors — no personal, demographic, or otherwise sensitive data.",
  "rai:dataLimitations": "Every figure is a point-in-time snapshot from a vendor public page and can go stale between captures; the accessed_at date on each row is the ground truth for freshness. Quote-only tiers carry no price.",
  "rai:dataBiases": "Coverage is limited to vendors with a public pricing page; vendors that gate all pricing behind a sales call are under-represented in priced figures and surfaced as quote-only.",
  "rai:dataUseCases": "Price comparison, market analysis, and citation by assistants/researchers, with attribution to the source URL and access date on each figure (CC-BY-4.0).",
  "distribution": [
    {
      "@type": "cr:FileObject",
      "@id": "ai-receptionists.csv",
      "name": "ai-receptionists.csv",
      "description": "Per-plan pricing rows for AI Receptionists, each figure carrying its source URL and access date.",
      "contentUrl": "https://frontdeskreview.com/data/ai-receptionists.csv",
      "encodingFormat": "text/csv",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "sha256": "966ac2e03e3eba598a523b2918b20b750e872e5bd4f54638c5b3b425c12dfe83"
    },
    {
      "@type": "cr:FileObject",
      "@id": "ai-receptionists.json",
      "name": "ai-receptionists.json",
      "description": "Full nested vendor + plan records for AI Receptionists with per-figure provenance.",
      "contentUrl": "https://frontdeskreview.com/data/ai-receptionists.json",
      "encodingFormat": "application/json",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "sha256": "d5e38da73c803f5f31b213ed8846559c3724abb2e7dbec7ee68791ca77348f21"
    },
    {
      "@type": "cr:FileObject",
      "@id": "call-tracking.csv",
      "name": "call-tracking.csv",
      "description": "Per-plan pricing rows for Call Tracking, each figure carrying its source URL and access date.",
      "contentUrl": "https://frontdeskreview.com/data/call-tracking.csv",
      "encodingFormat": "text/csv",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "sha256": "268ae818e2430ff42db816f9c0dba6d6171cf9e5c002a0d85c138700ca0db06a"
    },
    {
      "@type": "cr:FileObject",
      "@id": "call-tracking.json",
      "name": "call-tracking.json",
      "description": "Full nested vendor + plan records for Call Tracking with per-figure provenance.",
      "contentUrl": "https://frontdeskreview.com/data/call-tracking.json",
      "encodingFormat": "application/json",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "sha256": "2b7a7b473994f03227fc0a73f164bb6dd1e7cef1a6e744675e9e74c49f0fddfe"
    },
    {
      "@type": "cr:FileObject",
      "@id": "business-texting.csv",
      "name": "business-texting.csv",
      "description": "Per-plan pricing rows for Business Texting, each figure carrying its source URL and access date.",
      "contentUrl": "https://frontdeskreview.com/data/business-texting.csv",
      "encodingFormat": "text/csv",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "sha256": "51ed2bc1d5bea2daec932b9514cec17c4d235f19b978826bdea1c3c2ba4be069"
    },
    {
      "@type": "cr:FileObject",
      "@id": "business-texting.json",
      "name": "business-texting.json",
      "description": "Full nested vendor + plan records for Business Texting with per-figure provenance.",
      "contentUrl": "https://frontdeskreview.com/data/business-texting.json",
      "encodingFormat": "application/json",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "sha256": "aa02e5166d64f80645a9a4cd81789aa717d3d20349b9b1ef7a6b67d1eb8a3f72"
    },
    {
      "@type": "cr:FileObject",
      "@id": "online-booking.csv",
      "name": "online-booking.csv",
      "description": "Per-plan pricing rows for Online Booking, each figure carrying its source URL and access date.",
      "contentUrl": "https://frontdeskreview.com/data/online-booking.csv",
      "encodingFormat": "text/csv",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "sha256": "ee824fdae5336caed1dda318bee6b381bd65c3dd9a64386485e54d4df1983de8"
    },
    {
      "@type": "cr:FileObject",
      "@id": "online-booking.json",
      "name": "online-booking.json",
      "description": "Full nested vendor + plan records for Online Booking with per-figure provenance.",
      "contentUrl": "https://frontdeskreview.com/data/online-booking.json",
      "encodingFormat": "application/json",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "sha256": "60f7a4f8b7b0acb62b0d5643094c65b3d722474554c6586ec2097f322ab5ad19"
    }
  ],
  "recordSet": [
    {
      "@type": "cr:RecordSet",
      "@id": "ai-receptionists",
      "name": "ai-receptionists",
      "description": "AI Receptionists — one record per vendor plan, version 2026-06-10T00:00:00.000Z.",
      "dateModified": "2026-06-10T00:00:00.000Z",
      "temporalCoverage": "2026-06-10/2026-06-10",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "distribution": [
        {
          "@id": "ai-receptionists.csv"
        },
        {
          "@id": "ai-receptionists.json"
        }
      ],
      "field": [
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/section",
          "name": "section",
          "description": "Hub section slug the row belongs to (e.g. ai-receptionists).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "section"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/vendor_slug",
          "name": "vendor_slug",
          "description": "Stable URL-safe identifier for the vendor.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "vendor_slug"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/vendor_name",
          "name": "vendor_name",
          "description": "Vendor display name.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "vendor_name"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/domain",
          "name": "domain",
          "description": "Vendor primary domain.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "domain"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/canonical_url",
          "name": "canonical_url",
          "description": "Canonical on-site vendor profile URL.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "canonical_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/plan",
          "name": "plan",
          "description": "Plan name as published by the vendor.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "plan"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/monthly_usd",
          "name": "monthly_usd",
          "description": "Base monthly price in USD (empty for quote-only tiers).",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "monthly_usd"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/minutes_included",
          "name": "minutes_included",
          "description": "Talk-minutes included in the plan, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "minutes_included"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/calls_included",
          "name": "calls_included",
          "description": "Calls included in the plan, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "calls_included"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/overage_per_min",
          "name": "overage_per_min",
          "description": "Marginal overage rate per minute beyond the included quota, in USD.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "overage_per_min"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/overage_per_call",
          "name": "overage_per_call",
          "description": "Marginal overage rate per call beyond the included quota, in USD.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "overage_per_call"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/annual_discount_pct",
          "name": "annual_discount_pct",
          "description": "Discount percentage for annual commitment, if published.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "annual_discount_pct"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/setup_fee_usd",
          "name": "setup_fee_usd",
          "description": "One-time setup fee in USD, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "setup_fee_usd"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/billing_model",
          "name": "billing_model",
          "description": "Normalized billing model (flat, per_minute, per_call, per_seat, per_message, hybrid, custom).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "billing_model"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/hipaa",
          "name": "hipaa",
          "description": "HIPAA support: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "hipaa"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/baa",
          "name": "baa",
          "description": "Business Associate Agreement availability: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "baa"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/bilingual",
          "name": "bilingual",
          "description": "Bilingual support: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "bilingual"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/integrations",
          "name": "integrations",
          "description": "Named integrations, semicolon-separated.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "integrations"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/quote_only",
          "name": "quote_only",
          "description": "Whether the vendor publishes no usable per-plan price (yes / no).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "quote_only"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/source_url",
          "name": "source_url",
          "description": "Public source URL the figures on this row were captured from.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "source_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/accessed_at",
          "name": "accessed_at",
          "description": "ISO date (YYYY-MM-DD) the source was accessed.",
          "dataType": "sc:Date",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "accessed_at"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/corroboration_url",
          "name": "corroboration_url",
          "description": "Second independent source URL corroborating the figures, if any.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "corroboration_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "ai-receptionists/corroboration_accessed_at",
          "name": "corroboration_accessed_at",
          "description": "ISO date the corroborating source was accessed, if any.",
          "dataType": "sc:Date",
          "source": {
            "fileObject": {
              "@id": "ai-receptionists.csv"
            },
            "extract": {
              "column": "corroboration_accessed_at"
            }
          }
        }
      ]
    },
    {
      "@type": "cr:RecordSet",
      "@id": "call-tracking",
      "name": "call-tracking",
      "description": "Call Tracking — one record per vendor plan, version 2026-06-11T00:00:00.000Z.",
      "dateModified": "2026-06-11T00:00:00.000Z",
      "temporalCoverage": "2026-06-11/2026-06-11",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "distribution": [
        {
          "@id": "call-tracking.csv"
        },
        {
          "@id": "call-tracking.json"
        }
      ],
      "field": [
        {
          "@type": "cr:Field",
          "@id": "call-tracking/section",
          "name": "section",
          "description": "Hub section slug the row belongs to (e.g. ai-receptionists).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "section"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/vendor_slug",
          "name": "vendor_slug",
          "description": "Stable URL-safe identifier for the vendor.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "vendor_slug"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/vendor_name",
          "name": "vendor_name",
          "description": "Vendor display name.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "vendor_name"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/domain",
          "name": "domain",
          "description": "Vendor primary domain.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "domain"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/canonical_url",
          "name": "canonical_url",
          "description": "Canonical on-site vendor profile URL.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "canonical_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/plan",
          "name": "plan",
          "description": "Plan name as published by the vendor.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "plan"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/monthly_usd",
          "name": "monthly_usd",
          "description": "Base monthly price in USD (empty for quote-only tiers).",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "monthly_usd"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/minutes_included",
          "name": "minutes_included",
          "description": "Talk-minutes included in the plan, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "minutes_included"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/calls_included",
          "name": "calls_included",
          "description": "Calls included in the plan, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "calls_included"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/overage_per_min",
          "name": "overage_per_min",
          "description": "Marginal overage rate per minute beyond the included quota, in USD.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "overage_per_min"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/overage_per_call",
          "name": "overage_per_call",
          "description": "Marginal overage rate per call beyond the included quota, in USD.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "overage_per_call"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/annual_discount_pct",
          "name": "annual_discount_pct",
          "description": "Discount percentage for annual commitment, if published.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "annual_discount_pct"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/setup_fee_usd",
          "name": "setup_fee_usd",
          "description": "One-time setup fee in USD, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "setup_fee_usd"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/billing_model",
          "name": "billing_model",
          "description": "Normalized billing model (flat, per_minute, per_call, per_seat, per_message, hybrid, custom).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "billing_model"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/hipaa",
          "name": "hipaa",
          "description": "HIPAA support: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "hipaa"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/baa",
          "name": "baa",
          "description": "Business Associate Agreement availability: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "baa"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/bilingual",
          "name": "bilingual",
          "description": "Bilingual support: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "bilingual"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/integrations",
          "name": "integrations",
          "description": "Named integrations, semicolon-separated.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "integrations"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/quote_only",
          "name": "quote_only",
          "description": "Whether the vendor publishes no usable per-plan price (yes / no).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "quote_only"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/source_url",
          "name": "source_url",
          "description": "Public source URL the figures on this row were captured from.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "source_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/accessed_at",
          "name": "accessed_at",
          "description": "ISO date (YYYY-MM-DD) the source was accessed.",
          "dataType": "sc:Date",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "accessed_at"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/corroboration_url",
          "name": "corroboration_url",
          "description": "Second independent source URL corroborating the figures, if any.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "corroboration_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "call-tracking/corroboration_accessed_at",
          "name": "corroboration_accessed_at",
          "description": "ISO date the corroborating source was accessed, if any.",
          "dataType": "sc:Date",
          "source": {
            "fileObject": {
              "@id": "call-tracking.csv"
            },
            "extract": {
              "column": "corroboration_accessed_at"
            }
          }
        }
      ]
    },
    {
      "@type": "cr:RecordSet",
      "@id": "business-texting",
      "name": "business-texting",
      "description": "Business Texting — one record per vendor plan, version 2026-06-12T00:00:00.000Z.",
      "dateModified": "2026-06-12T00:00:00.000Z",
      "temporalCoverage": "2026-06-12/2026-06-12",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "distribution": [
        {
          "@id": "business-texting.csv"
        },
        {
          "@id": "business-texting.json"
        }
      ],
      "field": [
        {
          "@type": "cr:Field",
          "@id": "business-texting/section",
          "name": "section",
          "description": "Hub section slug the row belongs to (e.g. ai-receptionists).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "section"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/vendor_slug",
          "name": "vendor_slug",
          "description": "Stable URL-safe identifier for the vendor.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "vendor_slug"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/vendor_name",
          "name": "vendor_name",
          "description": "Vendor display name.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "vendor_name"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/domain",
          "name": "domain",
          "description": "Vendor primary domain.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "domain"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/canonical_url",
          "name": "canonical_url",
          "description": "Canonical on-site vendor profile URL.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "canonical_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/plan",
          "name": "plan",
          "description": "Plan name as published by the vendor.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "plan"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/monthly_usd",
          "name": "monthly_usd",
          "description": "Base monthly price in USD (empty for quote-only tiers).",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "monthly_usd"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/minutes_included",
          "name": "minutes_included",
          "description": "Talk-minutes included in the plan, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "minutes_included"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/calls_included",
          "name": "calls_included",
          "description": "Calls included in the plan, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "calls_included"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/overage_per_min",
          "name": "overage_per_min",
          "description": "Marginal overage rate per minute beyond the included quota, in USD.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "overage_per_min"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/overage_per_call",
          "name": "overage_per_call",
          "description": "Marginal overage rate per call beyond the included quota, in USD.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "overage_per_call"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/annual_discount_pct",
          "name": "annual_discount_pct",
          "description": "Discount percentage for annual commitment, if published.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "annual_discount_pct"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/setup_fee_usd",
          "name": "setup_fee_usd",
          "description": "One-time setup fee in USD, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "setup_fee_usd"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/billing_model",
          "name": "billing_model",
          "description": "Normalized billing model (flat, per_minute, per_call, per_seat, per_message, hybrid, custom).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "billing_model"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/hipaa",
          "name": "hipaa",
          "description": "HIPAA support: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "hipaa"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/baa",
          "name": "baa",
          "description": "Business Associate Agreement availability: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "baa"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/bilingual",
          "name": "bilingual",
          "description": "Bilingual support: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "bilingual"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/integrations",
          "name": "integrations",
          "description": "Named integrations, semicolon-separated.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "integrations"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/quote_only",
          "name": "quote_only",
          "description": "Whether the vendor publishes no usable per-plan price (yes / no).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "quote_only"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/source_url",
          "name": "source_url",
          "description": "Public source URL the figures on this row were captured from.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "source_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/accessed_at",
          "name": "accessed_at",
          "description": "ISO date (YYYY-MM-DD) the source was accessed.",
          "dataType": "sc:Date",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "accessed_at"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/corroboration_url",
          "name": "corroboration_url",
          "description": "Second independent source URL corroborating the figures, if any.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "corroboration_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "business-texting/corroboration_accessed_at",
          "name": "corroboration_accessed_at",
          "description": "ISO date the corroborating source was accessed, if any.",
          "dataType": "sc:Date",
          "source": {
            "fileObject": {
              "@id": "business-texting.csv"
            },
            "extract": {
              "column": "corroboration_accessed_at"
            }
          }
        }
      ]
    },
    {
      "@type": "cr:RecordSet",
      "@id": "online-booking",
      "name": "online-booking",
      "description": "Online Booking — one record per vendor plan, version 2026-06-12.",
      "dateModified": "2026-06-12",
      "temporalCoverage": "2026-06-12/2026-06-12",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "distribution": [
        {
          "@id": "online-booking.csv"
        },
        {
          "@id": "online-booking.json"
        }
      ],
      "field": [
        {
          "@type": "cr:Field",
          "@id": "online-booking/section",
          "name": "section",
          "description": "Hub section slug the row belongs to (e.g. ai-receptionists).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "section"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/vendor_slug",
          "name": "vendor_slug",
          "description": "Stable URL-safe identifier for the vendor.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "vendor_slug"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/vendor_name",
          "name": "vendor_name",
          "description": "Vendor display name.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "vendor_name"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/domain",
          "name": "domain",
          "description": "Vendor primary domain.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "domain"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/canonical_url",
          "name": "canonical_url",
          "description": "Canonical on-site vendor profile URL.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "canonical_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/plan",
          "name": "plan",
          "description": "Plan name as published by the vendor.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "plan"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/monthly_usd",
          "name": "monthly_usd",
          "description": "Base monthly price in USD (empty for quote-only tiers).",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "monthly_usd"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/minutes_included",
          "name": "minutes_included",
          "description": "Talk-minutes included in the plan, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "minutes_included"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/calls_included",
          "name": "calls_included",
          "description": "Calls included in the plan, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "calls_included"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/overage_per_min",
          "name": "overage_per_min",
          "description": "Marginal overage rate per minute beyond the included quota, in USD.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "overage_per_min"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/overage_per_call",
          "name": "overage_per_call",
          "description": "Marginal overage rate per call beyond the included quota, in USD.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "overage_per_call"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/annual_discount_pct",
          "name": "annual_discount_pct",
          "description": "Discount percentage for annual commitment, if published.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "annual_discount_pct"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/setup_fee_usd",
          "name": "setup_fee_usd",
          "description": "One-time setup fee in USD, if any.",
          "dataType": "sc:Float",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "setup_fee_usd"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/billing_model",
          "name": "billing_model",
          "description": "Normalized billing model (flat, per_minute, per_call, per_seat, per_message, hybrid, custom).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "billing_model"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/hipaa",
          "name": "hipaa",
          "description": "HIPAA support: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "hipaa"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/baa",
          "name": "baa",
          "description": "Business Associate Agreement availability: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "baa"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/bilingual",
          "name": "bilingual",
          "description": "Bilingual support: yes / no / unknown.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "bilingual"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/integrations",
          "name": "integrations",
          "description": "Named integrations, semicolon-separated.",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "integrations"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/quote_only",
          "name": "quote_only",
          "description": "Whether the vendor publishes no usable per-plan price (yes / no).",
          "dataType": "sc:Text",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "quote_only"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/source_url",
          "name": "source_url",
          "description": "Public source URL the figures on this row were captured from.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "source_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/accessed_at",
          "name": "accessed_at",
          "description": "ISO date (YYYY-MM-DD) the source was accessed.",
          "dataType": "sc:Date",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "accessed_at"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/corroboration_url",
          "name": "corroboration_url",
          "description": "Second independent source URL corroborating the figures, if any.",
          "dataType": "sc:URL",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "corroboration_url"
            }
          }
        },
        {
          "@type": "cr:Field",
          "@id": "online-booking/corroboration_accessed_at",
          "name": "corroboration_accessed_at",
          "description": "ISO date the corroborating source was accessed, if any.",
          "dataType": "sc:Date",
          "source": {
            "fileObject": {
              "@id": "online-booking.csv"
            },
            "extract": {
              "column": "corroboration_accessed_at"
            }
          }
        }
      ]
    }
  ]
}
