# Mid sample: Shop directory merchants: 838 stores attempted, 830 Shopify scans completed

| Class | Stores | Share of attempted |
|---|---|---|
| agent_ready | 770 | 92% |
| classic | 59 | 7% |
| headless | 1 | 0% |
| blocked | 6 | 1% |
| not_open | 0 | 0% |
| unreachable | 1 | 0% |
| woocommerce | 0 | 0% |
| other | 1 | 0% |

## Headline numbers (830 Shopify stores that could be scanned)

| Capability | Stores passing | Share |
|---|---|---|
| Agent can create a real cart (UCP cart.create) | 770 | 93% |
| Agent reaches a checkout URL | 770 | 93% |
| UCP profile published (/.well-known/ucp) | 828 | 100% |
| UCP catalog MCP answers tools/list | 827 | 100% |
| Public catalog readable (/products.json) | 814 | 98% |
| Search returns own products | 805 | 97% |
| llms.txt present | 810 | 98% |
| agents.md present | 819 | 99% |
| Product JSON-LD with price and availability | 175 | 21% |
| All four policy pages exist | 390 | 47% |
| Policy Q&A tool exposed | 825 | 99% |
| Products carry GTIN/barcode (public signal) | 0 | 0% |
| Descriptions adequate on sampled products | 346 | 42% |

Median tasks passed: 84% of testable tasks. Mean products needing attention: 32% of sampled products.

## Where agents get stuck (checks by failure rate)

| Check | Pass | Warning | Fail | Not testable |
|---|---|---|---|---|
| discovery.webmcp | 0 | 830 | 0 | 0 |
| schema.product_jsonld | 175 | 541 | 98 | 16 |
| policies.pages | 390 | 408 | 32 | 0 |
| product.description | 346 | 350 | 84 | 50 |
| product.category | 359 | 296 | 125 | 50 |
| product.sku | 417 | 313 | 50 | 50 |
| product.non_merchandise | 626 | 204 | 0 | 0 |
| policies.qa | 651 | 166 | 8 | 5 |
| product.variant_disambiguation | 640 | 130 | 10 | 50 |
| product.images | 662 | 111 | 7 | 50 |
| product.brand | 702 | 78 | 0 | 50 |
| catalog.search | 805 | 18 | 7 | 0 |
| discovery.llms_txt | 810 | 20 | 0 | 0 |
| discovery.robots | 811 | 19 | 0 | 0 |
| catalog.public_listing | 814 | 0 | 16 | 0 |
| cart.update | 758 | 0 | 12 | 60 |
| discovery.agents_md | 819 | 11 | 0 | 0 |
| cart.create | 770 | 0 | 8 | 52 |
| discovery.agentic_sitemap | 823 | 7 | 0 | 0 |
| discovery.storefront_public | 824 | 0 | 6 | 0 |
| protocol.mcp_policies_tool | 825 | 5 | 0 | 0 |
| discovery.llms_full_txt | 826 | 4 | 0 | 0 |
| discovery.sitemap | 826 | 0 | 4 | 0 |
| protocol.mcp_endpoint | 827 | 0 | 3 | 0 |
| product.in_stock_share | 778 | 2 | 0 | 50 |
| discovery.ucp_profile | 828 | 1 | 1 | 0 |
| product.availability | 780 | 0 | 0 | 50 |
| product.gtin | 0 | 0 | 0 | 830 |
| product.image_alt_text | 0 | 0 | 0 | 830 |
| catalog.lookup | 813 | 0 | 0 | 17 |
| catalog.get_product_selection | 719 | 0 | 0 | 111 |
| cart.cancel | 770 | 0 | 0 | 60 |
| checkout.handoff | 770 | 0 | 0 | 60 |
| protocol.ucp_negotiation | 827 | 0 | 0 | 3 |

## By category

| Category | Scanned | Agent-ready | Real cart | UCP profile | Median tasks |
|---|---|---|---|---|---|
| accessories | 99 | 91% | 90 | 98 | 88% |
| arts-crafts | 46 | 98% | 45 | 46 | 87% |
| baby-toddler | 83 | 98% | 81 | 83 | 84% |
| beauty | 113 | 97% | 110 | 113 | 81% |
| electronics | 48 | 83% | 40 | 48 | 84% |
| fitness-nutrition | 74 | 99% | 73 | 74 | 81% |
| food-drinks | 4 | 100% | 4 | 4 | 84% |
| home | 164 | 92% | 151 | 164 | 84% |
| men | 77 | 94% | 72 | 77 | 88% |
| pet-supplies | 5 | 100% | 5 | 5 | 84% |
| sporting-goods | 5 | 100% | 5 | 5 | 88% |
| toys-games | 5 | 100% | 5 | 5 | 81% |
| women | 107 | 83% | 89 | 106 | 88% |

## Best and worst (scanned Shopify stores)

Top 10: reigningchamp.com 31/32, nation.la 31/32, oldbonesco.com 31/32, musclenation.org 31/32, classicwhimsy.com 31/32, mainlandskateandsurf.com 31/32, wildwestbootstore.com 31/32, annazuckerman.com 31/32, furbishstudio.com 30/31, christmastraditions.com 30/31

Bottom 10: havnwear.com 4/15, store.shapermint.com 5/15, ridge.com 8/16, marienicoleclothing.com 8/16, rugsusa.com 20/32, bearaby.com 19/29, shop.kachava.com 22/32, ca.endy.com 22/32, beautyfrombees.ca 20/29, saveonformula.com 22/31
