Agent-readiness report Demo · fictional store

Hollow Oak Coffee Roasters

hollowoak.example WooCommerce 6 Oct 2026, 09:14 UTC 10 requests

Markdown JSON Re-scan
44 EMostly invisible

Most AI agents cannot see this store at all.

Grade E, mostly invisible. 6 failing checks, 6 warnings, 11 passed.

Score capped at 44. The checks add up to 58, but robots.txt blocks the main AI search agents, so the rest barely matters until that is fixed. See the check.

  1. 01 Access 63/100

    Can an agent reach your pages at all? 6 pass · 0 warn · 2 fail · 30% weight

  2. 02 Understanding 77/100

    Can it read what you sell without running JavaScript? 3 pass · 3 warn · 1 fail · 30% weight

  3. 03 Trust 30/100

    Can it verify who you are and what the terms are? 0 pass · 2 warn · 2 fail · 20% weight

  4. 04 Transaction 52/100

    Can it start a purchase through a protocol? 2 pass · 1 warn · 1 fail · 20% weight

Fix these first

  1. 1
    AI search and shopping agents are allowed

    Allow search and user-triggered agents explicitly. Keep blocking training crawlers if you want to.

    Fail Access

  2. 2
    UCP business profile

    Publish a UCP profile backed by a working checkout implementation.

    Fail Transaction

  3. 3
    Visible price matches structured data

    Generate JSON-LD from the same price the template displays, including sale prices.

    Fail Trust

01 / Access

Can an agent reach your pages at all?

63/100

Fail Fast first byte Slowest time to first byte: 1720 ms. Agents with tight timeouts will give up.

Why agents care

User-triggered agents fetch pages while someone waits for an answer, with short timeouts. A slow server is a skipped store.

What we found

/
1380 ms
/product/ethiopia-guji-natural/
1720 ms

Fix

Cache full HTML pages so they are served without hitting the application.

  • Enable full-page caching (host cache, LiteSpeed Cache or WP Rocket) so the HTML is served without PHP on every request.
  • Exclude only cart, checkout and my-account from the cache.
Pass Homepage answers an agent HTTP 200.

Why agents care

Every agent starts with an HTTP request. Anything other than a fast 200 with HTML ends the visit before it begins.

What we found

Status
200
Final URL
https://hollowoak.example/
Redirects
0
Content-Type
text/html; charset=UTF-8
Pass No bot wall in front of the store Bots and browsers receive the same page.

Why agents care

Bot-protection that challenges every non-browser client blocks AI agents even when robots.txt welcomes them. Agents cannot solve JavaScript challenges or CAPTCHAs.

What we found

As LegibleBot
HTTP 200
As a browser
HTTP 200
Size difference
0 KB
Pass XML sitemap lists your products Valid sitemap with 6 product URLs.

Why agents care

Crawlers that build AI search indexes discover product URLs from sitemaps far more reliably than from links, especially on large catalogues.

What we found

Location
https://hollowoak.example/sitemap_index.xml
Found via
robots.txt
Type
Sitemap index (4 child sitemaps)
Product sitemap
https://hollowoak.example/product-sitemap.xml (6 URLs)
Pass Pages are not marked noindex No noindex directives on the pages scanned.

Why agents care

A noindex meta tag or X-Robots-Tag header tells search agents to drop the page from their index, even when robots.txt allows crawling.

What we found

Homepage
no directive
Product page
no directive
Pass robots.txt is valid robots.txt parses cleanly: 2 groups, 1 sitemap.

Why agents care

RFC 9309 says a robots.txt that errors with 5xx means "crawl nothing", and an HTML page served as robots.txt is noise. A clean file also points agents at your sitemap.

What we found

Groups
2
Sitemap lines
1
Unrecognised lines
none
Pass Lean HTML 7 KB of HTML for /product/ethiopia-guji-natural/.

Why agents care

Agents download and tokenise your HTML. Megabytes of inline scripts and styles bury product facts and can hit size caps before the content.

What we found

HTML size
7 KB
Inline script
0 KB in 6 tags
Visible words
157
Info Training crawler policy 7 training crawlers blocked, 1 allowed.

Why agents care

