---
title: "The airport codes that make no sense · Orbit"
description: "Why Chicago is ORD, Orlando is MCO, and every airport in Canada starts with Y. A short tour of the three-letter codes that stopped matching their airports decades ago, and the rules that made them that way."
url: https://orbitflights.app/blog/airport-codes-that-make-no-sense
---

# The airport codes that make no sense

28 July 2026 5 min read The Orbit team

aviation travel-culture geography

Most airport codes are boring in the correct way. Amsterdam is AMS. Madrid is MAD. Singapore is SIN. You could guess them.

Then there is Chicago O'Hare, which is ORD, and Orlando, which is MCO, and every single airport in Canada, which begins with a Y for no reason anyone can immediately explain.

The three-letter codes are administered by [IATA](https://www.iata.org/), and there are around nine thousand of them in active use. They are not an abbreviation scheme. They are a hundred years of sediment.

## The rule that explains half of it: codes outlive things

An IATA code is attached to an airport, and it is deliberately hard to change, because changing one means changing every booking system, baggage tag, timetable and ticket that references it. So when the world moves, the code stays put.

**ORD — Chicago O'Hare.** The site was called Orchard Field, after the orchards it was built over, and it was an aircraft factory during the war. It got the code ORD from Orchard. It was renamed in 1949 after Edward O'Hare, a naval aviator. The name changed; the code did not, and several million people a year now fly through an airport named for a fighter pilot using a code that means "orchard".

**MCO — Orlando.** Formerly McCoy Air Force Base, named after a colonel who died in a crash there. The base closed. The code kept the colonel.

**MSY — New Orleans.** Moisant Stock Yards. It was built on a stockyard, on land where the aviator John Moisant had crashed and died.

**BNA — Nashville.** Berry Field, Nashville.

**SDF — Louisville.** Standiford Field.

**IAD — Washington Dulles.** This one was briefly DIA, which is what you would expect. It was reshuffled to IAD because DIA and DCA — Washington National, across the river — were being confused by people reading them quickly off a handwritten tag. The fix was to shuffle the letters rather than pick new ones.

## Codes that outlived their cities

The same stubbornness applies when a city changes its name. The result is a small archive of former place names, still printed on every boarding pass:

| Code | Airport          | What the code is short for | |  LED | St Petersburg | Leningrad |
| ---- | ---------------- | -------------------------- | ------ | ------------- | --------- |
| SGN  | Ho Chi Minh City | Saigon                     |        |               |           |
| PEK  | Beijing Capital  | Peking                     |        |               |           |
| CAN  | Guangzhou        | Canton                     |        |               |           |
| BOM  | Mumbai           | Bombay                     |        |               |           |
| CCU  | Kolkata          | Calcutta                   |        |               |           |
| MAA  | Chennai          | Madras                     |        |               |           |

Every one of these is a city that renamed itself and an airline industry that declined to follow. If you fly into St Petersburg, your bag goes to Leningrad.

## The letters nobody could have

A good deal of the weirdness in North American codes comes from letters that were already spoken for when civil aviation got there.

- **N** was reserved for the US Navy.
- **K** and **W** were taken by broadcast radio station call signs — W east of the Mississippi, K west of it.
- **Q** was largely spoken for by international radio codes.

Which is why Newark is not NEW. With N unavailable, it took the E, W and R out of Newark and became **EWR**. The airport is not hiding anything; it just couldn't have its own first letter.

## Why Canada is all Ys

Toronto is YYZ. Vancouver is YVR. Montreal is YUL. Calgary is YYC. Every scheduled airport in the country begins with the same letter, which makes Canadian departure boards look like a typing error.

The usual explanation is that in the era when Canadian aerodromes were being given two-letter identifiers, the codes were prefixed with a letter indicating whether the location had a co-located radio station — Y for yes, and other letters for the cases where it didn't or the station was somewhere else. When the two-letter identifiers were extended to three, the prefix came along and never left.

That account is repeated everywhere and is genuinely difficult to verify in primary sources, so treat it as the standard explanation rather than a settled one. What is not in doubt is the outcome: Toronto's underlying identifier is YZ, and the Y in front of it is a piece of radio-era administration that outlived radio-era administration.

YYZ has had the odd afterlife. Rush, who are from Toronto, named a 1981 instrumental after it and built the opening rhythm out of the Morse code for Y–Y–Z, which is the only airport code with a time signature.

## The X that means nothing at all

Los Angeles is LAX. Portland is PDX. Phoenix is PHX.

In the 1930s, US airports used two-letter identifiers inherited from the National Weather Service: Los Angeles was LA, Portland was PD, Phoenix was PH. When the system expanded to three letters to accommodate the growth in airports, the existing two-letter codes needed a third character, and a great many of them simply had an X bolted onto the end as a filler.

So the X in LAX means nothing. It is the typographic equivalent of a shrug, and it is now on the side of a building.

## Codes that moved house

**BKK** belonged to Bangkok Don Mueang for decades. When Suvarnabhumi opened in 2006 and took over as the main international airport, it took BKK with it, and Don Mueang — the older airport, still very much operating — was left with DMK.

The code did not describe a piece of ground. It described whichever airport was doing the job.

## Why any of this is useful

Mostly it isn't, which is part of the appeal. But there is one practical consequence: **the code is the reliable identifier and the name is not.**

City names change. Airports get renamed after politicians. Terminals move, airports move, and the marketing name on the website is often not the name in the timetable. The three letters are the thing that stays constant across forty years of tickets, which is exactly why a logbook should be built on them.

Orbit is. It ships the full IATA table — 8,801 airports — inside the app, and you can search it by code, by city or by airport name, offline, at 38,000 feet. Log a flight into LED and it knows you mean St Petersburg. Log one into ORD and it knows you mean Chicago, whatever happened to the orchards.

---

_Related reading: [counting countries: what actually counts](https://orbitflights.app/blog/counting-countries) and [the best window seats in the world, by route](https://orbitflights.app/blog/best-window-seats-by-route)._

## Put your own flights on a globe.

Free for your first 15\. Works offline, no account needed to start.

[Download now](https://play.google.com/store/apps/details?id=com.qwertybit.orbit)

## Read next

[24 July 2026How flight radar actually works, and why your trail vanishes when you land](https://orbitflights.app/blog/how-flight-radar-works)

[28 June 2026Why your flight to Tokyo goes over the Arctic](https://orbitflights.app/blog/great-circle-routes-explained)

[25 August 2026How many miles do you have to fly around the world?](https://orbitflights.app/blog/how-many-miles-to-fly-around-the-world)

---
Markdown copy of https://orbitflights.app/blog/airport-codes-that-make-no-sense for language models and agents. Site index: https://orbitflights.app/llms.txt
