# The three witnesses, and the revenue line

> What integrity, capability and outcome each mean on a finding, how Rabbot reads Shopify's shopper numbers, what the revenue line switch grants, and why a money figure is never a claim of cause.
> Category: What Rabbot monitors
> Canonical: https://rabbot.ai/docs/monitoring/the-three-witnesses/
> Updated: 2026-10-08

---

## One finding, three witnesses

Rabbot does not bet a verdict on one scripted robot walking through your store. Every finding is written as an observed sequence: which page, what changed, when it started, and which of three witnesses agree. Rabbot never writes "probably" or "likely", and never guesses at a cause.

## Integrity: is the page broken

The first witness is what the storefront is made of. Pages, structured data, canonical tags, product forms, the product data behind your feeds, and the code files your product form needs. Rabbot checks that those files load and are valid code.

If a file the form depends on stops loading, the card names the file, the time, and the status your store answered. If the page has no basic add-to-cart path without that file, the finding is Critical. If it keeps one, or Rabbot has no earlier check where the file loaded, the finding is a Warning and says so.

A syntax check catches syntax errors only, and valid code can still be broken. Rabbot runs no browser, so it never clicks a button and never claims a click worked.

## Capability: can Shopify still sell it

The second witness is what Rabbot checked and when: availability, price, and the product data a shopping channel reads, checked against what the live page shows. It also reads Shopify's own catalog for shopping agents. A product your admin shows for sale that the catalog lists as unavailable, or does not list, on two checks in a row is a finding, with what to check in your admin.

## Outcome: what shoppers did

The third witness is Shopify's own shopper numbers: visits, cart additions, checkouts started and checkouts completed. Rabbot reads them once a day, after your day ends, and reports the morning after. Each day is compared with the same weekday in each of the four weeks before, and the earlier figures are shown as a range.

Three findings come from it, each named for the step that fell: fewer shoppers added to cart, fewer shoppers went from cart to checkout, fewer shoppers completed checkout. Each card names the day, the step, and what to try first, and it closes on the first day the step is back near its usual level.

When your store has too few visits to tell a real change from a quiet day, the card says so and waits. When integrity and capability both look healthy and the numbers fall anyway, Rabbot says it cannot see the cause. It never invents one.

Shopper impact is monitored on Growth and above, with the revenue line switched on. On Free and Starter the integrity and capability witnesses still run, and a card that needs the third says which plan includes it.

## The revenue line switch

The revenue line is off until you switch it on in Settings. Switching it on asks you to approve one more read permission, for Shopify's reports, through Shopify's own prompt. Rabbot then reads daily totals: the same reports your admin shows, never an order and never a customer. It keeps those totals for 90 days and deletes them after that.

The privacy policy carries the same facts under "Sales totals (only if you turn this on)". Switch the line off and Rabbot stops reading.

## A money figure is a difference, never a cause

When a finding has a sales comparison, the figure is one you can check against your own reports. In Rabbot's words: "Rabbot compares sales during the gap versus the same days of the week in each of the four weeks before it started: per product, in store currency, in gross sales. It shows those four figures as a range, from the lowest to the highest." Gross sales is the value of items sold, before discounts and returns.

Beside every figure sits the sentence that keeps it honest: "Advertising, seasonality beyond what the rest of the store saw, and moves by a competitor can all shift this number, and Rabbot does not check for any of them." A figure is never "Rabbot recovered this much".

Rabbot withholds the figure rather than stretch it. If the product's price changed in the window, if it was unpublished at some point, or if there is not enough sales history for a reliable comparison, the card says which, and shows no number.

## Where the witnesses do not reach

A Sidekick answer never carries a sales figure, whatever the switch says: the daily totals show in the Rabbot app only. [What an answer never contains](/docs/sidekick/what-an-answer-never-contains/) has that list. Over the MCP server, the money line follows the same plan and grant as the app.
