Back to BlogHealthcare

18 HIPAA Identifiers Your Tool Misses

HIPAA lists 18 PHI identifiers. Most anonymization tools detect maybe 6 of them. Medical Record Numbers vary by institution with no standard US format.

April 28, 20269 minute read
HIPAA 18 identifiersPHI complete detectionMRN detectionNPI DEA numbersHIPAA Safe Harbor compliance

18 HIPAA Identifiers Your Tool Misses

Updated for 2026.

HIPAA lists 18 PHI identifier categories. Most anonymization tools detect maybe six. The other twelve slip through — and each one is a compliance gap.

The Safe Harbor Rule

HIPAA's Privacy Rule (45 CFR § 164.514) defines Safe Harbor de-identification. All 18 identifier categories must go. Remove every one and the data is de-identified by law. This is why Safe Harbor is popular: it is pass or fail, not a judgment call.

The 18 categories are:

  1. Names
  2. Geographic data smaller than state — street address, city, county, ZIP code
  3. Dates except year — birth, admission, discharge, death
  4. Phone figures
  5. Fax figures
  6. Email addresses
  7. Social Security codes
  8. Medical record identifiers (MRNs)
  9. Health plan beneficiary codes
  10. Account identifiers
  11. Certificate and license codes
  12. Vehicle identifiers and serial codes
  13. Device identifiers and serial codes
  14. Web URLs
  15. IP addresses
  16. Biometric identifiers — fingerprints, voiceprints
  17. Full-face photos and similar images
  18. Any other unique identifying code or value

Most tools handle categories 1, 4, 6, and 7 well. They miss 8, 9, 10, 11, 13, and 18 routinely.

The MRN Gap

Medical record identifiers sit at category 8. MRN formats are set by each hospital. There is no US national standard.

Hospital A uses a 7-digit integer. Hospital B uses "PT-YYYYNNNN." Hospital C uses an 8-character alphanumeric string. Hospital D writes "MRN: " before a 9-digit code.

A generic tool will not flag "PT-2024-8847" as PHI. The document passes de-identification checks. But it is not de-identified. No alert fires. The team thinks the job is done. It is not.

This is the worst kind of gap: a silent one.

Three Ways to Fix It

Code it in Presidio. This needs Python skills and ongoing upkeep. It works but costs time.

Add manual review. A person checks each document for MRNs. This does not scale.

Use AI-assisted custom entity creation. No code needed. The team gives sample values. The AI builds the pattern.

Here is how it works. A team gives five sample MRN values: SVHS-0012345, SVHS-0987654, SVHS-1122334, SVHS-4455667, SVHS-8899001. The AI returns SVHS-\d{7} and checks it against the samples. The team saves it to their HIPAA preset. All future sessions detect the format. The same approach works for beneficiary codes and device serial codes.

See how presets work in the HIPAA MRN detection guide. Learn about the AI pattern workflow.

The Hidden Assumption

Many teams test on a sample document with a name and a phone figure. The tool passes. They assume full coverage. But samples rarely include institution-specific identifiers. MRNs and beneficiary codes look like random strings to a generic tool. They pass with no flag.

A true Safe Harbor audit maps all 18 categories to a detection method. For category 8, verify with real MRN samples from your own hospital. Do not assume the tool knows your format.

Review the full framework in our HIPAA compliance overview.

Conclusion

Safe Harbor requires all 18 identifier categories gone. Generic tools cover far fewer. The gaps — MRNs, beneficiary codes, device serials — have no standard format, so generic tools miss them. AI-assisted custom entities close the gap without code or manual review.

When This Approach Has Limits

Mapping all 18 Safe Harbor categories to an actual detection method, including custom entities for institution-specific formats, is the right discipline. But three limits apply even to a complete pass.

Configuring a pattern is not the same as proving it holds. A custom entity built from five MRN samples will match those samples, but production data carries variants the samples never showed: a different prefix after a merger, a legacy nine-digit run alongside the new format, MRNs embedded in free-text notes, or values broken across lines. A pattern that passes its own examples can still miss real records. Validate each custom entity against a held-out set of genuine documents from your hospital, not only against the samples used to generate it.

The hardest categories resist any fixed pattern. Category 18, any other unique identifying code, and free-text dates, geographic detail, and narrative descriptions do not reduce to a regex. A confident pass on the structured 17 can leave category 18 effectively unaddressed because there is nothing specific to match. This is where detection accuracy, not coverage, bounds the result, and a residual miss rate remains. Pair pattern detection with review of free text where unique values are most likely to hide.

Safe Harbor is a legal determination the tool informs but does not make. Removing the 18 categories is the rule, but certifying a dataset as de-identified is a judgment about whether identification risk is genuinely low, including the expert-determination path the regulation also permits. Combinations of remaining quasi-identifiers can re-identify even after all 18 are stripped. The tool supports compliance; a qualified person still has to attest that the standard is met.

Sources

  • HHS: HIPAA Safe Harbor, 45 CFR § 164.514 — hhs.gov. VERIFIED.
  • Shaip: PHI identifier types in healthcare de-identification — shaip.com. VERIFIED-EXTERNAL.
  • HHS OCR: De-identification guidance updated 2024 — hhs.gov. VERIFIED.

Limitations / When this doesn't apply

Configuring a pattern is not the same as proving it holds. A custom entity built from a handful of MRN samples will match those samples, but production data carries variants they never showed — a different prefix after a merger, a legacy format alongside the new one, MRNs embedded in free-text notes, or values broken across lines. Validate each custom entity against a held-out set of genuine documents from your hospital, not only the samples used to generate it.

  • The hardest categories resist any fixed pattern. Category 18 ("any other unique identifying code"), free-text dates, geographic detail, and narrative descriptions do not reduce to a regex, so a confident pass on the structured identifiers can leave category 18 effectively unaddressed. Here detection accuracy, not coverage, bounds the result, so pair pattern detection with review of free text where unique values are most likely to hide.
  • Safe Harbor is a legal determination the tool informs but does not make. Removing the 18 categories is the rule, but certifying a dataset as de-identified is a judgment about whether identification risk is genuinely low — and combinations of remaining quasi-identifiers can re-identify even after all 18 are stripped. A qualified person still has to attest the standard is met; this article is educational, not legal advice.

Ready to protect your data?

Start anonymizing PII with 285+ entity types across 48 languages.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our company HQ is in Saarbrücken, Germany. Our servers run in Hetzner's Falkenstein datacenter.

Hetzner holds ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.