Why does the buy stage count for the most?
Because a store an agent can find but cannot buy from has failed the thing that matters. Buy is 40% of the score, and the three stages before it share the rest.
An Ottom score is a weighted average of four stages an agent must get through to buy from a store: discover, evaluate, compare and buy. This page gives the weights, what each finding costs, how the buy stage is walked, and the two rules that keep noise out of alerts: a noise floor on score changes, and two signals before a Critical.
| Stage | Weight | What it asks |
|---|---|---|
| Discover | 20% | Can an agent find the store and read its catalogue at all? |
| Evaluate | 25% | Does the store’s own data answer what the shopper asked for? |
| Compare | 15% | Can an agent weigh this store against another on price and shipping? |
| Buy | 40% | Can an agent get a chosen product all the way to the payment step? |
Whether an agent is let in at all, by robots.txt and bot protection, and what your store publishes for machines to read: sitemaps, product feeds, structured data and llms.txt. Scored from the findings it raises. The stall library lists 8 findings for this stage.
Shopper requests are matched against your product data alone: price, stock, variants, identifiers and policies, as an agent can read them without running the page. Rules decide what they can, and a language model judges only the matches rules cannot settle. Scored from the findings it raises. The stall library lists 6 findings for this stage.
Checks the facts a comparison rests on: that your feed and your storefront agree on price, that shipping cost can be known before checkout, and that the catalogue has categories to compare within. Scored from the findings it raises. The stall library lists 3 findings for this stage.
A browser walks the purchase path on your live store and records how far it gets. The walk is a script rather than a language model, because the failures that end most purchases are mechanical, and every run records which driver walked it. It stops at the payment step and never pays. The score comes from how far it got, and its findings say where and why it stopped. The stall library lists 8 findings for this stage.
A data stage starts at 100 and loses points for each finding. At 80 or above it is PASS, from 50 to 79 it is SLOW, and below 50 it is STALLED. It never goes below zero.
| Severity | Points off the stage |
|---|---|
| Critical | 60 |
| High | 25 |
| Medium | 12 |
| Low | 5 |
The buy stage is PASS, at 100, only when the walk reaches the payment step. Anything short of that is STALLED, scored by how far it got, up to 45: a store that reached checkout scores above one that stopped at the size picker, and neither passes.
The walk takes these steps, in order:
The score is the weighted average of the stages a scan measured. When a scan could not measure a stage, the report says which stages it covers rather than scoring the missing one as zero or as a pass.
Two scans of an unchanged store do not always score the same, because stores and networks vary from minute to minute. So an alert reports a score change only when it is larger than 5 points and larger than twice the run to run variation measured for that kind of scan. Smaller changes still go into your score history. They are not announced as a regression or an improvement.
A Critical finding is alerted on, and counted as open in the weekly digest, only when two signals agree: two agent journeys, or one journey backed by a retrieval check. A retrieval check alone never confirms a Critical, because it cannot see the purchase.
Scores are calculated by scoring version score-v2 and findings are named by stall-v2 of the stall taxonomy, which has 25 codes. Every run records the version that scored it, and a change to the weights, the costs or a severity is released as a new version rather than made silently. Every code is published at /taxonomy.json.
Because a store an agent can find but cannot buy from has failed the thing that matters. Buy is 40% of the score, and the three stages before it share the rest.
Either the next scan has not run yet, or the change was inside the noise floor. A move of 5 points or less is recorded in your score history without an alert, so clearing a single low finding will usually not announce itself.
The report shows what the scan found. An alert about a Critical waits for a second signal to agree with the first, so one unlucky journey cannot page you.
Yes, within one scoring version. Alerts never compare a score across a version change, so a jump caused by a new version is not reported as your store getting better or worse.
How scores are combined across stores is on the benchmark methodology. How often each plan scans is on the plans page.