PNR & GDS Codes Guide
A plain-English reference for the status codes, class letters, and terminology that show up in raw Amadeus, Sabre, and Galileo output — written for travel consultants who read this stuff every day but occasionally need to double-check one.
On this page
Reading a segment line
Every airline segment in a PNR packs the same handful of facts into one dense line. The exact spacing varies by GDS, but the fields themselves are consistent. Here's a typical Amadeus/Sabre-style 24-hour segment:
EK 185Carrier and flight number — Emirates flight 185KBooking class letter (see the table below)20OCTDeparture date2Day of week, IATA numbering: 1=Monday … 7=Sunday, so2here means TuesdayDXBBCNOrigin and destination airport codes run together — Dubai to BarcelonaHK1Status code (HK) plus passenger count (1)0815 / 1325Departure and arrival time, local to each airport20OCTArrival date — only shown separately when it differs from departure
A quick sanity check worth knowing: that day-of-week digit is computed by the airline's own system, which knows the real booking year — useful when a PNR text itself never states the year outright.
Status codes
The two letters right before the passenger count describe where that segment actually stands — confirmed, waitlisted, cancelled, and so on.
| Code | Meaning |
|---|---|
| HK | Holding confirmed — the standard "all good" status |
| KK | Confirming — segment confirmed by the airline after being requested |
| KL | Waitlisted, confirmed — moved off the waitlist onto a confirmed seat |
| HL | Holding, waitlisted — still on the waitlist |
| HN | Holding, need — request sent, awaiting the airline's reply |
| NN | Need, requested — segment requested but not yet actioned |
| SS | Sold, confirmed — used mainly in original air-availability sell entries |
| UC | Unable to confirm — the request was declined |
| UN | Unable, does not operate — flight doesn't exist as requested |
| DK | Booked, schedule change — a Jetstar/low-cost-carrier variant of HK, often paired with schedule-change flags |
| XX / XK | Cancelled segment |
| WK | Waitlisted, confirmed by schedule change |
| RR | Reconfirmed |
If a status code doesn't fall into "confirmed" territory (HK, KK, KL, DK), it's worth a second look before quoting a client — a waitlisted or unable-to-confirm segment isn't a booked seat yet.
Booking class letters
The single letter after the flight number is the fare/booking class — it tells you the cabin, but the exact letter-to-cabin mapping is set by each airline individually, so the same letter can mean different things on two different carriers. The table below is the common convention, not a universal rule.
| Cabin | Typical letters |
|---|---|
| First | F, A, P |
| Business | J, C, D, I, Z |
| Premium Economy | W, E, R (varies widely by carrier) |
| Economy | Y, B, H, K, L, M, N, Q, S, T, V, X |
A carrier like Emirates might use E for Premium Economy, while a carrier without that cabin at all — say Etihad or Qatar — simply doesn't issue that letter. When in doubt, cross-check against the specific airline's fare basis rather than assuming the general table above.
Connection vs. stopover
Both describe a gap between two segments at the same airport, and the distinction genuinely matters for how you present an itinerary to a client:
Connection
A short changeover — typically under 24 hours — where the passenger is just passing through on the way to their real destination. Worth noting the transit time, but not something the traveler experiences as "part of the trip."
Stopover
A longer break — conventionally 24 hours or more on international itineraries — where the passenger is meaningfully staying in that city before continuing. This is worth calling out clearly in a quote, since it changes what the traveler should expect (and sometimes what the fare rules allow).
Common GDS terms
| Term | Meaning |
|---|---|
| PNR | Passenger Name Record — the booking record itself, identified by a record locator (e.g. SHJAD3) |
| GDS | Global Distribution System — the booking platform (Amadeus, Sabre, Travelport/Galileo, Worldspan) |
| Fare basis | The code describing exactly which fare rules apply to a ticket, e.g. KLXESAE1 |
| E-ticket | Electronic ticket number tied to the PNR, issued once the booking is ticketed |
| ARNK | "Arrival unknown" — a placeholder segment marking a gap in the itinerary the passenger arranges separately (e.g. an overland leg between two flights) |
| Open-jaw | A round trip where the return leg departs from (or arrives into) a different city than the outbound leg |
| Codeshare | A flight sold under one airline's code but operated by a different airline |
| SSR | Special Service Request — meal preferences, wheelchair assistance, passport details, and similar flags attached to a PNR |
| Involuntary schedule change | An airline-initiated change to a booked flight's time or routing after ticketing |
Why durations look different across systems
A flight's departure and arrival times in a PNR are both local to their own airport — so the raw clock difference between them is rarely the actual flight time whenever the route crosses a timezone. A Casablanca–Dubai flight departing 14:40 and arriving 01:40 the next day looks like an 11-hour flight by the clock alone, but Casablanca sits at UTC+1 and Dubai at UTC+4 — a three-hour gap that has to be subtracted out to get the true block time, which comes to roughly 8 hours in that example. This is exactly the kind of arithmetic that's easy to get wrong by hand and easy to get right with the correct airport timezone data on hand.
Open the converter →