Learn
Stall library
A stall is the point at which an AI agent stops making progress towards a purchase on a store. This is every stall an Ottom scan can report, grouped by the journey stage it happens in: discover, evaluate, compare and buy. Each page carries the mechanism that causes the stall, the steps to see it yourself, and the change that removes it.
The codes below are the same identifiers that appear in a report, and they are stable. Codes are added and deprecated but never renamed, because the code is what ties a finding to its fix and to any later comparison. The list is version stall-v3.
The Ottom Stall Taxonomy
Use it, quote it, build on it. It is published under CC BY 4.0, so the only condition is attribution, which is the point: a quoted code should carry where it came from.
Cite it as:
The Ottom Stall Taxonomy (stall-v3), OttomMachine readable at /taxonomy.json: every code with its stage, severity, mechanism and fix, carrying the version so you can pin to it.
Discover
| Stall | Code | Severity |
|---|---|---|
| robots.txt blocks AI shopping agents | robots_blocks_agent | critical |
| Bot protection blocks the agent before the storefront loads | bot_wall | critical |
| No products found for an agent to read | no_catalogue | critical |
| Products only appear after JavaScript runs | catalogue_requires_js | critical |
| Product pages did not answer when the agent asked for them | product_pages_unreadable | high |
| No sitemap for agents to crawl | no_sitemap | high |
| No machine-readable product feed | no_product_feed | high |
| Product pages have no schema.org markup | missing_schema_org | high |
| No llms.txt to orient agents | no_llms_txt | low |
Evaluate
| Stall | Code | Severity |
|---|---|---|
| The store refused the product page to the agent | product_page_refused | high |
| Price is not readable without running the page | missing_price_data | high |
| Stock status is not exposed to agents | missing_availability | high |
| Returns or shipping policy is only in an image | policy_in_image | high |
| Variants are not described in structured data | no_variant_data | high |
| Product feed is out of date with the storefront | stale_feed | medium |
| Products have no GTIN or MPN to match against | missing_gtin | medium |
Compare
| Stall | Code | Severity |
|---|---|---|
| Feed price and storefront price disagree | inconsistent_pricing | high |
| Shipping cost cannot be determined before checkout | missing_shipping_terms | high |
| Catalog has no category structure to compare within | no_category_structure | medium |
Buy
How often each of these happens
Not in this library. These pages describe what each stall is and how to fix it, and a frequency only means something beside the cohort it was counted over. Where a category has enough stores measured at every stage, the share of them showing each stall is published on its benchmark page, with the methodology beside it.