Why Lufthansa is LH and Chicago is ORD
A boarding pass is dense with code: two letters for the airline, three for each airport, a flight number, a single letter for your fare, a seat that skips row 13. None of it is arbitrary. All of it is decodable.
The codes on a ticket are the oldest surviving user interface in aviation. Most were designed for teletype machines and printed tickets, when characters were expensive and every field had a fixed width. They have outlived the hardware by half a century, and they still govern how airline systems talk to each other today.
Two systems, two purposes
Every airline and every airport has at least two identifiers, issued by two different bodies for two different jobs. This is the single most common source of confusion.
| IATA code | ICAO code | |
|---|---|---|
| Issued by | International Air Transport Association — the airline trade body | International Civil Aviation Organization — a UN agency |
| Airline format | 2 characters (LH, BA, AA) | 3 letters (DLH, BAW, AAL) |
| Airport format | 3 letters (LHR, JFK, MAD) | 4 letters (EGLL, KJFK, LEMD) |
| Used for | Commercial: tickets, timetables, baggage tags, reservations | Operational: flight plans, air traffic control, NOTAMs |
| Unique? | Airline codes are reused over time and can be duplicated regionally | Globally unique and structured by region |
| Radio callsign | Not used on the radio | Has an associated telephony callsign |
So Lufthansa is LH on your ticket, DLH in the flight plan, and “Lufthansa” on the radio. British Airways is BA, BAW and — famously — “Speedbird” on the radio, after the winged emblem of Imperial Airways from the 1930s. Aer Lingus is EI/EIN/“Shamrock.” Cathay Pacific is CX/CPA/“Cathay.” Air France is AF/AFR/“Airfrans.”
The ICAO airport code is a map
ICAO codes are hierarchical, which makes them readable once you know the pattern. The first letter is a large region, the second narrows to a country or area, and the remaining two identify the field.
| Prefix | Region | Example |
|---|---|---|
| EG | United Kingdom | EGLL — London Heathrow |
| LE | Spain | LEMD — Madrid Barajas |
| LF | France | LFPG — Paris Charles de Gaulle |
| ED | Germany (civil) | EDDF — Frankfurt |
| K | Contiguous United States | KJFK — New York JFK |
| C | Canada | CYYZ — Toronto Pearson |
| RJ | Japan | RJTT — Tokyo Haneda |
| SB | Brazil | SBGR — São Paulo Guarulhos |
| OM | United Arab Emirates | OMDB — Dubai |
| Y | Australia | YSSY — Sydney |
Airport codes with a story
IATA airport codes were assigned over roughly ninety years by a process that was, at times, close to first-come-first-served. The results are full of fossils.
| Code | Airport | Where it comes from |
|---|---|---|
| ORD | Chicago O'Hare | The site was Orchard Field, and Orchard Place before that. Renamed for Edward O'Hare in 1949; the code stayed. |
| MCO | Orlando International | Formerly McCoy Air Force Base, named for Colonel Michael McCoy. |
| MSY | New Orleans Louis Armstrong | Moisant Stock Yards — the land was a stockyard, named for aviator John Moisant who died nearby in 1910. |
| IAD | Washington Dulles | Originally DIA, changed because teletype operators kept confusing it with DCA. The letters were simply rearranged. |
| LAX | Los Angeles | It was LA when codes were two letters. When IATA moved to three, many US airports appended an X. Hence LAX, PDX, PHX. |
| EWR | Newark Liberty | Newark, minus the vowels — N, A and K were already taken by others. |
| YYZ | Toronto Pearson | Canadian codes largely begin with Y, a legacy of weather-station reporting codes where Y meant a station had a radio range. YZ was the identifier for the Malton station. |
| BNA | Nashville | Berry Field, Nashville — after Colonel Harry Berry. |
| CVG | Cincinnati/Northern Kentucky | The airport is in Covington, Kentucky, not Cincinnati, Ohio. |
| SDF | Louisville | Standiford Field, the airport's original name. |
| BKK | Bangkok Suvarnabhumi | Inherited from the old Don Mueang airport, which then had to become DMK. |
| PEK | Beijing Capital | From the Wade–Giles romanisation 'Peking', which predates the pinyin 'Beijing'. |
| CDG | Paris Charles de Gaulle | Straightforward initials — but Paris Orly is ORY and the city itself is PAR. |
Codes that are jokes, coincidences or unfortunate
- SUX — Sioux Gateway, Iowa. The airport applied for a change, was offered alternatives, declined them, and now sells merchandise reading “Fly SUX.”
- OMG — Omega, Namibia. Predates the abbreviation entirely.
- DOH — Doha, Qatar. Also predates its more famous connotation.
- LOL — Derby Field, Lovelock, Nevada.
- BOM — Mumbai, from Bombay. Retained despite the city’s renaming, as is usual: codes rarely change because too many systems reference them.
- SNN — Shannon, Ireland. But also note the airline codes: EI is Aer Lingus (from Éireann), and Iberia holds IB — while IB as an ICAO code goes nowhere near Iberia, whose ICAO code is IBE.
Flight numbers are not random either
Airlines have considerable freedom here, but there are strong conventions, and most large carriers follow them.
- Direction. Eastbound and northbound flights conventionally get even numbers; westbound and southbound get odd. So an outbound and its return usually differ by one.
- Prestige. Low numbers go to flagship routes. BA1 was the Concorde service to New York and later a London City–New York business-only flight. AA1 has long been New York to Los Angeles. QF1 is Sydney to London.
- Ranges by type. Many airlines block out ranges: one band for long-haul, another for regional subsidiaries, another for codeshares, and often a high band (4000+) for flights operated by a regional partner on the mainline’s behalf. If your “American Airlines” flight is numbered 5xxx, it is very likely a regional operator.
- Retirement. Numbers associated with major accidents are almost always withdrawn permanently as a matter of respect and practicality.
- Codeshares multiply them. A single physical flight can carry a dozen numbers — one for the operating carrier and one for each marketing partner selling seats on it. This is why the same aircraft shows up in a search as several different “flights.”
Fare classes: the letter that decides everything
The single letter in your booking is not the cabin. It is the fare bucket, and it determines your change fees, refundability, mileage earning, upgrade eligibility and rebooking priority when things go wrong. Two passengers sitting next to each other in economy can hold wildly different letters and wildly different rights.
| Letter | Typically means |
|---|---|
| F / A | First class — full fare and discounted respectively |
| J / C / D / I / Z | Business class, descending in flexibility and price |
| W / P / E | Premium economy (varies most between airlines) |
| Y / B / M | Full-fare and near-full-fare economy: flexible, fully earning |
| H / K / L / Q / T / V / X / N | Discounted economy, descending. The cheap end of the cabin |
| G | Often a group booking |
| R | Frequently an award or upgrade inventory bucket |
There is a practical use for this. If you are hoping for an upgrade, or worrying about being rebooked in a disruption, the letter on your booking is the number that matters. A deeply discounted economy fare is frequently last in line for both.
Row 13, seat I, and the letters that go missing
Aircraft seat maps have gaps, and they are all deliberate.
- No row 13. Many carriers skip it outright — Lufthansa, Ryanair, Air France, Iberia and others. Some also skip 17, which is the unlucky number in Italy, and airlines with large East Asian markets frequently skip row 4, since the word for four is a near-homophone for death in Mandarin, Cantonese, Japanese and Korean. Cathay Pacific has historically skipped both 4 and 13.
- No seat I. Essentially universal. A capital I is too easily read as a 1 or a lowercase l on a printed boarding pass and a hand-written manifest. Seat letters run …G, H, J, K.
- Letters that skip around. On a wide-body, letters are assigned so that A and K are always windows regardless of the cabin configuration, which means the middle letters change between cabins on the same aircraft. This is why business class might be A, D, G, K and economy behind it A, B, C, D, E, F, G, H, J, K.
- Rows that start high. Some airlines number the first economy row 20 or 30 to leave room for cabin reconfiguration without renumbering the whole aircraft.
The rest of the boarding pass
| Field | What it is |
|---|---|
| Booking reference / PNR | A six-character alphanumeric locator for your reservation in the airline's system. Not the same as your ticket number. Treat it as sensitive — combined with a surname it is often enough to view or modify a booking. |
| Ticket number (13 digits) | The first three digits identify the issuing airline, and the remainder is the document serial. This is the actual financial instrument — the ticket, as distinct from the reservation. |
| SSSS | Secondary Security Screening Selection, on US-bound itineraries. Means additional screening at the gate. |
| TSA PRE / known-traveller markers | Indicates enrolment in a trusted-traveller scheme. |
| S / ACV / SEQ | Sequence number — you were the nth person to check in. Occasionally relevant in oversale situations. |
| The barcode | A BCBP (Bar Coded Boarding Pass) encoding your name, itinerary, PNR, sequence number and fare class in a documented open format. It is not encrypted, which is a good reason not to post photographs of boarding passes. |
Norba is the modern bridge between travel apps and airlines. We connect booking platforms to dozens of airlines through a single, simple interface — so you can search, book, and manage flights without the complexity. Learn more at norba.io.