LuhnChecksum-Verified Formats
317
Own Pattern Recognizers (anonym.plus)
267
Entity Types (anonym.legal)
48
Languages (anonym.legal)

Deterministic rules

No LLMs in the detection pipeline. Every rule is deterministic, so a re-run on the same engine build, models and configuration is meant to produce the same result — not yet verified with a long-running test.

Pattern Matching First

Deterministic regex recognizers handle structured data: credit cards (Luhn validation), IBANs (MOD-97 checksum), tax IDs, passport numbers, and more. Checksum validation means a card number either satisfies Luhn or it does not — arithmetic, not a guess.

NLP for Context-Dependent Data

Names, organizations, and locations require context understanding. In anonym.legal, three kinds of NLP (Natural Language Processing) model — spaCy (open-source NLP library, 24 languages), Stanza (Stanford NLP toolkit, 7 languages) and 11 dedicated HuggingFace NER models — provide name recognition. The remaining 6 of the 48 languages are covered by pattern recognizers only, without name detection. Accuracy varies by language and entity type — English detection is the most mature.

Confidence Scoring

Every detection carries a confidence score from 0.0 to 1.0. High confidence (0.85–1.0) indicates strong format match with supporting context. Medium confidence (0.5–0.85) flags likely correct matches for review.

Detection Quality by Data Type

Detection accuracy depends on the type of data. Structured formats with checksum validation are the most dependable, because the checksum either holds or it does not. Context-dependent entities like names vary by language.

Data Category Detection Method Accuracy Characteristic Examples
Structured with Checksum Regex + Checksum Validation Checksum-verified Credit cards (Luhn), IBANs (MOD-97)
Structured without Checksum Regex + Context Words High SSNs (format and range rules), tax IDs, phone numbers, postal codes, IP addresses, dates
Names & Organizations NLP (spaCy/Stanza/HuggingFace) Variable by language Person names, company names, locations
Mixed Documents Hybrid (Regex + NLP) Covers structured and contextual data Contracts, emails, medical records

Note: Structured data with checksum validation (credit cards, IBANs) is the most dependable because format and checksum rules are deterministic. NLP-detected entities (names, locations) have accuracy that varies by language and context — English detection is the most mature.

Three NLP Engines, Automatic Selection

Each NLP engine covers a specific set of languages. The system automatically selects the right engine based on detected language. No overlap — each language belongs to exactly one engine. Six languages have no name model and use pattern recognizers only.

spaCy (Primary)

Open-source NLP library. Primary engine for half of the supported languages. Trained models for named entity recognition with high consistency.

  • 24 languages
  • 24 languages covered
  • Best for: names, organizations, locations
  • Fastest inference speed

Stanza (Secondary)

Stanford NLP toolkit. Secondary engine for languages where spaCy models are unavailable.

  • 7 languages
  • 7 languages covered
  • Best for: languages not covered by spaCy
  • Stanford research models

HuggingFace NER Models

Dedicated named-entity models from HuggingFace for languages without a suitable spaCy or Stanza model, such as Czech, Persian, Arabic and Thai.

  • 11 languages
  • 11 languages covered
  • Best for: languages without spaCy or Stanza models
  • 6 further languages: patterns only, no name detection

We publish no detection-accuracy percentage. The engine figures once shown here came from third-party model documentation we cannot re-run, and a number you cannot reproduce is a number you should not accept from a vendor. Regex-based detection for structured data (emails, SSNs, credit cards, IBANs) operates independently of NLP engines and is designed to be reproducible; that has not yet been verified with a long-running test.

How We Compare

Feature comparison against common PII detection solutions, based on publicly available documentation.

Capability anonymize.solutions Presidio DIY Google DLP Strac Nightfall
Entity Types 267 Built-in set, extensible See vendor docs See vendor docs See vendor docs
Multi-Language Support 48 languages Depends on setup ~50 languages Limited ~25 languages
Detection Approach Regex + NLP (deterministic) Regex + NLP ML-based ML-based ML-based
False Positive Handling Checksum + confidence scoring Manual tuning Likelihood levels Confidence thresholds Confidence scores
EU Data Residency Documents: Hetzner, Germany Self-hosted See vendor docs See vendor docs See vendor docs
Managed Service Yes (hosted: anonym.legal) · local program: anonym.plus No (DIY) Yes Yes Yes

Note: Competitor information is based on the vendors’ public documentation, compiled in early 2026 and not re-checked since. Entity counts and language support are approximate and subject to change. See individual comparison pages for detailed analysis.

Confidence Scoring & Context-Aware Validation

False positives erode trust. A system that flags “IBAN: DE89370400440532013000” but also flags “December 2025” as a credit card is worse than no system at all. Multi-layered validation reduces noise.

Checksum Validation

IBANs are validated with MOD-97, credit cards with Luhn algorithm, SSNs against format rules and known invalid ranges. A sequence of digits that looks like a credit card but fails Luhn is rejected before it reaches the output.

Confidence Scoring (0.0–1.0)

Every detection carries a confidence score. High (0.85–1.0): strong format match with context. Medium (0.5–0.85): likely correct, review recommended. Low (0.3–0.5): generic pattern, manual review. Configurable thresholds let you tune the precision/recall tradeoff.

Context-Aware Disambiguation

The NLP engine considers surrounding words. “Jordan” after “Michael” is a person; “Jordan” after “flew to” is a location. Context eliminates ambiguity that pattern-only systems cannot resolve.

Language-Specific Handling

Each language has unique patterns that affect detection quality. German compound nouns, Arabic name patterns, Japanese honorifics — dedicated NLP models (spaCy for 24 languages, Stanza for 7, dedicated HuggingFace models for 11; 6 languages use patterns only) handle language-specific challenges. Automatic language detection selects the right engine with English as the fallback.

Built on Microsoft Presidio

anonym.legal’s detection pipeline is built on Microsoft Presidio, an MIT-licensed open-source PII detection framework. It extends Presidio with additional recognizers and NLP engines beyond the default and runs on Hetzner in Falkenstein, Germany. The 317 own pattern recognizers belong to anonym.plus, which runs locally on your machine.

Does this apply to your organisation?

The guide is general; your obligation is not. Tell us the sector and where the data is allowed to go, and we will tell you what applies.