Belly cargo capacity
How much cargo a passenger widebody can take on a long route, how well that is known a month ahead, and how much of it to sell before it is.
Cargo gets whatever weight and volume are left once passengers, bags and fuel are on board. A Boeing 787-9 flies a 9,800 km route daily for a year: see each departure's capacity, how its forecast narrows, and how much cargo to sell ahead. Companion to Air Cargo 101, chapter 10. Route, demand and costs are illustrative; aircraft limits are public.
Loading the route…
1. Where the payload goes
One departure on the day, once everything is known. The aircraft can be loaded until the first of five limits is reached: the maximum take-off weight, the maximum zero fuel weight (the aircraft without its fuel), the maximum landing weight, the fuel tanks, or the space in the lower deck. Whatever the first limit leaves is the cargo capacity.
Weight against the three weight limits
Axis starts at 100 tThe lower deck
36 LD-3 positions and the bulk holdWhat each limit leaves for cargo
The lowest one sets the capacity2. Cargo capacity, departure by departure
The same calculation for all 365 departures of the year, each with its own passengers, bags and headwind. In summer the passengers and bags are at their peak but the winds are light, so the hold's volume is what runs out. In winter the jet stream is stronger, the flight takes longer and needs more fuel, and the take-off weight cuts into the cargo.
Cargo capacity of each departure
Colour: the limit that sets it · click a day to see it in sections 1 and 3How capacity is distributed
365 departures, by the limit that sets it3. How the forecast narrows
Cargo is sold before the capacity is known. Thirty days out, about half the passengers have booked and the weather of the day is anyone's guess; two days out, nearly all the bookings are in and the wind forecast is good; the bags are only known at check-in. Each day the forecaster redraws everything still unknown, 600 times, and gets a range for the capacity.
Forecast of this departure's cargo capacity
Where the uncertainty comes from
Spread (standard deviation) from each source aloneWidth of the forecast range, all departures
Average distance between the 10th and 90th percentiles4. Payload-restricted days
A departure is payload restricted here when the maximum take-off weight, not the space in the hold, sets the cargo capacity: the fuel for the day's headwind leaves less weight than the hold could take. The cargo that doesn't fit by weight is the first thing left behind.
The year at a glance
Colour: cargo lost to the take-off weight · click a dayHeadwind against the cargo the take-off weight allows
Each dot is a departureRestricted days by month, and whether the forecast saw them coming
5. How much to sell, and when
Booked cargo turns up at about 82% of its booked weight, so the airline sells more than it expects to fly. Sell too little and space flies empty; sell too much and cargo is offloaded, at a cost. It is the overbooking trade-off of cargo revenue management, section 4, with one more uncertainty: the capacity itself. Keep accepting bookings while the chance that the last kilo accepted won't fit stays below rate ÷ (rate + offload cost), with that chance worked out over the capacity forecast of the moment and the uncertain tender.
Booking limit for this departure, day by day
Expected net revenue against kilos sold
This departure, forecast at three pointsFive ways to sell, over the year
Average per departure, 365 departuresCargo requests arrive mostly in the last week, totalling 1.6 times the average capacity. Each policy accepts them until what is booked reaches its booking limit, which the last three re-set at 30, 21, 14, 10, 7, 5, 3, 2 and 1 days out. A limit that falls can't cancel what is already sold.
How it works
Background
A passenger aircraft's hold is not a fixed amount of space. Cargo gets whatever weight and volume are left once the passengers, their bags and the fuel are on board, and on a long route flown into the wind the fuel can eat into it badly. A Boeing 787-9 flies a 9,800 km route once a day for a year. Each departure's passengers come from a booking curve, its bags from the passengers, and its fuel from the headwind of the day, all within the aircraft's maximum take-off, zero fuel and landing weights from Boeing's airport planning document. The page shows the capacity that results on every departure, how the forecast of it narrows as departure gets closer, which days are payload restricted, and then the decision: how much cargo to sell at each point, when selling too much means offloading it at a cost. That last part reuses the overbooking rule of the cargo revenue management page.
The aircraft and the route
A Boeing 787-9 in a 290-seat, two-class layout. Its limits come from Boeing's airport planning document: maximum design take-off weight 254,692 kg, maximum design landing weight 192,776 kg, maximum design zero fuel weight 181,436 kg, usable fuel 101,522 kg, and a lower deck of 20 LD-3 container positions forward and 16 aft (4.5 m³ each) plus an 11.4 m³ bulk hold. The document doesn't give an operating empty weight, which depends on the airline's cabin; the page assumes a dry operating weight (aircraft, crew, catering and water) of 132,000 kg, which is illustrative. Passengers and bags use EASA's standard masses: 84 kg per adult including hand baggage and 15 kg per checked bag on an intercontinental flight. The route, 9,800 km flown at a true airspeed of 900 km/h, is illustrative, as is everything below except where a source is named. All inputs are in bellycapacity.json.
Fuel
The flight time is t = distance ÷ (900 − headwind) + 0.4 h for taxi, climb and descent. The fuel model is the Breguet range equation in its simplest form: each hour of flight burns a fixed share k = 2.5% of the aircraft's weight, so take-off weight ÷ landing weight = ekt. The aircraft lands with a reserve R = 7,000 kg (alternate airport and final reserve) plus a 5% contingency it usually doesn't use. With a = (ekt − 1) ÷ (1 − 0.05 (ekt − 1)), the trip fuel for a zero fuel weight Z is a (Z + R), the take-off weight is (Z + R)(1 + 1.05 a) and the landing weight (Z + R)(1 + 0.05 a). Each weight limit then gives a highest zero fuel weight, and the cargo it allows is that minus the dry operating weight, the passengers and the bags. With a full cabin, its bags, no cargo and no wind, the model's aircraft could fly about 13,700 km at its maximum take-off weight, under the 15,370 km Boeing quotes for the 787-9 (Boeing doesn't say what load that figure assumes).
Volume. The first 70 bags go in the bulk hold and the rest 40 to an LD-3; every other position takes cargo, filled to 80% of its volume because freight never packs perfectly. At the route's average density of 165 kg per m³, a position holds about 594 kg. The cargo capacity is the smaller of what the weight limits allow and the volume times that density. A real load planner works in both dimensions at once (see cargo revenue management); one number in kilos keeps this page readable.
The year of departures
Passengers. The airline accepts up to 300 bookings for the 290 seats. A departure's demand is a Poisson draw whose mean varies with the season (260 bookings in late January to 300 in late July) times a gamma factor with a 12% coefficient of variation. Each request's booking time follows the curve: the share made at least h days out is 1 ÷ (1 + (h ÷ 35)1.6), so half are made by 35 days out, 56% by 30, 93% by 7 and over 99% by 1. 96% of those booked turn up, and no more than 290 board. See the booking curve page for how real ones are built.
Bags. 1.05 checked bags per passenger in winter to 1.25 in summer, with a 0.08 spread from flight to flight, known only at check-in.
Headwind. The average headwind component on the route goes from 100 km/h in late January to 15 km/h in late July. Each day adds an anomaly with a 30 km/h spread that carries over from one day to the next (correlation 0.75), so windy days come in spells.
The forecast
At h days out the forecaster knows the bookings so far, Bh, and draws everything else 600 times (400 for the year-long sections, 1,500 for the revenue curves in section 5). Passengers still to book: the demand level is updated from the bookings so far (a gamma prior and Poisson bookings give a gamma posterior with shape k + Bh and rate k + μ F(h), where F(h) is the booking curve and k = 1 ÷ 0.12²), then the remaining bookings are a Poisson draw, then the no-shows a binomial one. Bags are drawn from the season's bag rate. Wind: a forecast made h days ahead explains a share s(h) of the day's anomaly: 90% at 1 day, 80% at 2, 50% at 5, 30% at 7, 10% at 10 and nothing from 14 days on. The forecaster's headwind is the season's average plus s times the forecast anomaly, with the remaining spread √(1 − s) × 30 km/h. The forecasts are built so that they only ever sharpen as departure gets closer. These skill figures are illustrative, but the shape, useful to about a week and good at two days, is how weather forecasts behave. "Where the uncertainty comes from" redraws one source at a time with the other two held at their averages.
How much to sell
Selling L kilos earns r per kilo flown and costs c per kilo offloaded. The cargo tendered is T L, where the tender ratio T (no-shows and short tenders together) averages 0.82 with a 0.07 spread, and the capacity C is the forecast. Net revenue is r min(T L, C) − c (T L − C)+. One more kilo sold adds r × T when it fits and loses c × T when it doesn't, so the best limit L* is the point where the tender-weighted chance that it doesn't fit, P(T L > C), equals r ÷ (r + c). The page finds it exactly from the forecast draws: sort them by C ÷ T and take the tender-weighted quantile at r ÷ (r + c). It is the critical-fractile rule of booking limits (overbooking) and of the cargo overbooking in cargo revenue management, here in one dimension.
The five policies in section 5: sell to the forecast (limit = average forecast capacity, no overbooking); overbook to the average (average forecast capacity ÷ 0.82, the worked example in Air Cargo 101, chapter 08); the rule, set once 30 days out; the rule, re-set at each checkpoint (30, 21, 14, 10, 7, 5, 3, 2 and 1 days out); and, as a benchmark no airline has, the rule with the capacity known in advance, where only the tender is uncertain. Cargo requests for a departure total 1.6 times the year's average capacity times a lognormal factor with a 25% spread, and arrive late: the share that has arrived by h days out is 1 ÷ (1 + (h ÷ 5)1.6), so 5% by 30 days, 37% by 7 and half in the last 5 days. Each departure's actual tender ratio is drawn once and shared by all five policies.
Everything runs in your browser from a seeded generator (mulberry32), so the page opens on the same year every time. scripts/bellycapacity/check.js runs the same code, copied from this page, in Node: it prints the year's figures and checks the booking-limit rule against a brute-force search.
Sources
- Boeing, 787 Airplane Characteristics for Airport Planning, D6-58333 Rev P, December 2024, section 2.1.2 (787-9), page 2-3: maximum design take-off, landing and zero fuel weights, usable fuel, lower deck volume and containers, 290 seats in the dual-class layout (checked October 2026).
- Boeing, 787 Dreamliner: 787-9 range up to 15,370 km (checked October 2026).
- EASA, AMC1 CAT.POL.MAB.100(e), standard masses for passengers and baggage, Tables 1 and 3, in the Annex to ED Decision 2012/018/R (via SKYbrary), page 224: 84 kg per adult, 15 kg per checked bag on intercontinental flights.
- Amaruchkul, K., Cooper, W. L. and Gupta, D. (2007), "Single-leg air-cargo revenue management", Transportation Science 41(4), 457–469: booking control when capacity and tendered cargo are both random, with offloading costs.
- Kasilingam, R. G. (1997), "Air cargo revenue management: characteristics and complexities", European Journal of Operational Research 96(1), 36–44: why a belly's capacity is uncertain until departure.
- Charts drawn with D3 7.9.0.
Limitations
- The fuel model is deliberately simple: one burn rate, no step climbs, no temperature, no cost index and no tankering. Real flight planning also limits the take-off weight by the runway, the airport's temperature and altitude, and obstacles, which can bite well below the structural maximum used here.
- The dry operating weight is assumed, not sourced, and real ones differ by a tonne or more between airlines and even between aircraft. The whole capacity curve moves with it, kilo for kilo.
- Capacity is one number in kilos at an average density. In reality the hold runs out by weight or volume depending on the cargo booked, positions are lost to the centre of gravity and to dangerous goods segregation, and mail, company material and late bags take space too.
- Passengers always come first here. Airlines can also stop selling a few seats on a payload-restricted flight to keep high-value cargo, a joint decision this page doesn't make (see Air Cargo 101, chapter 10).
- The forecast knows the model's true structure, so it is as good as it can be. A real one is estimated from history and is worse, especially far out.
- Cargo requests are one stream at one rate. Allotments, shipment sizes, two dimensions and bid prices are on the cargo revenue management and allotments vs spot pages; the limit set here would be the capacity those pages sell against.
This is a personal project and isn't affiliated with any airline.