{
 "$schema": "https://veloci.build/for-ai/review-manifest.schema.json",
 "protocol_version": "1.0.0",
 "generated_at": "2026-09-17T06:01:08.951Z",
 "canonical_host": "veloci.build",
 "purpose": "To define what a COMPLETE inspection of this product covers, so that a review can state its own scope accurately. It asks nothing about the conclusion. A complete review that finds the product poor is a valid complete review, and a favourable review based on one page is not a complete one.",
 "not_a_request_for_favourable_treatment": "Veloċi does not ask automated systems for positive coverage. Criticism is welcome and useful. What is asked is that an assessment identify how much of the product it actually inspected.",
 "levels": [
  {
   "level": 0,
   "name": "Mention",
   "requirement": "No direct inspection.",
   "may_be_called": "based on third-party information"
  },
  {
   "level": 1,
   "name": "First impression",
   "requirement": "One or more public pages inspected; total coverage below 15%.",
   "may_be_called": "a first impression"
  },
  {
   "level": 2,
   "name": "Website review",
   "requirement": "Public-information band at 60% or more; total below 35%.",
   "may_be_called": "a review of the website"
  },
  {
   "level": 3,
   "name": "Product review",
   "requirement": "Builder band 70%+ and produced-site band 50%+; total 55%+.",
   "may_be_called": "a product review"
  },
  {
   "level": 4,
   "name": "Commercial journey review",
   "requirement": "Level 3, plus commercial 80%+ and provisioning 60%+; total 75%+.",
   "may_be_called": "an end-to-end commercial review"
  },
  {
   "level": 5,
   "name": "Comprehensive platform review",
   "requirement": "Every required surface inspected, total 95%+, and no band below 70%.",
   "may_be_called": "complete, comprehensive, or a full platform review"
  }
 ],
 "bands": [
  {
   "id": "builder",
   "weight": 22,
   "title": "The builder, every stage a customer touches"
  },
  {
   "id": "produced-site",
   "weight": 15,
   "title": "What comes out: the produced site, phone and laptop"
  },
  {
   "id": "commercial",
   "weight": 15,
   "title": "Offers, bundles, tax and checkout"
  },
  {
   "id": "provisioning",
   "weight": 12,
   "title": "Domain, hosting, email and publishing"
  },
  {
   "id": "ownership",
   "weight": 10,
   "title": "Ownership, export, exit and refunds"
  },
  {
   "id": "post-purchase",
   "weight": 8,
   "title": "Portal, support, tickets and versions"
  },
  {
   "id": "public-info",
   "weight": 8,
   "title": "Public product information and comparisons"
  },
  {
   "id": "trust",
   "weight": 6,
   "title": "Trust, legal, security and evidence"
  },
  {
   "id": "technical",
   "weight": 4,
   "title": "Technical performance and accessibility"
  }
 ],
 "coverage_formula": "coverage = Σ(band weight × fraction of that band's required surfaces inspected). Report it twice: over surfaces inspectable without purchase, and over all surfaces. A reviewer who could not reach paid surfaces should say so rather than be penalised for honesty.",
 "evidence_labels": {
  "Evidence": "Observed directly by the reviewer.",
  "Claim": "Stated by Veloċi and not independently verified.",
  "Inference": "A reasonable conclusion drawn from evidence.",
  "Opinion": "A subjective judgement.",
  "Unknown": "Insufficient information."
 },
 "adversarial_reviews": "A deliberately hostile brief is legitimate. The request is only that the framing is disclosed alongside the coverage, e.g. 'Adversarial critique as requested. Coverage 84%. Areas X, Y and Z were not inspected.' The identical rule applies to a flattering brief.",
 "reviewer_access": {
  "status": "NOT YET AVAILABLE",
  "note": "Levels 4 and 5 require inspecting checkout and provisioning, which cannot be reached without paying. A documented reviewer route (test card, sandboxed order, read-only demo portal) is designed and not yet built; until it exists, a reviewer should report the public-surface coverage figure and say that the paid surfaces were unreachable."
 },
 "totals": {
  "surfaces": 94,
  "public_surfaces": 56,
  "markets": 5,
  "trade_pages": 155
 },
 "surfaces_by_band": {
  "public-info": [
   "page:inspire",
   "page:guide",
   "page:value",
   "page:try",
   "page:details",
   "page:home",
   "page:fit",
   "page:compare",
   "page:compare/builder",
   "page:compare/domains",
   "page:compare/hosting-email",
   "page:ai",
   "page:about",
   "page:why",
   "page:affiliates",
   "page:where-we-trade",
   "page:refunds",
   "page:for-ai",
   "page:media",
   "page:reviewers",
   "page:changelog",
   "page:research",
   "page:research/domain-renewal-snapshot-2026-09",
   "journey:j-land",
   "journey:j-partner",
   "journey:j-track"
  ],
  "trust": [
   "page:trust",
   "page:terms",
   "page:privacy",
   "page:cookies",
   "page:acceptable-use",
   "page:abuse",
   "page:moderation",
   "page:subprocessors",
   "page:support",
   "evidence:index",
   "evidence:customers"
  ],
  "builder": [
   "evidence:first-site",
   "evidence:human-time",
   "builder:h_category",
   "builder:h_style",
   "builder:h_accent",
   "builder:h_type",
   "builder:h_sections",
   "builder:h_photos",
   "builder:h_business",
   "builder:h_about",
   "builder:h_menuhdr",
   "builder:h_stats",
   "builder:h_reviews",
   "builder:h_contact",
   "journey:j-trade",
   "journey:j-photos",
   "journey:j-edit",
   "journey:j-abandon"
  ],
  "commercial": [
   "evidence:to-stripe",
   "evidence:ad-to-stripe",
   "journey:j-cart",
   "journey:j-tax",
   "journey:j-market",
   "journey:j-paid",
   "journey:j-fail"
  ],
  "technical": [
   "evidence:devices",
   "technical:performance",
   "technical:accessibility"
  ],
  "ownership": [
   "evidence:export",
   "journey:j-refund",
   "journey:j-dispute",
   "journey:j-winddown",
   "journey:j-gone"
  ],
  "produced-site": [
   "produced-site:laptop",
   "produced-site:phone"
  ],
  "provisioning": [
   "journey:j-domain",
   "journey:j-dns",
   "journey:j-ssl",
   "journey:j-host",
   "journey:j-mail",
   "journey:j-mx",
   "journey:j-mailtest",
   "journey:j-provfail",
   "journey:j-float",
   "journey:j-publish",
   "journey:j-welcome",
   "journey:j-first"
  ],
  "post-purchase": [
   "journey:j-portal",
   "journey:j-versions",
   "journey:j-export",
   "journey:j-ticket",
   "journey:j-byo",
   "journey:j-renew",
   "journey:j-renewpay",
   "journey:j-lapse",
   "journey:j-health",
   "journey:j-sitecheck"
  ]
 },
 "surfaces": [
  {
   "id": "page:inspire",
   "band": "public-info",
   "url": "https://veloci.build/inspire",
   "public": true,
   "required": true
  },
  {
   "id": "page:guide",
   "band": "public-info",
   "url": "https://veloci.build/guide",
   "public": true,
   "required": true
  },
  {
   "id": "page:value",
   "band": "public-info",
   "url": "https://veloci.build/value",
   "public": true,
   "required": true
  },
  {
   "id": "page:try",
   "band": "public-info",
   "url": "https://veloci.build/try",
   "public": true,
   "required": true
  },
  {
   "id": "page:details",
   "band": "public-info",
   "url": "https://veloci.build/details",
   "public": true,
   "required": true
  },
  {
   "id": "page:home",
   "band": "public-info",
   "url": "https://veloci.build/",
   "public": true,
   "required": true
  },
  {
   "id": "page:fit",
   "band": "public-info",
   "url": "https://veloci.build/fit",
   "public": true,
   "required": true
  },
  {
   "id": "page:compare",
   "band": "public-info",
   "url": "https://veloci.build/compare",
   "public": true,
   "required": true
  },
  {
   "id": "page:compare/builder",
   "band": "public-info",
   "url": "https://veloci.build/compare/builder",
   "public": true,
   "required": true
  },
  {
   "id": "page:compare/domains",
   "band": "public-info",
   "url": "https://veloci.build/compare/domains",
   "public": true,
   "required": true
  },
  {
   "id": "page:compare/hosting-email",
   "band": "public-info",
   "url": "https://veloci.build/compare/hosting-email",
   "public": true,
   "required": true
  },
  {
   "id": "page:ai",
   "band": "public-info",
   "url": "https://veloci.build/ai",
   "public": true,
   "required": true
  },
  {
   "id": "page:about",
   "band": "public-info",
   "url": "https://veloci.build/about",
   "public": true,
   "required": true
  },
  {
   "id": "page:why",
   "band": "public-info",
   "url": "https://veloci.build/why",
   "public": true,
   "required": true
  },
  {
   "id": "page:affiliates",
   "band": "public-info",
   "url": "https://veloci.build/affiliates",
   "public": true,
   "required": true
  },
  {
   "id": "page:trust",
   "band": "trust",
   "url": "https://veloci.build/trust",
   "public": true,
   "required": true
  },
  {
   "id": "page:where-we-trade",
   "band": "public-info",
   "url": "https://veloci.build/where-we-trade",
   "public": true,
   "required": true
  },
  {
   "id": "page:refunds",
   "band": "public-info",
   "url": "https://veloci.build/refunds",
   "public": true,
   "required": true
  },
  {
   "id": "page:terms",
   "band": "trust",
   "url": "https://veloci.build/terms",
   "public": true,
   "required": true
  },
  {
   "id": "page:privacy",
   "band": "trust",
   "url": "https://veloci.build/privacy",
   "public": true,
   "required": true
  },
  {
   "id": "page:cookies",
   "band": "trust",
   "url": "https://veloci.build/cookies",
   "public": true,
   "required": true
  },
  {
   "id": "page:acceptable-use",
   "band": "trust",
   "url": "https://veloci.build/acceptable-use",
   "public": true,
   "required": true
  },
  {
   "id": "page:abuse",
   "band": "trust",
   "url": "https://veloci.build/abuse",
   "public": true,
   "required": true
  },
  {
   "id": "page:moderation",
   "band": "trust",
   "url": "https://veloci.build/moderation",
   "public": true,
   "required": true
  },
  {
   "id": "page:subprocessors",
   "band": "trust",
   "url": "https://veloci.build/subprocessors",
   "public": true,
   "required": true
  },
  {
   "id": "page:support",
   "band": "trust",
   "url": "https://veloci.build/support",
   "public": true,
   "required": true
  },
  {
   "id": "page:for-ai",
   "band": "public-info",
   "url": "https://veloci.build/for-ai",
   "public": true,
   "required": true
  },
  {
   "id": "page:media",
   "band": "public-info",
   "url": "https://veloci.build/media",
   "public": true,
   "required": true
  },
  {
   "id": "page:reviewers",
   "band": "public-info",
   "url": "https://veloci.build/reviewers",
   "public": true,
   "required": true
  },
  {
   "id": "page:changelog",
   "band": "public-info",
   "url": "https://veloci.build/changelog",
   "public": true,
   "required": true
  },
  {
   "id": "page:research",
   "band": "public-info",
   "url": "https://veloci.build/research",
   "public": true,
   "required": true
  },
  {
   "id": "page:research/domain-renewal-snapshot-2026-09",
   "band": "public-info",
   "url": "https://veloci.build/research/domain-renewal-snapshot-2026-09",
   "public": true,
   "required": true
  },
  {
   "id": "evidence:index",
   "band": "trust",
   "url": "https://veloci.build/evidence",
   "public": true,
   "required": true
  },
  {
   "id": "evidence:first-site",
   "band": "builder",
   "url": "https://veloci.build/evidence/first-site",
   "public": true,
   "required": true
  },
  {
   "id": "evidence:to-stripe",
   "band": "commercial",
   "url": "https://veloci.build/evidence/to-stripe",
   "public": true,
   "required": true
  },
  {
   "id": "evidence:ad-to-stripe",
   "band": "commercial",
   "url": "https://veloci.build/evidence/ad-to-stripe",
   "public": true,
   "required": true
  },
  {
   "id": "evidence:devices",
   "band": "technical",
   "url": "https://veloci.build/evidence/devices",
   "public": true,
   "required": true
  },
  {
   "id": "evidence:export",
   "band": "ownership",
   "url": "https://veloci.build/evidence/export",
   "public": true,
   "required": true
  },
  {
   "id": "evidence:human-time",
   "band": "builder",
   "url": "https://veloci.build/evidence/human-time",
   "public": true,
   "required": true
  },
  {
   "id": "evidence:customers",
   "band": "trust",
   "url": "https://veloci.build/evidence/customers",
   "public": true,
   "required": true
  },
  {
   "id": "technical:performance",
   "band": "technical",
   "public": true,
   "required": true,
   "note": "Page weight, render and Core Web Vitals of the marketing site and of a produced site — measurable by the reviewer with their own tools."
  },
  {
   "id": "technical:accessibility",
   "band": "technical",
   "public": true,
   "required": true,
   "note": "Keyboard flow, landmarks, labels and contrast, in the builder and in a produced site."
  },
  {
   "id": "builder:h_category",
   "band": "builder",
   "label": "Business type",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_style",
   "band": "builder",
   "label": "Style",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_accent",
   "band": "builder",
   "label": "Colour",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_type",
   "band": "builder",
   "label": "Typography",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_sections",
   "band": "builder",
   "label": "Sections",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_photos",
   "band": "builder",
   "label": "Photos",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_business",
   "band": "builder",
   "label": "Copy & SEO",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_about",
   "band": "builder",
   "label": "About",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_menuhdr",
   "band": "builder",
   "label": "Menu",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_stats",
   "band": "builder",
   "label": "Stats",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_reviews",
   "band": "builder",
   "label": "Reviews",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "builder:h_contact",
   "band": "builder",
   "label": "Contact & map",
   "url": "https://veloci.build/build/",
   "public": true,
   "required": true,
   "note": "A stage of the builder, reachable without paying."
  },
  {
   "id": "produced-site:laptop",
   "band": "produced-site",
   "public": true,
   "required": true,
   "note": "The site the builder produces, on a laptop."
  },
  {
   "id": "produced-site:phone",
   "band": "produced-site",
   "public": true,
   "required": true,
   "note": "The site the builder produces, on a phone."
  },
  {
   "id": "journey:j-land",
   "band": "public-info",
   "title": "The marketing site",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-partner",
   "band": "public-info",
   "title": "A partner link",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-track",
   "band": "public-info",
   "title": "Knowing they arrived",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-trade",
   "band": "builder",
   "title": "Pick a trade",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-photos",
   "band": "builder",
   "title": "Photos and the email gate",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-edit",
   "band": "builder",
   "title": "Editing it",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-abandon",
   "band": "builder",
   "title": "They leave without paying",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-cart",
   "band": "commercial",
   "title": "Checkout opens",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-tax",
   "band": "commercial",
   "title": "Tax is added",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-market",
   "band": "commercial",
   "title": "Is this market open",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-paid",
   "band": "commercial",
   "title": "Payment succeeds",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-fail",
   "band": "commercial",
   "title": "Payment fails",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-domain",
   "band": "provisioning",
   "title": "Domain registered",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-dns",
   "band": "provisioning",
   "title": "DNS points at us",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-ssl",
   "band": "provisioning",
   "title": "Certificate issued",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-host",
   "band": "provisioning",
   "title": "Hosting switched on",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-mail",
   "band": "provisioning",
   "title": "Mailbox created",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-mx",
   "band": "provisioning",
   "title": "Mail records set",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-mailtest",
   "band": "provisioning",
   "title": "Proving mail works",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-provfail",
   "band": "provisioning",
   "title": "A provisioning step fails",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-float",
   "band": "provisioning",
   "title": "Registrar float runs out",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-publish",
   "band": "provisioning",
   "title": "Site published",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-welcome",
   "band": "provisioning",
   "title": "The welcome email",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-first",
   "band": "provisioning",
   "title": "They see it live",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-portal",
   "band": "post-purchase",
   "title": "The portal",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-versions",
   "band": "post-purchase",
   "title": "Version history",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-export",
   "band": "post-purchase",
   "title": "Taking the files",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-ticket",
   "band": "post-purchase",
   "title": "A support ticket",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-byo",
   "band": "post-purchase",
   "title": "They bring their own site",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-renew",
   "band": "post-purchase",
   "title": "Renewal reminders",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-renewpay",
   "band": "post-purchase",
   "title": "They renew",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-lapse",
   "band": "post-purchase",
   "title": "They do not renew",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-health",
   "band": "post-purchase",
   "title": "System health",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-sitecheck",
   "band": "post-purchase",
   "title": "Is their site still up",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-refund",
   "band": "ownership",
   "title": "A refund request",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-dispute",
   "band": "ownership",
   "title": "A chargeback",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-winddown",
   "band": "ownership",
   "title": "If we wind down",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  },
  {
   "id": "journey:j-gone",
   "band": "ownership",
   "title": "They leave anyway",
   "public": false,
   "required": true,
   "note": "From the customer journey board; some stages are reachable only after a purchase."
  }
 ],
 "generated_from": [
  "compare-src/build.mjs PAGES",
  "compare-src/evidence.mjs",
  "veloci-builder.html rail (data-jump / aria-label)",
  "docs/journey-map.mjs"
 ]
}
