Airline inventory management is how an airline records every seat it can sell on each flight, divides those seats into cabins and booking classes, and decides, minute by minute, which of them are still for sale. It is why the same economy cabin can show a cheap fare on Monday and only an expensive one on Tuesday, and why a seat in your search results can be gone when you try to book it.
This guide covers passenger seat inventory, not aircraft spare-parts or MRO stock control, a separate discipline that shares the name. It is written for travel agencies, OTAs and travel-tech teams who sell flights and want to understand what sits behind an availability response.
- Where it lives: in the airline’s inventory system, one part of its passenger service system (PSS).
- Who controls it: revenue management, which sets how many seats each booking class may sell and how far the flight may be overbooked.
- How sellers see it: as seat counts per class in a GDS, as priced offers through NDC and airline APIs, or through an aggregator on top of both.
- What you see is a snapshot: no agency sees the master record, so availability can change between search and booking.
What is airline inventory management?

For every flight and date it operates, an airline keeps an inventory record. It holds the physical capacity of each cabin and the number of seats the airline is willing to sell, which is higher when the flight is overbooked. It also holds a limit for each booking class and the seats already sold, held or waitlisted. Each confirmed booking takes a seat out of the count; each cancellation or expired hold puts one back.
Airline inventory management is the work of setting and changing those numbers so the flight earns as much as possible without turning away passengers who would have paid more.
Where inventory sits in the PSS
A passenger service system usually has three core parts. The reservation system holds bookings as passenger name records (see our guide to the PNR). The inventory system holds flights, cabins, booking classes and seat counts. Departure control handles check-in, seat assignment and boarding. Amadeus, for example, sells Altéa Inventory as its own module, integrated in real time with the airline’s revenue management and departure control systems. Our overview of how an airline passenger service system fits together shows the same three parts from the sales side.
Who manages it
Schedule planners decide which aircraft flies which route, so they set physical capacity. Revenue management (RM) decides how that capacity is sold. Peter Belobaba’s MIT lecture on airline revenue management describes a typical RM system as one that stores booking history by flight and fare class, forecasts demand and no-shows, and calculates overbooking levels and booking-class limits that analysts can accept or override. Distribution teams then decide which channels and agencies see that availability.
How an airline inventory system is structured

Airline inventory management rests on three building blocks, and together they explain almost every availability response an agency receives.
Flights, legs and segments
IATA’s data model defines a flight leg as the section of a flight from one airport to the next, and a flight segment as the section between a passenger’s boarding point and a later off point.
Take one flight number operating Karachi–Dubai–London. It has two legs but three possible segments: Karachi–Dubai, Dubai–London and Karachi–London. Seats physically exist on legs, so a Karachi–London passenger uses a seat on both. That is why inventory controls capacity leg by leg, while the airline sells and prices by segment and journey.
Cabins and booking classes (RBD)
Inside each cabin, seats are sold through booking classes. IATA calls the code a Reservation Booking Designator (RBD): a single letter used to access inventory, apply filed fares and identify cabin entitlement. A cabin normally has several RBDs, each a separately controlled bucket of the same seats.
The letters are not universal. IATA’s own example uses J for premium business, yet Air New Zealand’s published booking classes use J for its cheapest long-haul business fare:
| Cabin (Air New Zealand long haul) | Booking classes | Fare type |
|---|---|---|
| Business Premier | C / D, Z / J | Business / Business Value / Business Saver |
| Premium Economy | U / E, O, A | Global Flexi / Global Saver |
| Economy | Y, B, M, H / Q, V, W, T, L / S, G, K | Global Flexi / Global Saver / Global Saver Max |
So never hard-code “J means business” or “Y means full fare” into pricing or reporting rules. Map classes per airline, and per route where the airline does.
Booking class, fare class and fare basis
- Booking class (RBD, class of service): the inventory bucket the seat is sold from, shown on the PNR segment, for example
YorM. - Fare class: in everyday use, a synonym for booking class. IATA’s glossary entry for the reservations booking designator calls it “the booking class usually determined by the fare basis”.
- Fare basis code: the code for the fare product and its rules. Amadeus’ Flight Offers Search specification says it is “usually, though not always” the booking class letter followed by characters for the fare’s conditions; its sample uses
J6XQSMIXin class J.
A fare can only be sold if its booking class is open on every segment it covers. A cheap fare in the tariff is worthless while its class shows zero.
How availability counts are shown
Amadeus’ guide to its air availability display lists the statuses: 1 to 8 is the exact number of seats, 9 means nine or more, 0 or L means the class can be waitlisted, R means on request, and S or C means closed.
A line reading Y9 B9 M4 H2 Q0 therefore means at least nine seats in Y and B, exactly four in M, two in H, and no seats in Q, where 0 means a waitlist at most. It does not mean 24 seats are left, because nested classes overlap (next section). APIs share the ceiling: in Amadeus’ Flight Offers Search, numberOfBookableSeats “can not be higher than 9”.
Airline inventory control: nesting, overbooking and revenue management

