Metaphone 3
What it is
Metaphone 3 is a phonetic encoding algorithm published by Lawrence Philips in 2009 as the commercial successor to Double Metaphone. Like its predecessors, it reduces a name or word to a code representing how it sounds, so that differently-spelled words with similar pronunciation can be matched. Given an input string, it produces a primary code and an optional secondary code — the same dual-output design as Double Metaphone — but applies a substantially expanded rule set aimed at higher real-world accuracy.
How it works
Metaphone 3 follows the same structural approach as Double Metaphone: it walks the input character by character, applying context-sensitive rules to map letter sequences to phonetic codes, and suppresses silent letters, double consonants, and other non-contributing characters. The primary code represents the most likely pronunciation; the secondary code captures common alternates.
The full rule set is proprietary and not publicly documented. What Philips has described is that Metaphone 3 incorporates a much larger body of English phonological rules than Double Metaphone, along with targeted improvements for French, Germanic, and Slavic name patterns — areas where Double Metaphone is known to produce incorrect or inconsistent encodings.
[illustrate: side-by-side encoding of “Schneider”, “Wojciechowski”, and “Beauchamp” through Double Metaphone vs Metaphone 3, showing where the output codes diverge]
Example
A name like Beauchamp illustrates the improvement on French-origin names. Double Metaphone may fail to correctly apply the French silent-letter pattern; Metaphone 3’s expanded rules produce a code closer to the actual English pronunciation of the name, improving the chance of matching it against “Beecham” or “Beacham”.
Similarly, Germanic vowel patterns in names like Schneider or Schroeder are handled more consistently, and Slavic affricates in names like Wojciechowski receive better treatment than in earlier variants.
Variants and history
Philips published Metaphone 3 in 2009 with reference implementations available for purchase in C/C++, Java, and C#. He also released a PHP implementation that has become the de facto reference for community ports in other languages. Those ports may diverge from the commercial implementation and do not carry the same accuracy guarantees.
Philips’s own testing reported approximately 98% accuracy on a large corpus of English and European names, compared with roughly 89% for Double Metaphone — though these figures come from Philips’s own evaluation and should be treated as indicative rather than independently verified.
When to use it
Metaphone 3 is best suited to commercial applications where name-matching accuracy is critical and a licensing cost is acceptable — genealogy software, identity resolution, and customer data deduplication are the primary use cases where it appears in practice.
For most open-source projects, Double Metaphone is the practical choice: it is freely available, integrated into Elasticsearch’s analysis-phonetic plugin, and implemented in libraries such as jellyfish (Python). Metaphone 3 is absent from those ecosystems — it is not available in the analysis-phonetic plugin, and standard Python phonetic libraries do not include it.
If you need improved accuracy over Double Metaphone without a commercial licence, consider whether your matching problem can instead be addressed by combining phonetic encoding with edit-distance filtering rather than switching algorithms.