Ever wonder why Chicago O'Hare is ORD or why LA ends in X? Learn how IATA airport codes are assigned, the history behind weird codes, and the funniest real codes in aviation.
You've seen them on your boarding pass, your luggage tag, and every flight search you've ever run. Three little letters that are supposed to represent an airport.
Except half the time, they make absolutely no sense.
Chicago O'Hare is ORD. Orlando is MCO. New Orleans is MSY. Meanwhile, Atlanta gets the perfectly logical ATL and San Francisco gets SFO.
What's going on here? Why do some airport codes perfectly match their city names while others seem completely random?
The answer involves World War II military bases, a 1930s weather reporting system, and one very important letter of the alphabet. Let's decode the system.
Every commercial airport in the world gets a unique three-letter code assigned by the International Air Transport Association (IATA). These codes power everything from flight bookings to baggage routing to cargo shipments.
The system is governed by IATA Resolution 763, administered from IATA's headquarters in Montreal. And the rules are surprisingly straightforward.
When a new airport needs a code, here's the priority order:
First choice: Use the first three letters of the city or airport name. This is how you get ATL (Atlanta), BOS (Boston), DEN (Denver), and MIA (Miami).
Second choice: If those letters are taken, pick another unassigned combination that preferably starts with the city's first letter.
The catch? Once a code is assigned, it's essentially permanent. It doesn't change even if the airport gets renamed, the city changes, or the original reference becomes totally obscure. That's why so many codes seem weird today — they're frozen in time.
IATA assigns roughly 40 to 50 new codes every year. And with nearly 17,600 possible three-letter combinations, we're not running out anytime soon.
Here's something most travelers don't realize: IATA codes are just one of three airport identification systems in use worldwide. Pilots, air traffic controllers, and booking agents are all looking at different codes for the same airport.
| System | Format | Assigned By | Used For | Example (Chicago O'Hare) |
|---|---|---|---|---|
| IATA | 3 letters | International Air Transport Association | Ticketing, baggage, passenger-facing | ORD |
| ICAO | 4 letters | International Civil Aviation Organization | Air traffic control, flight plans, pilots | KORD |
| FAA LID | 3–4 letters | Federal Aviation Administration (U.S. only) | U.S. domestic operations, small airfields | ORD |

The key difference? IATA codes are designed for travelers. They're what you see on boarding passes, flight searches, and luggage tags. ICAO codes are the "official" ones used for flight plans and air traffic control, and they encode geographic information — the first letter or two tell you the region or country.
For U.S. airports, the ICAO code is usually just the IATA code with a "K" prefix. So LAX becomes KLAX, JFK becomes KJFK, and ORD becomes KORD. Alaska uses a "PA" prefix, and Hawaii uses "PH."
When you're searching for flights on Autopilot, you're using the IATA codes. They're the universal language of air travel.
Airport codes weren't always three letters. And they didn't start with aviation at all.
Back in the 1930s, pilots navigated using two-letter codes from the National Weather Service (NWS). Every weather reporting station had a short identifier that could be easily transmitted via Morse code and radio telegraph.
The system worked fine when there were a few hundred airports. But as commercial aviation exploded in the 1940s, 676 possible two-letter combinations weren't nearly enough.
The solution? Expand to three letters, giving the system 17,576 possible combinations. That's roughly a 26x increase in capacity.
But here's the twist that created all the "weird" codes we see today: airports that already had two-letter weather codes often just added a letter rather than starting from scratch. Many simply tacked an "X" on the end.
That's how LA became LAX. And PD (Portland) became PDX. And PH (Phoenix) became PHX.
The "X" doesn't stand for anything. It's just filler. But in the case of LAX, that random letter became one of the most iconic airport brands on the planet.
This is the good stuff. Here are the codes with the best backstories — the ones that'll make you sound impossibly well-traveled at your next dinner party.
| Code | Airport | Why It's That Code | Fun Fact |
|---|---|---|---|
| ORD | Chicago O'Hare | Built on the site of Orchard Field, a WWII Douglas aircraft assembly plant | Renamed in 1949 for Navy pilot Edward "Butch" O'Hare, but the code stuck |
| LAX | Los Angeles International | Original two-letter weather code LA + filler X | That "meaningless" X turned LAX into a global brand seen on millions of souvenirs |
| MCO | Orlando International | Named for McCoy Air Force Base, the military installation on the same site | Locals joke MCO stands for "Mickey's Corporate Office" |
| MSY | New Orleans | Short for Moisant Stock Yards, the cattle ranch where the airport was built | Named after daredevil aviator John Moisant, who died in a 1910 crash on that land |
| JFK | New York Kennedy | Renamed after President John F. Kennedy in 1963 | One of the rare cases where a code was actually changed (it was formerly IDL for "Idlewild") |
| EWR | Newark Liberty | The Navy reserved all codes starting with N, so Newark used its remaining letters | The Navy claim on "N" codes is why no U.S. commercial airport starts with N |
| IAD | Washington Dulles | Original code DIA was confused with DCA (Reagan National), so letters were scrambled | The I-A-D arrangement has no hidden meaning — it was just the least confusing option |
| IAH | Houston Intercontinental | Intercontinental Airport Houston — because HOU was already taken by Hobby | One of the clearest examples of a descriptive code created by necessity |
| DFW | Dallas/Fort Worth | Combines both cities: Dallas-Fort Worth | Simple, logical, and one of the few codes that represents two cities equally |
| SFO | San Francisco | Two-letter code SF + the letter O (instead of X) | San Francisco chose O over X — a small decision that stuck for nearly a century |
| BNA | Nashville | Short for Berry Field Nashville, the airport's original name | Named for Colonel Harry S. Berry, a local aviator. The military facilities still use "Berry Field" |
| PDX | Portland | Two-letter weather code PD + filler X | Portland embraced the code so fully that PDX is now shorthand for the entire city |
| YYZ | Toronto Pearson | Canadian Y prefix + YZ from the Morse code identifier for the Malton area | Rush named a famous instrumental track after this code. Yes, that Rush |
| SIN | Singapore Changi | First three letters of Singapore | Perfectly logical, yet it raises eyebrows every time it appears on a luggage tag |
| CDG | Paris Charles de Gaulle | Initials of Charles de Gaulle | Paris's other airport, Orly, gets the much simpler ORY |
| NRT | Tokyo Narita | From Narita — the town where the airport is located | Tokyo's other airport, Haneda, is HND — both skip "Tokyo" entirely |

When you book flights through Autopilot, knowing these codes helps you quickly confirm you've got the right airport — especially in cities with multiple options like New York, London, or Tokyo.
If you've ever flown to Canada, you've noticed something: almost every Canadian airport code starts with Y.
YYZ is Toronto. YVR is Vancouver. YUL is Montreal. YOW is Ottawa. YEG is Edmonton. YYC is Calgary.
This isn't random. It traces back to the 1930s weather reporting system.
Canadian weather stations were assigned two-letter Morse code identifiers. If the station was co-located with an airport, it got a "Y" prefix — essentially meaning "yes, there's an airport here." Stations without an airport got a "W" prefix (for "without").
When the three-letter IATA system rolled out in the 1940s, most Canadian airports already had Y-prefixed identifiers. Rather than reassign everything, they kept the system in place. The two letters after the Y typically came from the transcontinental railroad's Morse code identifiers for the area.
That's why Toronto is YYZ (the "YZ" was the Morse code for the Malton area where Pearson sits) and Montreal is YUL (the "UL" came from the radio beacon code for the neighboring town).
There are a handful of tiny Canadian airports that start with "W" instead of "Y" — like WPC (Pincher Creek) and WNN (Wunnumin Lake). These were weather stations that didn't originally share their site with an airport.
Some airport codes are perfectly legitimate, internationally recognized identifiers that also happen to spell out... well, let's just say they get a reaction.
These are all real, active IATA codes:
And here's an internet-famous observation: you can string together real airport codes to spell out PIS-OFF-DIK-HED and several other colorful phrases. Aviation professionals have been doing this for decades.
Need to figure out what a code means — or find the code for where you're headed? Here are the fastest ways:
Search on Autopilot. When you search for flights on Autopilot, just start typing a city name and the matching airport codes appear automatically. It's the easiest way to find codes while simultaneously looking at real flight options.
IATA's official code search. The International Air Transport Association maintains a free lookup tool at iata.org that covers every assigned code worldwide.
Your boarding pass or luggage tag. Your departure airport code appears on your boarding pass, and your destination code is printed on every luggage tag. If your bag ends up at the wrong carousel, checking the three-letter code on the tag is the fastest way to figure out where it went.

Pro tip: In cities with multiple airports, knowing the codes prevents expensive mistakes. Flying into EWR (Newark) when your hotel is in Manhattan is a very different experience than landing at LGA (LaGuardia) or JFK. Same goes for HND (Haneda) versus NRT (Narita) in Tokyo, or LHR (Heathrow) versus LGW (Gatwick) in London.
No U.S. commercial airport starts with N. The Navy and other military branches claimed all codes beginning with N and W for their own airfields. That's why Newark is EWR and not NEW (and why New Orleans couldn't use it either).
Codes almost never change. JFK's switch from IDL (Idlewild) in 1963 is one of the extremely rare examples. When an airport gets renamed, the old code stays. The 40-50 new codes issued each year are overwhelmingly for brand-new airports.
India's newest airport already has its code. The upcoming Noida International Airport near Delhi was recently assigned DXN byIATA — where D is for Delhi, N for Noida, and X represents global connectivity.
When you're planning your next trip with Autopilot, you don't need to memorize any of these codes. Just type your destination and we'll handle the rest. But now you'll have a fun story to tell when someone asks why Chicago isn't CHI.
ORD comes from "Orchard Field," the name of the site when it was a World War II Douglas aircraft assembly plant. The airport was renamed in 1949 to honor Navy pilot Edward "Butch" O'Hare, but the original three-letter code was never changed.
IATA assigns codes under Resolution 763. The first choice is the first three letters of the city or airport name. If those are taken, another combination starting with the city's first letter is preferred. A commercial airline must request the code, and the airport must handle regular scheduled service.
The X doesn't stand for anything. When airports switched from two-letter weather station codes to three-letter IATA codes in the 1940s, many simply added an X as filler. LA became LAX, PD became PDX, and PH became PHX.
In the 1930s, Canadian weather stations co-located with airports received a "Y" prefix (meaning "yes, there's an airport here"). When the three-letter system was adopted, most Canadian airports kept their Y prefix. The two letters after Y typically came from railroad Morse code identifiers.
IATA codes are three letters used for ticketing and passenger-facing systems (like LAX). ICAO codes are four letters used for air traffic control and flight plans (like KLAX). For U.S. airports, the ICAO code is usually the IATA code with a "K" prefix.
Technically yes, but it almost never happens. JFK's change from IDL (Idlewild) in 1963 is one of the most famous examples. IATA codes are designed to be permanent, even when airports are renamed.
The U.S. military reserved codes starting with N (Navy) and W for military installations. That's why Newark is EWR instead of NEW, and why you won't find a single major U.S. commercial airport with an N or W code.
Some real IATA codes include FUK (Fukuoka, Japan), PEE (Perm, Russia), LOL (Derby Field, Nevada), OMG (Omega, Namibia), BUM (Butler, Missouri), DIE (Arrachart, Madagascar), and FAT (Fresno, California). They're all legitimate, internationally recognized codes.
Disclaimer: Information is current as of 2026. Airport codes can change, though it's rare. Always verify with the airline or airport.