Reading the Codes Behind Every Flight

When you print a boarding pass, the three letters next to your departure and arrival cities aren't random. They are IATA airport codes, assigned by the International Air Transport Association. The system is simple in theory and messy in practice. Here is how it actually works, where it breaks, and what you need to know when you are booking, checking bags, or trying to figure out whether your layover is at the same airport or across town. IATA codes were introduced in the 1930s as telegraphic shorthand. Airlines needed a way to send routing instructions quickly before computers existed. The three-letter format stuck because it fit on paper tickets, baggage tags, and early mainframe displays. Today they appear everywhere: flight numbers, reservation systems, airline apps, baggage claim screens, and even the little sticker on your checked bag. Each commercial airport with scheduled service has one unique code. There are roughly 9,000 of them worldwide, though only about 5,000 are actively used by airlines right now. The logic behind most codes is intuitive but not consistent. City names get truncated or modified. London becomes LHR because Heathrow was the primary airport when the code was assigned in 1930. Paris Charles de Gaulle is CDG, pulled directly from the airport name. But then you get BNE for Brisbane, MUC for Munich, and VCE for Venice. Some are phonetic approximations. Some are historical accidents. A few are outright confusing, like DFW for Dallas Fort Worth, which barely resembles either city name.

There is a separate system called ICAO codes, which are four letters used by air traffic control and flight planning. KSFO is San Francisco International under ICAO, while SFO is the IATA version. Pilots and dispatchers use ICAO. Passengers and baggage handlers use IATA. You will rarely see an ICAO code outside of aviation industry software, flight tracking sites, or the back of a plane. The two systems run in parallel and sometimes create unnecessary confusion when travelers mix them up online. I spent about four years working in airline operations before moving into travel technology. One of the first things I learned is that code collisions happen more often than people expect. The most common issue is the difference between city codes and airport codes. NYC is a city code that covers three airports: JFK, LGA, and EWR. If you search flights using just NYC, you are getting results from all three. That is convenient until you realize your cheap flight lands at Newark and your connecting domestic flight departs from JFK. You are looking at a ground transfer between two separate airports in a city you probably do not know well. I have seen travelers miss connections because they assumed NYC meant one location. It does not. Always check the specific three-letter code on your itinerary. Another problem that comes up repeatedly involves code-sharing flights. When you book a Delta flight that is actually operated by Air France, both airlines display their own codes. The flight might show DL123 to Delta customers and AF456 to Air France customers. The airport codes stay the same, but the flight number changes depending on which airline marketing system you are looking at. This causes issues at baggage drop because the system pulls the operating carrier's information, not the selling carrier's. If you check in through the wrong airline's portal, your bag might end up tagged under a flight that does not exist in the ground handler's system. It happens infrequently but it happens. Always verify that your baggage receipt shows the correct flight number for the actual operating carrier.

The code assignment process itself is run by IATA through a center in Montreal. Applications go through a review that checks for uniqueness, ease of pronunciation, and potential for confusion with existing codes. Requests can be rejected if the proposed code looks too similar to an existing one. I see this come up occasionally when new airports open. A city might propose a code that matches an old code for an airport that closed decades ago. IATA will not reinstate old codes for new airports unless there is a compelling reason. The rule is basically first come, first served with a no-confusion filter. Here is a practical breakdown of how the codes map to real locations: Major hub airports tend to use codes derived from their airport name or the nearest city. ATL is Atlanta. DEN is Denver. ORD is Chicago O'Hare, which is named after a World War II pilot and not especially intuitive unless you look it up. SEA is Seattle-Tacoma. PDX is Portland. These are straightforward because each city had one dominant commercial airport when the codes were assigned.

Get the Full Details

Understanding Airport Codes: The Alphabet Soup Of Air Travel – RXFRF
Understanding Airport Codes: The Alphabet Soup Of Air Travel – RXFRF

