What was measured
For each of 46 languages the corpus holds a letter and a running-prose document with one person's data — name, street, house number, postcode, city, date of birth, e-mail, phone and, where the country has them, an IBAN and a national identifier (16–20 values per language) — plus one document with no personal data at all. The values are generated and pass their own check digits; they belong to no real person. A value counts as found only if it is covered completely. The second value set ("holdout") keeps the documents and replaces the values, so a repair written for one set of strings cannot pass as a general one.
Last run on 2026-09-26 with the product's own detection path, on desktop commit 7bae21d.
The test has not been repeated for every release since.
The threshold matters
The threshold is a setting in every preset. Detection does not fall off gradually above 85% — it drops in one step, because many recognizers score exactly 0.85. A higher threshold redacts less text by mistake and misses more. The app shows a note when a preset is set above 85%.
The other side of a low threshold: in documents that contain no personal data at all, it also redacts some text that is not personal data. That is the cost of caution, and the reason the threshold is a setting.
Limits of this test
- The test uses texts written for this purpose, not customer documents. Your documents, layouts and names can score higher or lower.
- It uses typed text. Pages read by text recognition (scanned documents, photos) are less accurate and are not part of this test.
- For Indonesian, recognition of place names was measured only on real place names; invented or very rare names were not recognised in our test.
- Whether the models recognise invented names of people and places as well as real ones is not established by this measurement, and no figure for it is published here.
- Per language the sample is small (16–20 values), so one value changes the result for a language noticeably.