How well do we mask?
Precision, recall and F1 per entity type, measured on our Swiss evaluation dataset — plus pipeline latency.
These figures come from our production masking. The live demo in this portal uses a weaker version of the masking package, so its results may fall below these figures.
Precision
87.5 %
Recall
100.0 %
F1 score
93.3 %
| Entity type | Samples | Precision | Recall |
|---|---|---|---|
| Name | 30709 | 94.7% | 100.0% |
| 12530 | 100.0% | 100.0% | |
| Phone | 10000 | 100.0% | 100.0% |
| Street | 10000 | 100.0% | 100.0% |
| Postal code | 10000 | 100.0% | 100.0% |
| City | 10000 | 98.6% | 100.0% |
| Customer no. | 8751 | 100.0% | 100.0% |
| AHV/SSN | 8756 | 100.0% | 100.0% |
| Date of birth | 7478 | 100.0% | 100.0% |
| IBAN | 4969 | 100.0% | 100.0% |
| Specially protected data | 4954 | 30.1% * | 99.1% |
| ID document | 3735 | 100.0% | 100.0% |
| BIC | 2490 | 100.0% | 100.0% |
| Tax ID | 1249 | 100.0% | 100.0% |
| Credit card | 1244 | 100.0% | 100.0% |
* Low precision is intentional here (clause-level masking — better too much than too little).
Dataset: synthetic Swiss test set of 10,000 emails with about 128,000 labelled values, never used to tune the detection. Recall and precision come from one full run.
Method: multi-stage detection combining rules and locally running AI, followed by a final safety check of the masked text.
Scoring: per value — counts whether a value was masked. Masking too much counts as a false alarm and lowers precision.
Text · Median (p50)
678 ms
Text · p95
979 ms
PDF · Median (p50)
—
PDF · p95
—
ms per document