Secondary and regional airports create the interesting edge cases. MYR is Myrtle Beach. RDU is Raleigh-Durham, covering two cities with one code. SAN is San Diego. BOI is Boise. Some European codes are harder because languages other than English get transliterated differently. FAO is Faro in Portugal, which sounds nothing like the English pronunciation. GVA is Geneva in Switzerland, pulled from the French name Genève. NRT is Narita near Tokyo, while HND is Haneda, also in Tokyo. Two airports serving the same metro area get completely different codes based on their individual names. One of the less obvious quirks is that some codes represent something other than a physical airport. PVD is Providence, Rhode Island, but the airport is officially named Theodore Francis Green State Airport. The code comes from the city, not the full name. Similarly, YUL is Montreal's main airport, officially named Pierre Elliott Trudeau International Airport, but the code comes from the old Montreal-Mirabel reference. YVR is Vancouver. YYZ is Toronto Pearson. The double-Y codes in Canada are a separate historical artifact from the older Canadian railway signalling system, which is a whole other story worth investigating if you are curious about why Canadian airport codes start with Y so often. When you are decoding your own travel plans, the most useful habit is to always verify the airport name behind the code before booking. A site like the IATA airport code directory or even a quick search will tell you exactly which airport you are flying into. This takes about ten seconds and prevents the kind of mistake where someone books a flight to BHX thinking it is Birmingham, Alabama, when it is actually Birmingham, England. BHX is the UK airport. BHM is the Alabama one. One character difference and you are on a completely different continent.

Battery powered scanners at airports use these codes to route bags through the sortation system. The system reads the three letters on your bag tag and directs the bag to the correct cart or conveyor. If the code is misprinted or smudged, the bag gets rerouted to manual processing, which adds about twenty to forty minutes to your wait time at baggage claim. I have watched this happen at least once a week at ORD during busy travel periods. The scanners are reliable but not perfect. A wet coat, a torn tag, or a poorly printed label can all cause a scan failure. For people building travel tools or integrating flight data into an application, the IATA code database is the standard reference. It is not free in enterprise quantities, but basic lookups are available through public APIs and transportation data providers. The OpenSky Network and some government aviation databases offer free CSV downloads of current and historical airport codes. The data updates periodically but not in real time. New airports get added every year, and some codes get retired when airports close. If you are maintaining a database of airport codes, plan on a quarterly review cycle at minimum. One counter-intuitive fact that catches people off guard: not every airport in a country has an IATA code. Many small airstrips, military bases, and charter-only airports exist without one. If you are booking a flight to a remote destination and cannot find a three-letter code, the airport might only have an ICAO code or no code at all. In those cases, you are dealing with a operator-specific scheduling system rather than the commercial airline network. This is common in parts of Africa, South America, and northern Canada where charters and bush flights dominate over scheduled service.

If you want to quickly verify any airport code while you are traveling: A search engine query for the three letters followed by the word airport will almost always return the correct result within the first snippet. You do not need a special app for this. Even Google Maps will show you the airport location and confirm the code. The airline websites themselves display the code prominently on confirmation pages, so you can cross-reference your booking against the official airport name before you pack. The baggage tag example I mentioned earlier is worth expanding slightly because it illustrates how the codes affect your actual experience. When you check a bag at the curb, the agent scans your boarding pass and prints a tag with your confirmation number, your name, and the destination airport code. That destination code is what determines the entire routing path for your bag. If you have a connection, the bag is usually checked through to your final destination code, not the intermediate one. You do not need to recheck bags on domestic connections in the United States. On international itineraries, the rules vary by airport and country. Always ask the check-in agent specifically whether your bags are checked through before you walk away from the counter.

Airline and airport code system: How are they determined?
Airline and airport code system: How are they determined?

There is a persistent myth that IATA codes are assigned alphabetically by city name. They are not. London is LHR, not LON. Paris is CDG, not PRS. Tokyo is NRT and HND, not TKO. The codes are assigned based on a combination of historical factors, airport name abbreviations, and the availability of unused three-letter combinations. The allocation system prioritizes avoiding conflicts with existing codes over any alphabetical logic. When you are reading an airline schedule or comparing fares across booking platforms, the airport code is the universal anchor. Prices, times, and terminals all tie back to that three-letter identifier. It is the single most important piece of data in any travel reservation. Understanding how it works, where it can mislead you, and how to verify it yourself will save you time and prevent a number of avoidable travel problems. The system is not perfect, but it is the best coordination layer we have for moving millions of people through thousands of airports every day.