The rules every proof surface follows
- Inside the noise is not a change. A difference the significance test cannot separate from sampling noise is never called a change, never drawn in green and never announced. See When is a change real?
- Every number carries its sample. Counts read “named in 3 of 10 answers”, never a percentage on its own. See Reading the numbers.
- Not measured is not zero. An engine or week we could not read says so in words. It is never shown as 0.
- Observed, not caused. Moved says the answers moved after a change shipped. It does not say the change caused it, and no proof surface says “we won” or puts a money figure on a result.
- A first is “since we started reading”. A win is the first time an engine named you since Attensira started reading that question, not the first time ever.
When is a change real?
Checks after a change, the Scoreboard’s change per engine and the scorecard’s verified receipts all use one rule:- Both windows have at least 30 observations: the change must pass a two-proportion z-test at 95%.
- Either window has fewer than 30: the change must pass Fisher’s exact test, two-sided, at p ≤ 0.05.
Over MCP and REST
Every proof surface is readable without the app.
A receipt or a scorecard can be shared with someone who has no account through
POST /v1/shares or the MCP share verb, and every item in Results already carries its own share_url. The receiver sees a read-only page with no ids.