1. The provenance-mark test (keyed)
A green-list watermark test, after Kirchenbauer, Geiping, Wen, Katz, Miers and Goldstein, A Watermark for Large Language Models (ICML 2023, arXiv:2301.10226). A keyed pseudorandom function seeded by the preceding token splits the vocabulary into a green list of size γ and a red list; a marked generator is nudged toward green. Detection is the one-proportion z test that falls out of that:
z = (|s|G − γT) / √(T · γ · (1 − γ))
T is the number of scored word pairs and |s|G how many are green. We report the green rate with a Wilson interval, the z, and the one-sided p. Below 40 distinct pairs no z is reported at all, because the normal approximation is not trustworthy there and a number we do not trust is worse than no number.
Two honest caveats. Repeated word pairs are scored once, because the test assumes independent trials. And we partition on word bigrams rather than a model’s own subword vocabulary, which we do not have, so a vendor’s own detector can reach a different conclusion on the same document.
The limitation that matters most
A green-list mark is keyed. Without the secret used to apply it, the partition is unknowable and there is no test to run. No model vendor publishes a detection key, and a publicly checkable mark would be a publicly removable one, so this is unlikely to change.
NeverPrompted therefore tests the keys it holds and names them on every result. It ships a published open reference key so the machinery is auditable: mark a passage under it yourself and watch the statistic move. It also accepts vendor or institution keys through configuration. Any tool claiming to detect a named vendor’s mark without a key from that vendor is not doing what it says.
2. The style measurement (key-free)
Fourteen subject-independent register features, among them mean word length, moving-average type-token ratio, hapax ratio, mean sentence length, sentence-length variability, function-word rate and six punctuation rates, measured on your document in 400-word chunks and expressed as a signed distance in standard deviations from a reference corpus in the same language. The composite is the root-mean-square of those distances, with a seeded percentile bootstrap over your own sentences giving the band.
This channel does not detect AI. It measures how far writing sits from contemporary reference prose. Technical writing, fiction, poetry, translated text and non-native prose all sit far from that reference for entirely ordinary reasons, and the result says so wherever the number appears.
The reference corpora
Measured, not estimated. Every document was language-verified by the engine’s own identifier before being included, because the API was asked for Spanish and is generally telling the truth, but a baseline is what every user’s number is compared against, and “the source said so” is not verification.
| Language | Documents | Words | Chunks | Retrieved |
|---|---|---|---|---|
| English | 219 | 219,493 | 567 | 2026-08-11 |
| Spanish | 113 | 93,981 | 243 | 2026-08-11 |
| French | 113 | 94,265 | 248 | 2026-08-11 |
| German | 157 | 113,858 | 310 | 2026-08-11 |
| Portuguese | 96 | 77,307 | 205 | 2026-08-11 |
Source: Wikipedia article prose via the MediaWiki API, CC BY-SA 4.0.
3. Per-passage findings are corrected
Each passage carries its own test, so a long document runs dozens simultaneously and some will look significant by chance. A Benjamini-Hochberg false-discovery-rate correction is applied across all passages before any is presented as a finding, and the result reports how many were tested and how many survived.
Without that correction a per-passage highlighter will confidently colour in sentences of any document you give it, which is the false accusation this product exists to help people answer, generated by the product itself.
Where the analysis runs
The free check runs entirely in your browser. The engine is a single module with no network calls; open the network tab and watch. The API, the hosted MCP mode and the PDF report necessarily run on our servers, because a programmatic caller has no browser, and those are opt-in and documented rather than quietly the same path.