Curious about those three-letter codes that you have to rip off from your luggage after every flight? They’re called IATA location codes, and there’s a lot more to learn about them! Whether you’re flying to JFK or SUX, your ticket and bag will be assigned a specific location code.
Who chooses them, what’s their purpose, and how are they used? What about the other codes? And what in the world is up with the airport codes in Canada?
You will find the answers to all those questions, and more, in the rest of this detailed guide on airport codes!
Airport codes are three-letter codes that are assigned to airports around the world. Each airport has a three-letter location code that is unique to that specific airport. It’s what you’ll see on your ticket, flight itinerary, and baggage tag when you fly to any specific airport. But, who assigns and monitors these codes to ensure that no two airports have the same code?
That would be IATA – International Air Transport Association. It was originally founded in Havana in 1945, to promote safe and reliable air travel. But even that IATA was a successor to the International Air Traffic Association founded in The Hague in 1919. At the very beginning, IATA consisted of only 57 airlines from 31 countries. Today, over 290 airlines from 120 different countries are members of IATA.
Today’s IATA is vastly different from the original organization because of the unprecedented growth of the industry. As the demand for air travel grew, the industry boomed – nowadays, it’s more than 100 times larger than at the time of IATA’s founding.
IATA is focused mostly on the commercial side of traveling, and so IATA codes are generally used for ticketing passengers and tagging baggage. When you book a flight, your itinerary displays the IATA codes that are assigned to the airports you will be using.
Back in the day when there were no standardized location codes for airports, pilots would refer to them with two-letter codes designated by the National Weather Service. When IATA wanted to standardize the codes for all airports, they decided to use three-letter instead of two-letter codes. Why? Because there are only 325 different two-letter combinations, but more than 17,500 three-letter combinations are possible.
Many airports just added the suffix -X to their existing two-letter code to avoid any confusion. That’s why we have LAX for the Los Angeles airport and PDX for the Portland airport today. Some airports instead changed their name and opted to use an entirely different three-letter code. It wasn’t until 1960 that IATA stepped in as the main body that would regulate airport codes and ensure that every airport is assigned a unique code.
But that was the case almost a century earlier – today, IATA assigns location codes to all the new airports. And the main requirement is still that the code is unique so that there’s no confusion. The code will usually include initials from the airport name or the city it’s in. It can be any letters that are meaningful to the area in a way, as long as that three-letter combination is not in use by any other entity in the world.
There’s 9130 airport location codes total, and you can look them all up on IATA’s official website. Considering that there are 17,576 possible three-letter combinations, we still have a long way to go before this coding system has to be changed at all. Especially since IATA codes are usually assigned just to public airports.
Keep in mind that I’m only referring to the IATA codes here. Most airports are also assigned ICAO codes, but more on that later.
IATA location codes are mostly used for commercial purposes – in other words, for purposes relating to passengers. They are assigned to tickets, they show up in the flight itinerary, and they’re on your baggage tag so handlers know which plane they need to shove your bag into. IATA codes, unlike ICAO and FAA codes, are used only for commercial purposes.
The necessity for codes arose from convenience way back in the 30s, even before the IATA standardization. It was much easier for pilots to refer to an airport by a two-letter code than the full name, and for a while, the system worked well. But as the industry expanded and airports were built in places without weather stations, this became unmanageable.
Then came the IATA standardization with unique codes for every single airport, ICAO codes for official purposes, and even FAA codes for those tiny airports that don’t have an IATA or an ICAO code.
As if it’s not confusing enough that your ticket says YYZ when you’re flying to Toronto, there’s also an additional four-letter code that usually makes even less sense. But to explain why four-letter codes exist, we have to go back and talk about ICAO.
ICAO stands for International Civil Aviation Organization. It is an agency of the United Nations, and its main purpose is to set and monitor standards for international air transport. ICAO is the only international organization with the authority to impose and change standards for infrastructure, navigation technology, flight inspection, and cross-border procedures.
ICAO is concerned with regulating air travel on a state level, whereas IATA focuses more on the private sector. And it’s the same with codes – IATA codes are used for ticketing passengers and tagging baggage, whereas ICAO codes are more often used for air traffic controls and company flight plans. That’s why not every single airport in the world has an IATA code, but most of them have an ICAO code – a civilian passenger has nothing to do with privately-owned airports or heliports, but an air traffic controller will require some sort of identification code for them.
That’s the major difference between IATA and ICAO – ICAO codes are assigned to all airports and heliports, whereas IATA codes are only assigned to medium and major public airports. ICAO codes are also assigned to all private airports, even the ones that are used only by airlines and are not open to the public.
Apart from individual airport codes, IATA also assigns umbrella codes for metropolitan areas with multiple airports. Why? I can only assume to confuse travelers even more.
So, if you look up the IATA code CHI, you’ll find all the codes for all international airports in Chicago –
But in case your luggage gets tagged with CHI, you’re in big trouble because there’s not actually an airport in Chicago with that code.
On the one hand, we have unmistakable airport codes like JFK and LAX, and it’s obvious which airports they are referring to. And on the other hand, we have Canada! When JFK is the code for John F. Kennedy International Airport, in what world does it make sense that YXE is short for Saskatoon John G. Diefenbaker International Airport?
It doesn’t make sense, and it likely won’t make sense even after I’ve explained it. But, try to bear with me, and you might just figure out what’s going on with Canada.
Before the founding of IATA, Canada relied on the identification of the weather towers to help pilots navigate which airport is the closest to them. Canadian weather towers are identified with two-letter codes, and the vast majority of the towers were in places that also housed radio stations and airports. So, if someone in the 1920s was trying to land at Montréal–Trudeau airport, they would have referred to it as UL, because that was the radio call sign for the closest weather tower.
The system functioned well, but changes came with the increase in air travel. Already in 1930, it became crucial to differentiate between airports that were close to weather towers and those that weren’t. So, Canada adopted the prefix Y- (Yes) for all airports that were close to weather towers, and W- (without) for those that weren’t.
When IATA was founded in 1945, they required all airports to be identified with three-letter codes. Because Canada had already done this, they actually claimed the letter Y- as a prefix that signifies all their commercial airports. That’s why they’re the only country with airport codes that all start in Y-, and that’s why the vast majority of Canadian airport codes make absolutely no sense.
But what happened later, when they started building airports in other cities that didn’t have weather towers? In these cases, they opted to use railway station codes instead. Most of them already used a two-letter Morse Code indicator, and they just added the Y- prefix. And these actually make some sense –
Also, remember this: all Canadian airport codes start with Y-, but not all airport codes that start with Y- are Canadian. YAK is the code for Yakutat Airport in Alaska, YAS is the code for Yasawa Island Airport in Fiji, and so on.
TL;DR: As is usually the case in Canada, the weather is the major reason why all their airport codes start with Y-.
As with everything else in life, there are several exceptions to IATA’s standardized airport coding. I think they’re interesting, and in case you’re ever flying to or from one of these airports, it’s good to know these things so you don’t get confused.
Let’s start with the Basel Mulhouse Freiburg airport that has three IATA codes (BSL, MLH, EAP) and two ICAO codes ( LFSB, LSZM). This is the only airport in the world to have more than one IATA code, so what’s going on here?
Well, the airport is operated jointly by Switzerland and France. It is entirely on French soil, but it has a Swiss customs border. When you land at this airport, you can get either a French or a Swiss stamp in your passport, and it entirely depends on which officer you approach. That’s why the airport has three codes – BSL (Basel) is the Swiss code, MLH (Mullhouse) is the French code, and EAP (EuroAirport) is the neutral code.
It’s also interesting that some European airports have codes that are based only on their English name, even though it has very little to do with their original name in the native language. And so,
Additionally, there are a lot of airports that use a code that corresponds to their former name. Chicago’s O’Hare is coded as ORD only because the old name of the airport was Orchard Field. It’s the same with Fresno Yosemite International Airport, which is coded as FAT because it used to be Fresno Air Terminal.
Some airports are coded with letters that are in no way related to the city or airport but are an homage to a specific person. Kahului airport is coded as OGG as an homage to Bertram J. Hogg, a Hawaiian aviation pioneer. Louisville Muhammad Ali International Airport is coded as SDF because it was previously named Standiford Field, after Dr. Elisha David Standiford.
Also, there’s the whole issue of Newark being EWR and Napa being APC. Here’s the deal – the Navy actually reserved the prefix N- so there wouldn’t be any confusion with FCC broadcasting call signs. Most US airports that have codes beginning with N- either used to be naval airports or are relatively newer airports.
There are a lot more examples of this, but I’m afraid it would take too long to list them all. But to sum it all up, some airport codes are easy to unpack and they make perfect sense, and others will mean nothing to you even if you know exactly which airport you’re flying to.
Curious about the busiest airports in the world? The table below will cover the 30 busiest airports in the world by the number of passengers, along with their IATA and ICAO codes, as well as locations!
Note: The list identifies the world’s busiest airports using data from 2019. Data from 2020 was not considered, for obvious reasons.
IATA Code | ICAO Code | Airport | Location |
ATL | KATL | Hartsfield-Jackson Atlanta International | Atlanta, Georgia |
PEK | ZBAA | Beijing Capital International | Beijing, China |
LAX | KLAX | Los Angeles International | Los Angeles, California |
DXB | OMDB | Dubai International | Dubai, United Arab Emirates |
HND | RJTT | Tokyo Haneda | Tokyo, Japan |
ORD | KORD | O’Hare International | Chicago, Illinois |
LHR | EGLL | Heathrow | London, UK |
PVG | ZSPD | Shanghai Pudong International | Shanghai, China |
CDG | LFPG | Charles de Gaulle | Paris, France |
DFW | KDFW | Dallas/Fort Worth International | Dallas, Texas |
CAN | ZGGG | Guangzhou Baiyun International | Guangzhou, China |
AMS | EHAM | Amsterdam Airport Schiphol | Haarlemmermeer, Netherlands |
HKG | VHHH | Hong Kong International | Hong Kong SAR, China |
ICN | RKSI | Seoul Incheon International | Incheon, South Korea |
FRA | EDDF | Frankfurt | Frankfurt, Germany |
DEN | KDEN | Denver International | Denver, Colorado |
DEL | VIDP | Indira Gandhi International | Delhi, India |
SIN | WSSS | Singapore Changi | Changi, Singapore |
BKK | VTBS | Suvarnabhumi | Bang Phli, Thailand |
JFK | KJFK | John F. Kennedy International | New York, New York |
KUL | WMKK | Kuala Lumpur International | Selangor, Malaysia |
MAD | LEMD | Madrid Barajas | Madrid, Spain |
SFO | KSFO | San Francisco International | San Francisco, California |
CTU | ZUUU | Chengdu Shuangliu International | Chengdu, China |
CGK | WIII | Soekarno-Hatta International | Banten, Indonesia |
SZX | ZGSZ | Shenzhen Bao’an International | Shenzhen, China |
BCN | LEBL | Barcelona-El Prat | Barcelona, Spain |
IST | LFTM | Istanbul | Istanbul, Turkey |
SEA | KSEA | Seattle-Tacoma International | Seattle, Washington |
LAS | KLAS | McCarran International | Las Vegas, Nevada |
Not all airport codes are as easy to unpack as LAX and JFK. Some are much more interesting and downright funny, and that’s what I wanted to list here. From GRR to SUX, here are some funny airport location codes.
IATA Code | ICAO Code | Airport | Location |
PIE | KPIE | St. Petersburg Clearwater International | Clearwater, Florida |
LOL | KLOL | Derby Field | Lovelock, Nevada |
OMG | FYOE | Omega | Omega, Namibia |
EEK | PAEE | Eek | Eek, Alaska |
PEE | USPP | Bolshoye Savino | Perm, Russia |
POO | SBPC | Poços De Caldas – Embaixador Walther Moreira Salles | Poços De Caldas, Brazil |
BAD | KBAD | Barksdale Air Force Base | Bossier City, Louisiana |
SUX | KSUX | Sioux Gateway Col. Bud Day Field | Sioux City, Iowa |
GRR | KGRR | Gerald R. Ford International | Grand Rapids, Michigan |
WOW | PAUO | Willow | Willow, Alaska |
GAG | KGAG | Gage | Gage, Oklahoma |
FUN | NGFU | Funafuti International | Funafuti, Tuvalu |
BUM | KBUM | Butler Memorial | Butler, Missouri |
DAD | VVDN | Da Nang International | Da Nang, Vietnam |
COW | SCCQ | Tambillos | Coquimbo, Chile |
BRR | EGPR | Barra | Eoligarry, UK |
IDK | YIDK | Indulkana | South Australia |
SAD | KSAD | Safford Regional | Safford, Arizona |
BOO | ENBO | Bodø | Bodø, Norway |
ODD | YOOD | Oodnadatta | Australia |
The management at some airports recognized that the catchy code will have people talking about them, and they decided to capitalize on that fact. Sioux airport has entirely embraced their weird code, and they’re now selling T-shirts and mugs that say Fly SUX. But they’re an exception and not the rule.
Roger is a little obsessed with travel. He has been to over 40 countries, broken 3 suitcases and owned over 10 backpacks in 12 months. What he doesn't know about travel, ain't worth knowing!