Aviation

Airport Codes Decoded: What IATA and ICAO Codes Actually Mean

Every airport has at least two codes - a three-letter IATA code and a four-letter ICAO code. Here's where they come from, why they sometimes make no obvious sense, and what every frequent flyer should know about them.

MT
MyFlight.Life Team
6 min · Nov 4, 2025

Airport departures board in a busy terminal Photo by Valentin Lacoste on Unsplash

LHR. JFK. DXB. SIN. NRT.

If you fly regularly, these codes become a second language. You know that LHR is London Heathrow, that JFK is New York's John F. Kennedy, that DXB is Dubai. You probably know your home airport's code by heart.

But do you know why Chicago O'Hare is ORD? Why Los Angeles is LAX instead of LAL? Why Canadian airports almost all start with Y?

Airport codes have histories, quirks, and occasional absurdities that are well worth understanding - both for the trivia value and because they're the native language of any flight log.


Two Systems, Two Purposes

There are actually two separate airport code systems in common use, and they serve different purposes.

IATA codes (three letters)

IATA stands for the International Air Transport Association. Their three-letter codes - LHR, JFK, SYD - are the ones you see on boarding passes, luggage tags, flight booking sites, and departure boards. They're designed for the commercial aviation world: easy to print, easy to read, universally recognised by airlines, travel agents, and passengers.

IATA codes are what you use when you're booking a flight or logging your journey. When you tell someone you're flying "from DUB to SIN," you're speaking IATA.

There are currently around 10,000 IATA airport codes in use worldwide.

ICAO codes (four letters)

ICAO stands for the International Civil Aviation Organization, a UN agency. Their four-letter codes - EGLL for London Heathrow, KJFK for New York JFK, WSSS for Singapore Changi - are used by air traffic control, flight planning systems, weather reports, and pilots. You're unlikely to see them on your boarding pass, but you'll encounter them if you dig into aviation operations, flight tracking data, or pilot logbooks.

The first one or two letters of an ICAO code indicate the region. All US airports start with K. European airports are split regionally: UK airports start with EG, German airports with ED, French airports with LF. Asia-Pacific airports start with various letters - Singapore is WS, Hong Kong is VH, Australian airports start with Y.

For flight logging purposes, IATA codes are what you'll use day to day. ICAO codes become relevant if you're a pilot keeping a formal logbook, or if you're cross-referencing data from tracking tools.


Why the Codes Often Don't Match the Airport Name

This is where it gets interesting. Many airport codes look like obvious abbreviations - SIN for Singapore, DXB for Dubai, CDG for Charles de Gaulle. Others are completely opaque, and the mismatch between name and code usually has a historical explanation.

Chicago O'Hare: ORD

O'Hare is one of the world's busiest airports, but its code - ORD - doesn't contain a single letter from "O'Hare." The explanation is that O'Hare wasn't the airport's original name. It was first called Orchard Field Airport, developed on the site of a former orchard during World War II. The code was assigned as ORD for Orchard, and it stuck when the airport was later renamed in honour of naval officer Edward "Butch" O'Hare.

Los Angeles: LAX

LAL would have been the logical code for Los Angeles. But it was taken. In the 1930s, when airports used two-letter codes, LA was assigned to Los Angeles. When the system expanded to three letters, X was added as a placeholder, following a convention used by several Western US airports. The X has no meaning - it's a historical artefact.

Similar X-suffix codes include PDX (Portland) and PHX (Phoenix).

London's airports

London has several airports, each with its own code:

  • LHR - Heathrow (straightforward abbreviation)
  • LGW - Gatwick (from Gatwick's name)
  • STN - Stansted
  • LCY - London City Airport
  • LTN - Luton

The ICAO codes add a prefix: EGLL (Heathrow), EGKK (Gatwick), EGSS (Stansted). The EG prefix denotes the UK.

Canadian airports and the Y convention

Almost every airport in Canada has a code starting with Y. YYZ is Toronto Pearson. YVR is Vancouver. YUL is Montreal. YEG is Edmonton.

The Y prefix is a legacy of Canada's historic radio communication system. In the early days of aviation, Canadian weather stations used Y as a prefix in their radio identifiers. When airport codes were assigned, many were built on these existing identifiers. The convention stuck, and new Canadian airports continued the Y tradition.

YYZ, specifically: the Z suffix came from the two-letter weather station code "YZ" that was already assigned to the Toronto region.

Why some airports share a city

Cities with multiple airports handle the coding in different ways.

New York has three major airports: JFK (John F. Kennedy), LGA (LaGuardia), and EWR (Newark Liberty - technically in New Jersey). A fourth code, NYC, is sometimes used in booking systems to search all three simultaneously.

Tokyo has Narita (NRT) and Haneda (HND), with TYO sometimes used as the city aggregate. London uses LON as the city aggregate code alongside the individual airport codes.

Tokyo's situation is particularly interesting: Haneda (HND) is geographically closer to the city and used to be the primary international airport, but international routes were largely shifted to Narita (NRT) in the 1970s. International service has since partially returned to Haneda.

The fun and the absurd

Some codes are simply delightful:

  • HOG - Frank País Airport, Holguín, Cuba
  • FUK - Fukuoka Airport, Japan (the city name, abbreviated directly)
  • BRA - Barreiras Airport, Brazil
  • ORK - Cork Airport, Ireland - perhaps the most phonetically appropriate code in existence

IATA Codes in Your Flight Log

When you log a flight in MyFlight.Life, IATA codes are how routes are recorded. DUB-LHR. SIN-SYD. JFK-CDG.

The codes serve a practical purpose in logging: they unambiguously identify the airport. Dublin is DUB - not to be confused with Dubai (DXB). Paris has CDG (Charles de Gaulle) and ORY (Orly) and BVA (Beauvais) - using the code rather than "Paris" avoids any ambiguity about which airport you actually flew into.

Getting into the habit of knowing your airports by their codes makes logging faster and more precise. After a few months of consistent logging, you'll find yourself reading flight displays and departure boards in IATA without thinking about it.

Common codes worth memorising

CodeAirportCity
DUBDublinDublin, Ireland
LHRHeathrowLondon, UK
CDGCharles de GaulleParis, France
AMSSchipholAmsterdam, Netherlands
FRAFrankfurtFrankfurt, Germany
DXBDubai InternationalDubai, UAE
SINChangiSingapore
HKGHong Kong InternationalHong Kong
NRTNaritaTokyo, Japan
SYDKingsford SmithSydney, Australia
JFKJohn F. KennedyNew York, USA
LAXLos Angeles InternationalLos Angeles, USA
ORDO'HareChicago, USA
YYZPearsonToronto, Canada

Start Building Your Airport Collection

Every airport in your flight log is a data point - and your visited airports count is one of the more interesting statistics your log produces. Many aviation enthusiasts are quietly competitive about unique airport counts in the same way travellers are competitive about country counts.

MyFlight.Life automatically tracks every airport that appears in your flight history - origins, destinations, and connections - and adds them to your visited airports total. The free plan covers up to 20 flights per calendar year. The Crew yearly subscription is available for frequent flyers who want all the flight logging they need and the full stats suite.

Download on the App StoreGet it on Google Play


ORD is Chicago because it used to be an orchard. Now you know. The rest of the codes are waiting to be decoded.