Training crawlers (GPTBot, ClaudeBot, Google-Extended, CCBot and others) collect content for future models. Blocking them is a legitimate business choice and does not affect AI search visibility. Legible reports your stance but does not score it.

What we found

GPTBot (OpenAI)
Blocked
ClaudeBot (Anthropic)
Blocked
Google-Extended (Google)
Blocked
Applebot-Extended (Apple)
Allowed
Amazonbot (Amazon)
Blocked
meta-externalagent (Meta)
Blocked
CCBot (Common Crawl)
Blocked
Bytespider (ByteDance)
Blocked

02 / Understanding

Can it read what you sell without running JavaScript?

77/100

Fail OpenGraph product preview OpenGraph is mostly missing (og:description, og:image and og:type).

Why agents care

Chat interfaces render link previews and many agents fall back to OpenGraph when JSON-LD is missing. og:title, og:image and og:type are the minimum.

What we found

og:title
Ethiopia Guji Natural - Hollow Oak Coffee Roasters
og:description
missing
og:image
missing
og:url
https://hollowoak.example/product/ethiopia-guji-natural/
og:type
missing

Fix

Add og:description, og:image and og:type to the product template.

Warn Complete Product structured data Product schema is 65% complete. Missing: gtin / mpn, brand, shippingDetails, hasMerchantReturnPolicy and aggregateRating.

Why agents care

Schema.org Product and Offer JSON-LD is the most reliable way for agents and shopping indexes to read price, currency, stock, identifiers, shipping and returns without guessing from layout.

What we found

name
Ethiopia Guji Natural
image
https://hollowoak.example/wp-content/uploads/2026/09/guji.jpg
description
Natural process coffee from the Guji zone. Notes of blueberry, dark chocolate an
offers.price
16.5
offers.priceCurrency
EUR
offers.availability
http://schema.org/InStock
sku
HO-GUJI-250
gtin / mpn
missing
brand
missing
shippingDetails
missing
hasMerchantReturnPolicy
missing
aggregateRating
missing

Fix

Add the missing Product fields. The template below is pre-filled with what Legible found.

  • WooCommerce outputs basic Product JSON-LD on its own. Fill the native "GTIN, UPC, EAN or ISBN" field (Inventory tab, WooCommerce 9.2+) and a brand for every product.
  • Shipping and return details are not in the default markup: add them through your SEO plugin's schema settings or a small snippet hooked to woocommerce_structured_data_product.
  • Avoid two plugins both printing Product schema: duplicates with different prices confuse agents.
Product JSON-LD (product template) Download
<!-- Product JSON-LD generated by Legible from this page.
     Replace every REPLACE_… value, then check delivery times, the 14-day
     return window and return fees against your real policy before publishing.
     Add aggregateRating only if the page shows real customer reviews. -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Ethiopia Guji Natural",
  "description": "Natural process coffee from the Guji zone. Notes of blueberry, dark chocolate and jasmine. 250 g whole bean.",
  "image": [
    "https://hollowoak.example/wp-content/uploads/2026/09/guji.jpg"
  ],
  "sku": "HO-GUJI-250",
  "gtin": "REPLACE_BARCODE_OR_DELETE_THIS_LINE",
  "brand": {
    "@type": "Brand",
    "name": "Hollow Oak Coffee Roasters"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://hollowoak.example/product/ethiopia-guji-natural/",
    "price": "16.50",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "seller": {
      "@type": "Organization",
      "name": "Hollow Oak Coffee Roasters"
    },
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "REPLACE_SHIPPING_COST",
        "currency": "EUR"
      },
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "REPLACE_COUNTRY_CODE"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": 0,
          "maxValue": 1,
          "unitCode": "DAY"
        },
        "transitTime": {
          "@type": "QuantitativeValue",
          "minValue": 1,
          "maxValue": 3,
          "unitCode": "DAY"
        }
      }
    },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "applicableCountry": "REPLACE_COUNTRY_CODE",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 14,
      "returnMethod": "https://schema.org/ReturnByMail",
      "returnFees": "https://schema.org/ReturnShippingFees"
    }
  }
}
</script>
Warn One clear H1 with the product name 2 H1 headings. The product name should be the only one.

