Every airport and airline carries more than one code, and which one you reach for depends entirely on whether you are buying a ticket or planning a flight.
This is general educational information, not operational, legal, or regulatory advice. Rules differ by authority and change over time. Always verify against current official sources and follow your operator's approved procedures.
Two codes, two jobs
An airport has both an IATA code and an ICAO code, and they exist for different audiences.
- The IATA code is the three-letter one you see on a boarding pass, a baggage tag and a fare:
LHR,JFK,SYD. It is a commercial, passenger-facing identifier managed by the International Air Transport Association, and it is not built on any strict geographic system. - The ICAO code is the four-letter one used to actually operate the flight:
EGLL,KJFK,YSSY. It is the location indicator assigned under ICAO Doc 7910 and it appears in flight plans, ATC, charts, METARs and NOTAMs.
The simplest way to keep them apart: three letters is commercial, four letters is operational.
Why ICAO codes are four letters
The extra letter is not padding, it is structure. ICAO location indicators are regional: the first letter (and often the second) encodes the part of the world and the country, so the code tells you roughly where the aerodrome is before you know anything else. A few examples of the first-letter regions, per ICAO Doc 7910, which assigns and publishes every location indicator:
- E covers northern Europe, with EG for the United Kingdom (
EGLLHeathrow,EGKKGatwick) and ED for Germany. - K is the contiguous United States (
KJFK,KLAX), so a US ICAO code is very often justKplus the familiar IATA code. - L covers southern Europe, Y is Australia, C is Canada.
IATA codes carry no such system, which is why some look nothing like their city: ORD for Chicago O'Hare, YYZ for Toronto, LHR for a city whose name starts with neither L, H nor R in an obvious way.
A worked example
| Airport | IATA (ticket) | ICAO (operational) |
|---|---|---|
| London Heathrow | LHR | EGLL |
| New York JFK | JFK | KJFK |
| Sydney | SYD | YSSY |
| Tokyo Haneda | HND | RJTT |
Notice JFK: the US ICAO code is the IATA code with a K in front. That shortcut works for most of the contiguous United States, but not for Alaska or Hawaii, which sit in the Pacific P region (PANC for Anchorage, PHNL for Honolulu), so do not assume K plus the IATA code always works.
Airlines have codes too
The same split applies to operators, under ICAO Doc 8585:
- A two-letter IATA code for the commercial side:
BA,AA,LH. It is what you see in a flight number. - A three-letter ICAO designator for operations:
BAW,AAL,DLH. It pairs with a spoken telephony callsign, soBAWis "Speedbird",DLHis "Lufthansa",AALis "American". ATC and flight plans use the ICAO designator and the callsign, never the two-letter IATA code.
Common pitfalls
- Weather and NOTAMs need the ICAO code. Typing
LHRinto a weather lookup will not return Heathrow's METAR; you needEGLL. Kplus the IATA code is a shortcut, not a rule. It breaks for Alaska, Hawaii, and outside the contiguous United States entirely.- Two airports can share neither code obviously. Always confirm the four-letter ICAO indicator from an official source before filing or briefing.
In Pilot EFB
Pilot EFB's airport reference and weather lookups work on the ICAO location indicator, the same four-letter code ATC and the flight plan use, so what you brief lines up with what you file. It is a personal reference held on your device; Pilot EFB is offline-first and is not a certified Electronic Flight Bag, so confirm any code against the official AIP or charts before you rely on it.