What is stored
Enough to answer the research question and nothing else. This page is plain on purpose — it is the part of the project that has to be checkable rather than persuasive.
Kept
- A random identifier
- Generated in your browser, kept in your browser. It lets several answers from one person be recognised as one person's during analysis. It links to nothing and traces back to nobody.
- Which instrument
- Which of the seven you used.
- Ids and counts
- Which reading you held, what you did with each fact, how many times you switched. Drawn from fixed vocabularies and checked server-side against a closed schema.
- Your reasoning, if you write any
- Verbatim, up to 600 characters, from the boxes marked 'stored verbatim'. Always optional, never required to continue, and control characters are stripped before writing. This is the only place your own words are kept.
- Elapsed time
- Milliseconds. Used only to spot answers submitted too fast to have been read.
Payloads are closed, not merely validated: the schema declares which keys may be written and the API strips everything else before storing. A field the schema does not know is dropped rather than kept as a blob, and that is asserted in the test suite.
Not kept
- Name, email or account — there is no account
- IP address
- Any analytics or tracking cookie. There is no analytics on this site at all
- Location, device fingerprint, referrer
- Anything typed anywhere except the boxes explicitly marked 'stored verbatim'
- Any private message, of yours or of anybody else's
Three trade-offs, stated rather than buried
Anonymity costs deletion
Nothing links a stored row to you, so no individual answer can be found and removed on request. Stronger anonymity in exchange for no deletion mechanism. You can clear the identifier your browser holds, which stops future answers being grouped with past ones.
A worse dataset, on purpose
Real screenshots of ambiguous exchanges would be far richer. The person who wrote a message cannot consent to its use, and only the person who received it would ever be asked — which is the wrong person. So all thirty-four language scenarios are written for this experiment and the eight myth ones paraphrase texts that have been public for millennia. The cost is artificiality, and it is listed as a limitation on the lab page rather than argued away.
If you contribute a model run
The comparison on the machines page needs an API key and this project does not have one, so anyone with their own can run a batch and contribute the results. That key is sent once over HTTPS, used for that request, and discarded. It is never stored, never written to a result row, and stripped out of any error the model API returns before it reaches your browser.
That endpoint is not a general proxy to the model. Prompts are built on the server from a fixed template and a fixed scenario, nothing from the form reaches them, replies are parsed into a schema before storage, and the batch is capped.
This page used to say the opposite
Until this build, nothing you typed was stored — there was nowhere to type, and the site said so with some satisfaction. That was the wrong call. What someone answered turns out to be far less informative than why, and no fixed vocabulary recovers a reason.
So reasoning boxes exist now, optional and capped, labelled where they appear rather than only here. The earlier claim is retracted in the log rather than quietly edited out, because a project about protecting readings should show what it stopped protecting.
Refusing rather than losing
On a platform whose filesystem does not survive a request, the site refuses to store rather than accepting a response and quietly losing it. You get a notice before you start and a readable error if you submit anyway. A participant told their answer was recorded, whose answer was not, is worse than an error message.
Integrity
No participant counts, results, accuracy figures, model performance numbers, significance claims, endorsements or citations here are invented. Where the dataset is empty the page says zero. Where a prediction fails it stays on the lab page marked failed. Where a connection was abandoned it stays on the claims page marked abandoned.
The one place the project invents anything is the three control claims on /shape, and it discloses them on the same screen it reveals everything else.