Airline inventory control is the set of rules that turns a demand forecast into open and closed classes. Three mechanisms do most of the work.
Nested booking classes
Booking classes in a cabin are usually nested: every seat a cheaper class can sell is also available to the more expensive classes above it, but not the other way round. Belobaba’s MIT thesis on seat inventory management built the Expected Marginal Seat Revenue (EMSR) model for this structure and tested it at Western Airlines. His lecture gives a worked example for a 135-seat economy cabin:
| Class | Average fare | Booking limit before sales | Limit after 72 bookings |
|---|---|---|---|
| Y | $670 | 135 | 63 |
| M | $550 | 129 | 58 |
| B | $420 | 112 | 44 |
| V | $310 | 98 | 36 |
| Q | $220 | 73 | 23 |
| L | $140 | 40 | 0 |
Read each limit as “this class and everything cheaper may take at most this many seats”. L can never take more than 40, while Y can take any seat left. In the last column Q sold faster than forecast, the system re-optimised and L fell to zero. To an agent, nothing happened to the aircraft; the lowest fare simply vanished.
Leg control, O&D control and married segments
Leg-based control treats each leg separately. Origin and destination (O&D) control gives different availability to different journeys over the same leg. The MIT lecture uses bid prices: if legs A–B, B–C and C–D carry bid prices of $34, $201 and $169, a journey is accepted only if its fare beats the sum for the legs it uses. A $315 local fare on B–C is accepted, but a $379 fare for A–D is refused, because it would occupy three legs worth $404.
To protect that logic, airlines “marry” connecting segments. Qantas tells agents that its availability is based on point of sale and the customer’s origin and destination, and that married flights cannot be ticketed separately. Misuse of O&D availability is recovered with an agent debit memo (ADM) for the fare difference. Amadeus adds that some airlines open more availability on a segment sold as part of a connection, and that married segments cannot be cancelled, priced, rebooked or issued individually.
Overbooking and no-shows
Because some passengers do not turn up, many airlines accept more bookings than there are seats. The US Department of Transportation’s bumping and oversales guidance says the practice is legal, that not every airline does it, and that airlines must ask for volunteers before denying boarding involuntarily. The RM model picks the authorised capacity that minimises the combined cost of denied boardings and empty seats.
So an open class on a flight that looks full on the seat map is normal. The seat map shows unassigned seats; inventory shows what the airline is prepared to sell.
What changes during the day
RM systems re-forecast and re-optimise at checkpoints before departure, which the MIT lecture notes can substantially change class availability from one day to the next. ATPCO describes three kinds of dynamic offers: optimised offers from filed fares with dynamic availability, adjusted offers where a pricing engine shifts a filed price, and continuous offers that do not depend on predefined price points. The further an airline moves along that scale, the less a list of class letters tells you about the price you will be quoted.
How airline availability reaches travel agencies and OTAs

An agency never queries airline inventory the way the airline’s own RM team does. It sees what a channel returns, and each channel returns something different.
GDS: seat counts per class
In the traditional model the airline publishes schedules and class availability to the global distribution system, while fares and rules are filed separately through ATPCO. The GDS combines filed fares, rules and current class status to price an itinerary.
How fresh that status is depends on the airline’s agreement with the GDS. Amadeus lists several airline access levels, from standard access to direct access and access sell, and its availability troubleshooting guide is blunt: availability and the sell “are two distinct processes and are not necessarily synchronised in real-time”. An Access Update airline can offer last-seat availability; a standard access display is not last-seat availability. Airlines can also restrict what certain offices may sell.
NDC and airline APIs: priced offers
IATA describes NDC as an XML-based standard built on offer and order management, so the airline creates the offer itself. Instead of a seat count per letter, the seller receives a priced offer for the requested passengers, often with a bundle and an expiry, built from the airline’s own inventory and pricing logic at the moment of the request. If you are choosing which channel to connect first, this walkthrough of how GDS and NDC responses differ covers fares, PNRs and servicing in more depth, and our NDC vs GDS comparison looks at the commercial side.
With a GDS you reason about classes and fares; with NDC you reason about offers and their validity windows. Both are views of the same airline inventory.
Aggregators and consolidators
Many agencies buy flight content through an aggregator or consolidator API that combines GDS, NDC and low-cost sources. That adds convenience and one more layer between you and the airline, often with its own cache. Our guide to flight aggregator APIs compares the options, and airline distribution explained maps the wider chain.
Why seats shown as available disappear at booking time

“It was there a minute ago” is one of the most common complaints on any flight desk. The cause is nearly always in inventory, not in the booking site.
Cached results vs live inventory
Every live search costs the airline and the channel computing time, and most searches never become bookings. IATA’s look-to-book white paper describes rising search volumes pushing up look-to-book ratios and straining systems and costs, so sellers cache results. IATA’s NDC scalability report notes that third-party caches generate unproductive shopping requests just to stay fresh, and recommends result caches at airline level.
A cached fare records what inventory looked like when it was fetched. If RM has closed the class since, the fare is gone, whatever the results page says.
Class closures, married segments and sell failures
Between search and booking, another seller can take the last seats in a class that showed 1 to 8. RM can re-optimise and close a class, as in the L-class example above. A connection can be open as a married O&D while its single segment is closed, so changing one leg of a quoted itinerary breaks the price. A standard access display can simply lag the airline’s own system. The result is a reject, a waitlist or a sell in a different class at a different price.
Holds, ticketing time limits and released seats
A confirmed but unticketed booking holds a seat only until its deadline. Duffel’s guide to holding orders and paying later is a clear example. An order carries a payment_required_by time, after which the airline releases the space. A separate price guarantee can expire earlier, so the seat stays held while the price changes. Amadeus offers carry a lastTicketingDate, the last day an offer booked that day can be ticketed.
Released seats return to the pool, which is why availability sometimes reappears near a deadline. Our e-ticket guide explains why the ticket, not the booking, secures the fare.
What agencies can do about it
- Revalidate before payment. Re-price the exact offer immediately before charging the customer and show any change honestly. Our guide to booking revalidation covers the workflow.
- Search and book by true origin and destination. Splitting connections to chase a lower class is a false saving once married-segment rules and debit memos apply.
- Keep cache lifetimes short for close-in dates, where classes open and close fastest, and longer for inspirational searches far out.
- Track holds and time limits in a queue, so nothing expires because nobody noticed.
- Have a second source for important routes. See supplier failover and redundancy.
Selling airline inventory through your own booking platform

Airline inventory management happens inside the airline. An agency or OTA never owns that inventory, but its booking platform decides how faithfully it reaches the customer. When you evaluate flight booking software, check:
- Does each search go to the connected source, or come from a cache, and for how long?
- Are fare and availability rechecked with the supplier before the card is charged?
- Are booking class, fare family, baggage and change rules shown before payment and kept on the booking?
- Can staff see holds and ticketing deadlines in a queue?
- Can you set markups by route, channel and agent group, and add a second supplier for weak routes?
Where PHPTRAVELS fits
PHPTRAVELS is the booking and integration layer between your flight sources and your customers, not an inventory system. The flights module searches every connected GDS, NDC and low-cost source in parallel, merges duplicate flights into one result and revalidates the chosen offer with its supplier before the card is charged. The airline reservation system keeps each PNR with its fare rules, payment and ticket status, and shows cabin and seat availability as the connected source returns it.
In the back office, staff search bookings by PNR, name, route or channel, work a ticketing queue of bookings waiting for payment or issuance, and set fees and markups per route, channel or agent group. B2B agents get their own commissions, credit and wallet balance. Current flight suppliers are listed on the integrations page.
What it does not do: PHPTRAVELS does not hold, control or supply airline seat inventory, and it does not set booking-class limits. You connect suppliers with your own contracts and credentials, and availability is whatever those sources return. For an airline, it sits on top of the airline’s own PSS rather than replacing it. Stock you contract yourself, such as hotel allotments, tours or group allocations, belongs in a booking inventory system instead.
To see live availability, revalidation and the ticketing queue together, open the PHPTRAVELS demo, then estimate your setup on the pricing page.
Airline inventory management FAQ
What is an airline inventory system?
The part of an airline’s passenger service system that stores each flight’s capacity by leg, cabin and booking class, and decides which classes are open for sale.
What is the difference between booking class and fare class?
In everyday use, none: both mean the one-letter bucket a seat is sold from. The fare basis code is different; it identifies the fare and its rules.
What does RBD mean in airline terms?
Reservation Booking Designator, IATA’s term for the booking class code. Each airline chooses its letters per cabin.
Why does a flight show seats in one class but not another?
Classes are separate, nested limits on the same seats. When demand is strong, revenue management closes cheaper classes first, so Y can show 9 while L shows 0.
Can a travel agency see an airline’s full inventory?
No. It sees the availability or offers the airline publishes through its GDS, NDC or API channel, sometimes restricted by office or market, and often through a cache.
Key takeaways
Airline inventory management comes down to this: seats live on flight legs, are sold through booking classes, and are released or withheld by revenue management through nesting, O&D control and overbooking. Every search result is a copy of that decision at one moment, so build flight sales around rechecking it: revalidate before payment, respect married segments and track every hold. To see that in a working booking flow, book a PHPTRAVELS demo.



