Pearson airport in Toronto has the airport code YYZ, which does not reflect the name Pearson or the city of Toronto. This seems contradictory to other IATA codes like LGA (Laguardia), JFK (John F Kennedy), LHR (London Heathrow), and DFW (Dallas Fort Worth).

Is there a specific methodology in place for assigning these values?


2 Answers 2


There are different kinds of codes assigned to airports. IATA codes, which are the three letter codes you mention; are for travel industry identification purposes (by the way, these aren't restricted to airports - train stations also have these codes). These are used by airlines and travel agents.

The other four letter codes are ICAO codes. These are used for navigation, air traffic and flight planning.

ICAO codes have a defined standard, each region is assigned a letter and all codes begin with that letter. Canada is assigned a practical C, US is K:

ICAO code designations from Wikipedia

IATA codes however, are arbitrary. For some reason, Canada was given 'Y' and so all IATA codes in Canada begin with Y.

There is YYC (Calgary), YVR (Vancouver), but then you have YQX (Gander) and YXS (Prince George) and YUL (Montreal-Trudeu).

  • $\begingroup$ I have heard a rumor that the "Y" in Canada is an indication meaning "Yes there is a weather station at this airport" (or at least it was originally). IATA codes are used by the airlines so it makes sense that they would only go to airports with weather reporting capability, but not all airports in Canada follow this pattern, for example CSD4 (which does seem to have WX reporting) and CMB7 among others. $\endgroup$
    – randomhead
    Commented Apr 17, 2021 at 14:36

Airport codes in the US and Canada were originally based on the two-letter weather station codes for nearby cities. For instance, Toronto (Pemberton) was "TO".

However, it was soon apparent that didn't provide enough codes, so it was expanded to 3 letters. Canada chose to prefix all their codes with "Y" so they would be easily recognised, e.g. "YTO" for Toronto, whereas the US added a suffix letter, such as "LAX" for Los Angeles. These are the IATA codes you know today.

Then ICAO wanted even more codes to cover the entire world, but assigned on a more geographical basis than the seemingly random IATA codes. Canada was prefixed again, this time as region "C", e.g. "CYTO", and the contiguous US was prefixed as region "K", e.g. "KLAX".

When Toronto Pearson airport was built, it needed a new code because YTO/CYTO was already taken; I can only guess that they chose YYZ/CYYZ because there was no weather station using code YZ. Canada later added Z/CZ prefixes, and now allows any letters just like the US.

Note that the US and Canada got single-letter ICAO prefixes due to their large land area. Most countries are smaller and thus got two-letter prefixes, with the first letter specifying a region, e.g. "E" for Northern Europe, and the second specifying a country, e.g. "G" for Great Britain. This leaves no obvious mapping to/from the IATA code, e.g. EGLL vs LHR.

  • 2
    $\begingroup$ The "K" prefix only applies to the 48 continental US states. Hawaii and Alaska are part of the Pacific region and thus use the prefixes "PH" for Hawaii and "PA" for Alaska. $\endgroup$
    – Gerry
    Commented Apr 16, 2019 at 11:27
  • $\begingroup$ @Gerry Fixed that. $\endgroup$
    – StephenS
    Commented Apr 16, 2019 at 14:12
  • $\begingroup$ There's a missing step in this explanation of where IATA codes came from: the "I" in both IATA and ICAO stands for "International", so both sets of codes "cover the entire world". IATA's coding directory does not include every weather station, and the FAA's does not include non-US airports. They even use conflicting codes sometimes: "BER" is the IATA code for the new Berlin Brandenburg Airport; but also the FAA code for Adak Island, AK. $\endgroup$
    – IMSoP
    Commented Apr 2 at 20:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .