NYSIIS Encoder

New York State Identification and Intelligence System phonetic code

Free NYSIIS encoder (Taft, 1970). Generate the phonetic key used in criminal-justice name matching, reported ~2.7% more accurate than Soundex. Runs in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What does NYSIIS stand for?

NYSIIS is the New York State Identification and Intelligence System phonetic algorithm, published by Robert Taft in 1970 for matching names in criminal-justice records.

What this tool does

NYSIIS — the New York State Identification and Intelligence System phonetic algorithm — was published by Robert Taft in 1970 to match names in criminal-justice databases. It is reported to be about 2.7% more accurate than Soundex for name matching because it transcodes whole letter groups and keeps more of a name’s structure. This encoder produces both the classic 6-character key and the full untruncated key in your browser.

Background: why criminal justice needed a better phonetic code

Law enforcement record matching has a long history of phonetic coding. Soundex, developed in the early 20th century, encodes surnames as a letter plus three digits (for example, Smith → S530). It was designed for census record linking and is deliberately simple. NYSIIS was developed specifically for law enforcement databases where name variants, foreign-origin names, and transcription errors were common. By working on letter-group transcoding rather than digit-mapped categories, NYSIIS better handles clusters like MAC/MC, PH, SCH, and KN that appear frequently in names of Irish, Germanic, Greek, and other origins.

How NYSIIS works step by step

NYSIIS runs in stages:

Step 1 — Leading cluster transcoding:

MAC  → MCC
KN   → N
K    → C
PH   → FF
PF   → FF
SCH  → SSS

Step 2 — Trailing cluster transcoding:

EE / IE  → Y
DT / RT / RD / NT / ND  → D

Step 3 — First letter becomes the key start. The first letter of the transformed name is taken as-is and becomes the first character of the output key.

Step 4 — Transcoding the body: The encoder steps through remaining characters applying these rules:

  • All vowels (A, E, I, O, U) → A
  • EV → AF
  • Q → G
  • Z → S
  • M → N
  • KN → N
  • SCH → SSS
  • PH → FF
  • H preceded or followed by a vowel → preceding character (H is absorbed)
  • W preceded by a vowel → preceding character (W is absorbed)
  • Each transcoded character is appended only if it differs from the last character added, collapsing consecutive duplicates.

Step 5 — Final cleanup:

  • Trailing S → removed
  • Trailing AY → Y
  • Trailing A → removed

Step 6 — Truncation: The classic key is the first 6 characters of the result. The full key is the entire string.

Worked examples

NameFull NYSIIS key6-char key
MacDonaldMCDANALDMCDANA
McDonaldMCDANALDMCDANA
KnightNAGTNAGT
JacksonJACSANJACSAN
WatkinsWATCANWATCAN
SmithSNATSNAT
CzernowitzSARNAWATSSARNAW

Notice that MacDonald and McDonald produce identical keys — the algorithm successfully collapses a common spelling variant. Knight → NAGT drops the silent K and gh cluster.

When to use NYSIIS and when not to

NYSIIS is well-suited for:

  • Record linkage and deduplication in databases where names may have been transcribed differently at different times.
  • Name search where Soundex is too coarse. Soundex collapses too many distinct names; NYSIIS preserves more structure.
  • Historical records with inconsistent spelling.

NYSIIS is less suited for:

  • Non-English names from languages with phonological patterns very different from English (Chinese romanisation, Arabic, Slavic names with consonant clusters). Results will vary.
  • Exact matching — if you have the true spelling, use it. NYSIIS is for fuzzy matching only.
  • Given names: NYSIIS was designed for surnames. It works on given names too but the improvement over Soundex is less documented.

Like all phonetic codes, a shared NYSIIS key means two names are candidates for being the same — not a confirmed match. Always verify with additional fields (date of birth, address, known associates) before merging records. Everything is computed locally in your browser; no names are transmitted.