US State Two-Letter Codes and Why Some of Them Are Confusing
The USPS standardized two-letter state abbreviations in 1963 as part of a broader postal modernization effort. Before that, states were commonly referred to by longer abbreviations or full names, and mail sorting was slower because of the ambiguity. The new system was meant to be machine-readable, efficient, and unambiguous. It mostly worked, but it also left a few cases that trip people up regularly. IL is the official abbreviation for Illinois. That is straightforward enough. The confusion usually comes from people seeing "Il" with a lowercase L and thinking it might be initials, a typo, or something else entirely. In proper USPS format, both letters are uppercase: IL. When someone writes "Il," it is almost always a formatting error or a casual text shorthand, not a different designation. I have sorted through enough shipping manifests and address databases to know that lowercase or mixed-case abbreviations show up constantly in poorly maintained systems. Excel caps lock off, OCR software misreads forms, people type quickly without checking. The actual meaning never changes. IL means Illinois regardless of how it is typed.
Here is a practical point that most beginners miss. The USPS abbreviation does not always match the first two letters of the state name. Take Oklahoma, for example. You would expect OK to map to "Ok," but it actually covers the whole state regardless. Similarly, IL for Illinois breaks the pattern if you assume the abbreviation always comes from the beginning of the name. It does not. The USPS made several of these choices deliberately to avoid duplication and improve machine readability. One edge case I ran into specifically involved a logistics database where IL was being filtered as a foreign country code. The ISO 3166-1 alpha-2 code for Italy is also IL. No, wait. Italy's code is IT. Let me correct that. Italy is IT. The real overlap issue I encountered was with international forms that treated any two-letter code starting with I as potentially non-US. A shipment routing script I was troubleshooting was dropping all IL entries because it flagged anything beginning with "I" as overseas. The fix was straightforward. I added an explicit whitelist that checked the full two-letter sequence against the known USPS state list before applying any country-level filters. That blocked the false positives immediately. There are a few other abbreviations that cause similar head-scratching. ME could be mistaken for a measurement unit. NM is often read as "new mexico" but sometimes people assume it is a typo for "ND" or "NE." AR looks like the start of "Arkansas" but also resembles a programming operator. These are all legitimate USPS codes, and none of them changed meaning just because they look ambiguous out of context.
If you are building something that processes addresses, the realistic workaround is to normalize everything to uppercase before any lookup. Store the official list from the USPS publication PM 28. Use exact string matching rather than prefix or contains logic. That prevents the kind of confusion that showed up in my database issue. It also cuts down on the manual review work that usually follows a bad merge. As for downloading reference lists, the USPS does not provide a single public download page for the abbreviations, but PM 28 is freely available online and contains the complete table. Most data engineering teams just scrape or copy it into their own validation sets. I have done this several times over the years. It takes about ten minutes if you already have a script set up, and maybe twenty minutes if you are doing it manually. Either way, it is faster than debugging address mismatches after the fact. The abbreviations themselves do not have hidden meanings behind the individual letters. They are just standardized codes. IL is Illinois. Nothing more, nothing less. When people dig into them expecting some historical acronym or secret origin, they usually end up disappointed. The system was built for utility, not symbolism.
Get the Full Details
