I spent an embarrassing amount of time once trying to figure out why Orlando’s airport code is MCO instead of, you know, ORL. Turns out ORL is a different, smaller airport in Orlando, and MCO comes from McCoy Air Force Base, which is what the main airport used to be. That’s the moment I realized somebody actually decides these things — and the process is way more interesting than I expected.
IATA Runs the Three-Letter Show
The International Air Transport Association is the organization behind the three-letter codes you see on boarding passes and luggage tags. When a new airport needs a code, they submit a formal application to IATA. They can request specific codes — usually something matching the city name — and IATA checks whether it’s available.
Sounds simple, right? It’s not. The good codes are mostly taken. If your city starts with S, you’re competing with hundreds of other airports worldwide for any S-combination that makes sense. The process can drag on for months while IATA coordinates with airlines, other aviation authorities, and sometimes even other airports that feel their code is too similar. There’s more bureaucracy involved than you’d think for three little letters.
ICAO Has a Completely Different Approach
Probably should have led with this: there are actually two coding systems running simultaneously. The one passengers see is IATA’s three-letter version. But pilots and air traffic controllers use ICAO’s four-letter codes, and the assignment logic is totally different.
ICAO codes follow a geographic hierarchy. First letter is the world region — K for the continental US, C for Canada, L for Southern Europe, E for Northern Europe. Second letter usually narrows it to a country. Last two letters identify the specific airport. So when a pilot files a flight plan to KJFK, that K immediately tells everyone it’s a US airport. It’s actually a pretty elegant system, way more logical than the IATA approach.
What Happens When Codes Collide
Code conflicts are a real thing, and they’re settled basically on a first-come, first-served basis. Older airports have priority. If your airport opened in 2015 and the code you want has belonged to some regional field since 1952, tough luck. You’re picking something else.
When airports close down, their codes technically become available again, but IATA usually holds them in reserve for a few years. Makes sense — you don’t want someone accidentally booking a flight to a closed airport because the code got recycled too quickly. I actually think that’s pretty thoughtful, even if it limits options for new facilities.
The Weird Edge Cases
Military bases, private strips, temporary facilities — they all get codes too, just through slightly different channels. The FAA handles a lot of the domestic assignments for smaller facilities. And there are reserved codes that aren’t assigned to any real airport. QQ codes, for instance, get used internally by airline systems as placeholders for unspecified locations.
That’s what makes the whole assignment process endearing. It looks like random letters to most people, but behind every code there’s a request, a review, sometimes an argument, and occasionally a compromise that explains why the code doesn’t match the city name at all. It’s a very human system pretending to be purely technical.