Why agents care

Extractors use the heading outline to split a page into sections. One H1 naming the product, then H2s for details and reviews, makes the page easy to chunk.

What we found

H1
Hollow Oak Coffee Roasters | Ethiopia Guji Natural
H2
3

Fix

Demote logo and section titles to other elements; keep one <h1> for the product.

Warn llms.txt guide for agents No llms.txt found.

Why agents care

llms.txt is a proposed markdown index of a site's most useful pages. No major assistant has confirmed it uses the file, so it carries little weight here, but it is cheap and gives agents a clean map of products and policies.

What we found

llms-full.txt
not found

Fix

Publish /llms.txt. This one is generated from the pages Legible found on your site.

  • Upload llms.txt to the WordPress root (next to wp-config.php), or use an SEO plugin that generates one (Yoast and Rank Math both offer llms.txt generation).
/llms.txt Download
# Hollow Oak Coffee Roasters

> Specialty coffee roasted weekly in Zagreb. Single origins and blends, shipped across Croatia and the EU.

## Products

- [Ethiopia Guji Natural](https://hollowoak.example/product/ethiopia-guji-natural/)
- [Colombia Huila Washed](https://hollowoak.example/product/colombia-huila-washed/)
- [Oak House Espresso](https://hollowoak.example/product/oak-house-espresso/)

## Categories

- [Shop](https://hollowoak.example/shop/)
- [Single origin](https://hollowoak.example/product-category/single-origin/)
- [Blends](https://hollowoak.example/product-category/blends/)

## Policies

- [Privacy Policy](https://hollowoak.example/privacy-policy/)
- [Terms & Conditions](https://hollowoak.example/terms-and-conditions/)
- [Contact](https://hollowoak.example/contact/)

## Optional

- [Our story](https://hollowoak.example/our-story/)
Pass Product facts are in the raw HTML Name, price and 157 words of content are in the server HTML.

Why agents care

Most AI fetchers do not run JavaScript. If the name, price and description only appear after scripts run, the agent sees an empty page and moves on.

What we found

Visible words (no JS)
157
Product name in text
Yes
Price in text
16.50, 16.50, 14.90
Pass Organization and WebSite schema Organization and WebSite schema identify the store as "Hollow Oak Coffee Roasters".

Why agents care

Organization and WebSite markup tells an agent the store's official name, logo, URL and social profiles, so it can tell your shop apart from resellers and lookalikes.

What we found

Organization
Hollow Oak Coffee Roasters
WebSite
Hollow Oak Coffee Roasters
logo
present
sameAs
missing
Pass Canonical URL and language Canonical set, language en-US.

Why agents care

A canonical URL collapses filter and tracking variants into one product, and a lang attribute tells the agent which language and market the price and policies apply to.

What we found

canonical
https://hollowoak.example/product/ethiopia-guji-natural/
html lang
en-US

03 / Trust

Can it verify who you are and what the terms are?

30/100

Fail Policy pages are linked No shipping and returns page is linked from the homepage or product page.

Why agents care

Before recommending a purchase, assistants look for shipping costs, the return window and who to contact. In the EU, consumers have a 14-day right of withdrawal for most online purchases (Directive 2011/83/EU, Art. 9), so returns terms are a deciding fact.

What we found

Shipping
no link found
Returns
no link found
Privacy
https://hollowoak.example/privacy-policy/
Terms
https://hollowoak.example/terms-and-conditions/
Contact
https://hollowoak.example/contact/

Fix

Link shipping and returns from the site footer.

  • Link shipping, returns, privacy and terms pages in the footer menu (Appearance → Menus or the Site Editor footer). Set the Terms page under WooCommerce → Settings → Advanced.
Fail Visible price matches structured data JSON-LD still says EUR 16.50, the struck-through regular price. Shoppers see 14.90. Agents will quote the higher price.

Why agents care

When the price a shopper sees differs from the price in JSON-LD, agents quote the wrong number or distrust both. Google Merchant Center suspends listings for mismatches, and under EU consumer law the price shown must be the price charged.

What we found

JSON-LD price
EUR 16.50
Current prices on page
14.90
Struck-through prices
16.50
Microdata price
none

Fix

Generate JSON-LD from the same price the template displays, including sale prices.

  • Typical cause: a caching or SEO plugin prints the regular price while the theme shows the sale price. Purge caches after price changes and keep one schema source.
Warn HTTPS everywhere, with HSTS HTTPS works, but no HSTS header is sent.

Why agents care

Agents that hand a shopper off to checkout will not send them to an insecure page. HSTS proves the store never falls back to plain HTTP.

What we found

Final URL scheme
https
http:// redirects to https
yes (301)
Strict-Transport-Security
not sent

Fix

Send an HSTS header.

  • Add the Strict-Transport-Security header at the web server or CDN; security plugins such as Really Simple SSL can also add it.
Response header Download
Strict-Transport-Security: max-age=31536000
Warn Business identity is machine-readable Organization schema found, but address, contact details and legal name or VAT ID are missing.

Why agents care

Agents weigh whether a merchant is real. A legal name, postal address and a contact point in Organization schema are the strongest signals short of a marketplace listing.

What we found

address
missing
email / telephone / contactPoint
missing
legalName / vatID
missing

Fix

Add address, contact details and legal name or VAT ID to the Organization node.

04 / Transaction

Can it start a purchase through a protocol?

52/100

Fail UCP business profile No UCP profile at /.well-known/ucp, so agents cannot discover a checkout. Few WooCommerce stores publish one yet.

Why agents care

The Universal Commerce Protocol (UCP), announced by Google in January 2026, lets agents discover a store's capabilities from /.well-known/ucp and complete checkout through a standard API. It powers buying in Google AI Mode and Gemini. Current spec version: 2026-08-25.

Fix

Publish a UCP profile backed by a working checkout implementation.

  • Several WordPress.org plugins now publish a UCP profile and checkout endpoints for WooCommerce (search the directory for "Universal Commerce Protocol"). Test any of them on staging first: they take part in checkout.
  • Whatever you install, confirm /.well-known/ucp returns valid JSON with a dev.ucp.shopping.checkout capability.
/.well-known/ucp (skeleton) Download
{
  "ucp": {
    "version": "2026-08-25",
    "services": {
      "dev.ucp.shopping": [
        {
          "version": "2026-08-25",
          "spec": "https://ucp.dev/2026-08-25/specification/overview/",
          "transport": "rest",
          "endpoint": "https://hollowoak.example/ucp/v1",
          "schema": "https://ucp.dev/2026-08-25/services/shopping/rest.openapi.json"
        }
      ]
    },
    "capabilities": {
      "dev.ucp.shopping.checkout": [
        {
          "version": "2026-08-25",
          "spec": "https://ucp.dev/2026-08-25/specification/shopping/checkout/",
          "schema": "https://ucp.dev/2026-08-25/schemas/shopping/checkout.json"
        }
      ],
      "dev.ucp.shopping.fulfillment": [
        {
          "version": "2026-08-25",
          "spec": "https://ucp.dev/2026-08-25/specification/shopping/extensions/fulfillment/",
          "schema": "https://ucp.dev/2026-08-25/schemas/shopping/fulfillment.json",
          "extends": "dev.ucp.shopping.checkout"
        }
      ]
    },
    "payment_handlers": {}
  },
  "keys": []
}
Warn Agentic Commerce Protocol readiness (signal) 2 of 3 ACP prerequisites in place.

Why agents care

OpenAI and Stripe's Agentic Commerce Protocol (ACP) launched in September 2025 to let shoppers buy inside ChatGPT. There is no public discovery file: merchants are onboarded through OpenAI and submit a product feed. In March 2026 OpenAI moved checkout back to merchants' own sites, so discovery in ChatGPT now depends on that feed and on crawlable pages. Legible scores the prerequisites, not enrolment.

What we found

OAI-SearchBot allowed
no
Product structured data
yes
Feed source available
yes

Fix

Apply to OpenAI's merchant program and submit a product feed.

  • Merchants apply at chatgpt.com/merchants. Shopify and Etsy merchants are onboarded through their platform.
  • The WooCommerce Store API (/wp-json/wc/store/v1/products) is public by default unless a plugin disables it: it is a ready-made product feed.
  • For ChatGPT, merchants apply through OpenAI's merchant program and submit a product feed; for Google AI Mode, connect Google Merchant Center with the "Google for WooCommerce" extension.
Pass Machine-readable catalogue 2 catalogue signals detected.

Why agents care

Agent channels (ChatGPT shopping, Google AI Mode, Copilot) prefer a structured product feed they can refresh over crawling pages. A feed keeps price and stock current between crawls.

What we found

Signal
WooCommerce Store API (/wp-json/wc/store/v1/products, on by default)
Signal
Product sitemap (6 URLs)
Pass Add-to-cart works without scripts The product page has a server-rendered add-to-cart form or link.

Why agents care

Browser-driving agents (ChatGPT agent, Gemini in Chrome and similar) click through your real checkout. A plain form or link for add-to-cart in the server HTML is the most robust path when no protocol is available.

What we found

Cart form in HTML
yes
Add-to-cart link
no
Add-to-cart button
yes
Info Platform and remediation path Detected WooCommerce (high confidence).

Why agents care

What you can fix, and how fast, depends on the platform. Shopify merchants can switch most of this on; WooCommerce, Magento and custom stores need it built or configured.

What we found

Signal
WooCommerce generator meta tag
Signal
/wp-content/plugins/woocommerce/ assets
Signal
woocommerce body or element classes
Signal
WordPress REST API header

Fix

Fix order for WooCommerce:

  • If an SEO plugin (Yoast, Rank Math, AIOSEO) manages robots.txt, edit it there: Yoast → Tools → File editor; Rank Math → General Settings → Edit robots.txt.
  • WooCommerce outputs basic Product JSON-LD on its own. Fill the native "GTIN, UPC, EAN or ISBN" field (Inventory tab, WooCommerce 9.2+) and a brand for every product.
  • Several WordPress.org plugins now publish a UCP profile and checkout endpoints for WooCommerce (search the directory for "Universal Commerce Protocol"). Test any of them on staging first: they take part in checkout.

This is what an AI agent gets from https://hollowoak.example/product/ethiopia-guji-natural/ when it fetches the page without running JavaScript: the raw HTML on the left, the text it extracts on the right.

Raw HTML · what the server sent

7 KB
<header class="site-header">
<h1 class="site-title">
<a href="https://hollowoak.example/">Hollow Oak Coffee Roasters</a>
</h1>
<nav class="main-navigation" aria-label="Primary">
<ul>
<li>
<a href="https://hollowoak.example/shop/">Shop</a>
</li>
<li>
<a href="https://hollowoak.example/product-category/single-origin/">Single origin</a>
</li>
<li>
<a href="https://hollowoak.example/product-category/blends/">Blends</a>
</li>
<li>
<a href="https://hollowoak.example/our-story/">Our story</a>
</li>
<li>
<a href="https://hollowoak.example/cart/">Cart</a>
</li>
</ul>
</nav>
</header>
<main id="primary" class="site-main">
<nav class="woocommerce-breadcrumb" aria-label="Breadcrumb">
<a href="https://hollowoak.example/">Home</a> / <a href="https://hollowoak.example/product-category/single-origin/">Single origin</a> / Ethiopia Guji Natural</nav>
<div id="product-412" class="product type-product status-publish instock product_cat-single-origin sale">
<div class="woocommerce-product-gallery">
<img src="https://hollowoak.example/wp-content/uploads/2026/09/guji.jpg" alt="">
</div>
<div class="summary entry-summary">
<h1 class="product_title entry-title">Ethiopia Guji Natural</h1>
<p class="price">
<del aria-hidden="true">
<span class="woocommerce-Price-amount amount">
<bdi>16,50&nbsp;<span class="woocommerce-Price-currencySymbol">&euro;</span>
</bdi>
</span>
</del>
<span class="screen-reader-text">Original price was: 16,50&nbsp;&euro;.</span>
<ins aria-hidden="true">
<span class="woocommerce-Price-amount amount">
<bdi>14,90&nbsp;<span class="woocommerce-Price-currencySymbol">&euro;</span>
</bdi>
</span>
</ins>
<span class="screen-reader-text">Current price is: 14,90&nbsp;&euro;.</span>
</p>
<div class="woocommerce-product-details__short-description">
<p>Natural process coffee from the Guji zone in southern Ethiopia, grown at 2,100 metres. Expect blueberry, dark chocolate and jasmine. 250 g whole bean, roasted for filter and espresso.</p>
</div>
<p class="stock in-stock">14 in stock</p>
<form class="cart" action="https://hollowoak.example/product/ethiopia-guji-natural/" method="post" enctype='multipart/form-data'>
<div class="quantity">
<label class="screen-reader-text" for="quantity_1">Ethiopia Guji Natural quantity</label>
<input type="number" id="quantity_1" class="input-text qty text" name="quantity" value="1" min="1" max="14" step="1">
</div>
<button type="submit" name="add-to-cart" value="412" class="single_add_to_cart_button button alt">Add to cart</button>
</form>
<div class="product_meta">
<span class="sku_wrapper">SKU: <span class="sku">HO-GUJI-250</span>
</span
<!-- … 2 KB more -->

Agent's-eye view · extracted markdown

~245 tokens
# Ethiopia Guji Natural16,50 € Original price was: 16,50 €.14,90 €Current price is: 14,90 €.Natural process coffee from the Guji zone in southern Ethiopia, grown at 2,100 metres. Expect blueberry, dark chocolate and jasmine. 250 g whole bean, roasted for filter and espresso.14 in stockSKU: HO-GUJI-250 Category: [Single origin](https://hollowoak.example/product-category/single-origin/)## DescriptionGuji coffees are dried whole in the cherry on raised beds for three to four weeks. The slow drying gives a heavy body and intense fruit. We roast this lot light to medium to keep the florals.Brew ratio we like: 15 g coffee to 250 g water, 93°C, three and a half minutes.## Additional information| Weight | 0.25 kg || --- | --- || Process | Natural || Altitude | 2,100 m |## Related products- [Colombia Huila Washed](https://hollowoak.example/product/colombia-huila-washed/)- [Oak House Espresso](https://hollowoak.example/product/oak-house-espresso/)

Facts an agent looks for

3 of 8 found

FactWhat the agent getsSource
Product nameEthiopia Guji NaturalHTML + JSON-LD
PriceEUR 16.50HTML + JSON-LD
AvailabilityInStockHTML + JSON-LD
BrandNot found in the raw HTML or structured dataMissing
GTIN / EANNot found in the raw HTML or structured dataMissing
ShippingNot found in the raw HTML or structured dataMissing
ReturnsNot found in the raw HTML or structured dataMissing
RatingNot found in the raw HTML or structured dataMissing

Extracted from https://hollowoak.example/product/ethiopia-guji-natural/ without running JavaScript, the way most AI fetchers read a page.

Every request Legible made, as LegibleBot/1.0 unless noted. Capped at 15 per scan, 8 seconds and 2.5 MB each.

StatusURLPurposeTimeSize
200https://hollowoak.example/Homepage (as LegibleBot)1400 ms14.7 KB
200https://hollowoak.example/Homepage (as a browser, for bot-wall comparison)1400 ms14.7 KB
200https://hollowoak.example/robots.txtrobots.txt230 ms0.5 KB
301http://hollowoak.example/HTTP to HTTPS redirect probe110 ms0.0 KB
404https://hollowoak.example/llms.txtllms.txt1000 ms2.7 KB
404https://hollowoak.example/llms-full.txtllms-full.txt1000 ms2.7 KB
404https://hollowoak.example/.well-known/ucpUCP business profile1000 ms2.7 KB
200https://hollowoak.example/sitemap_index.xmlXML sitemap660 ms0.7 KB
200https://hollowoak.example/product-sitemap.xmlProduct sitemap610 ms0.7 KB
200https://hollowoak.example/product/ethiopia-guji-natural/Product page (as LegibleBot)1740 ms7.0 KB

Done for you

Want these fixed instead of listed?

Digital Age implements Legible's fixes on WooCommerce: robots and bot rules, complete product schema, policy pages, llms.txt and a UCP profile. Fixed scope, re-scanned before handover.

Ask for a fixed quote