Two systems, two jobs
The code on your boarding pass and luggage tag is an IATA code — three letters assigned by the International Air Transport Association for commercial use: reservations, tickets, timetables and departure boards. LHR is London Heathrow, CDG is Paris Charles de Gaulle, JFK is New York's Kennedy airport.
The code on your boarding pass and luggage tag is an IATA code — three letters assigned by the International Air Transport Association for commercial use: reservations, tickets, timetables and departure boards. LHR is London Heathrow, CDG is Paris Charles de Gaulle, JFK is New York's Kennedy airport.
Pilots, dispatchers and air traffic control use ICAO codes — four letters assigned by the International Civil Aviation Organization with a geographic logic baked in. The first one or two letters identify the region: EG is the United Kingdom (so Heathrow is EGLL), K is the continental United States (JFK becomes KJFK), L covers southern Europe (CDG is LFPG). Where IATA codes are for selling seats, ICAO codes are for flying aeroplanes.
The sensible ones — and the rule that broke Canada
Most IATA codes are simply the city or airport name compressed: LON/LHR for London Heathrow, AMS for Amsterdam, SIN for Singapore, DXB for Dubai. When the obvious code was already taken, airports took the next-best contraction — which is how you get GVA for Geneva and HKG for Hong Kong.
Most IATA codes are simply the city or airport name compressed: LON/LHR for London Heathrow, AMS for Amsterdam, SIN for Singapore, DXB for Dubai. When the obvious code was already taken, airports took the next-best contraction — which is how you get GVA for Geneva and HKG for Hong Kong.
Canada is the great systematic exception: virtually every Canadian airport code begins with Y. The leading theory, supported by the historical record, is that early Canadian airport identifiers were two-letter weather or railway telegraph codes, and a prefix letter indicated whether the location had a weather station — Y for yes. When three-letter codes were standardised, Canada kept the pattern: YUL (Montreal), YVR (Vancouver), and YYZ, whose "YZ" was the railway telegraph code for Malton, the village beside what became Toronto Pearson.
Famous oddballs
ORD, Chicago O'Hare, commemorates Orchard Field — the airport's original name before it was renamed for war hero Edward "Butch" O'Hare. MSY, New Orleans, stands for Moisant Stock Yards, the land the airport was built on, named for aviation pioneer John Moisant. Neither has any connection to the modern airport name, which is exactly why they're beloved trivia.
ORD, Chicago O'Hare, commemorates Orchard Field — the airport's original name before it was renamed for war hero Edward "Butch" O'Hare. MSY, New Orleans, stands for Moisant Stock Yards, the land the airport was built on, named for aviation pioneer John Moisant. Neither has any connection to the modern airport name, which is exactly why they're beloved trivia.
Some codes dodge conflicts: when a city's obvious code was taken, alternatives emerged — which is part of why London City is LCY and why secondary airports often carry less intuitive codes than the city's main field. Others preserve ghosts of old names: BOM (Mumbai, formerly Bombay), PEK (Beijing, formerly Peking), LED (St Petersburg's old code referencing Leningrad, now on a new identifier).
Codes in the wild
A few practical notes. Cities with several airports often have a metropolitan code as well — LON covers all of London's airports, NYC all of New York's — which matters when searching flights: "London to New York" on LON–NYC searches Heathrow, Gatwick, Stansted, City, Luton and Southend against JFK, Newark and LaGuardia at once.
A few practical notes. Cities with several airports often have a metropolitan code as well — LON covers all of London's airports, NYC all of New York's — which matters when searching flights: "London to New York" on LON–NYC searches Heathrow, Gatwick, Stansted, City, Luton and Southend against JFK, Newark and LaGuardia at once.
And codes genuinely matter on travel day. Every year passengers fly to the wrong Sydney (Australia vs. Nova Scotia, YQY), the wrong San Jose (California SJC vs. Costa Rica SJO) or the wrong Birmingham (BHX vs. BHM, Alabama). Thirty seconds checking the three letters against your intended destination is among the cheapest insurance in travel.