Airplane boarding · agent simulation · 2026

Sixteen decals on the floor, and the queue sorts itself

Optimal boarding was worked out in 2008 and no airline uses it. Two reasons get given: you can't line 186 strangers up in an exact order, and families won't be split apart. Neither survives a simulation. Order bookings instead of people, paint the numbers on the ground, and both go away.

GATE FLOOR · PLAN VIEW · A320neo, 31 ROWS Sixteen decals, one booking each Nobody is told where to stand relative to anyone else. They are told a number, and the number is painted on the ground. NOW BOARDING GROUP 10 of 12 Stand on the mark for your row. the whole announcement · group 10 = aisle-most bookings, left side, odd rows ◂ QUEUE WALKS THIS WAY · DEEPEST ROW NEAREST THE DOOR SCANNER JET BRIDGE to the aircraft ◂ 31–30 29–28 27–26 25–24 23–22 21–20 19–18 17–16 15–14 13–12 11–10 9–8 7–6 5–4 3–2 1 ≈ 900 mm pitch · 16 marks · ≈ 14 m of lane. Vinyl, paint or tape: the whole system is sixteen stickers on the ground. THE TWO OUTLINED MARKS, CLOSE UP 27–26 SOLO BOOKING Boarding pass says 27C Row 27, so they stand on the mark reading 27–26. 25–24 ONE BOOKING, THREE PEOPLE Pass says 25A, 25B and 25C Row 25, so all three stand together on the mark reading 25–24. Both of these are group 10 bookings, which is why both include a seat in column C: group 10 is the aisle-most bookings on the left side of odd rows. Call a different group and a different set of seats fills the same sixteen marks.
The gate lane mid-call, deepest row nearest the door. The number on a mark is the pair of rows it serves, and it never changes; who stands on it changes with every group called. Purple is one person, orange is a booking of two or three standing together.

The mechanism

All of it comes off the seat number that is already on the pass.

01 · ON THE PASS

One group number per booking

Three things multiply out to twelve groups: your class, your side of the aisle, and whether your row number is odd or even.

Class is the most aisle-ward seat you booked. A solo in 27A is window-most. A family in 27A+B+C is aisle-most and boards as one.

02 · ON THE FLOOR

A ruler of row marks

One lane, marked in descending row bands toward the door: 31–30, 29–28 … 3–2, 1. Sixteen decals.

Your group gets called, you stand on your row's mark. Your party stands on it with you. That is the whole instruction.

03 · WHY IT CAN'T JAM

One booking per mark

Side and parity are in the formula for exactly this. One class on one side is at most one booking per row, and each mark covers two rows, one odd and one even. So one mark, one booking.

Nobody negotiates position with anybody. The lane comes out in exact back-to-front, every-other-row order.

04 · WHY FAMILIES HELP

A party is a pre-solved row

Window-middle-aisle ordering is only there to stop people climbing over seated strangers. Inside a booking nobody is a stranger.

So a party takes the aisle once instead of three times and generates no seat-shuffle at all. Boarding time stays flat as the party rate goes up.

Worked example · four bookings on the same aircraft
BookingMost aisle-ward seatClassSideRowGroup
27AA, a window seatwindow-mostleftodd2
27A+B+CC, an aisle seataisle-mostleftodd10
14D+ED, an aisle seataisle-mostrighteven11
8EE, a middle seatmiddle-mostrighteven7

Class sets the block: window-most is groups 1 to 4, middle-most 5 to 8, aisle-most 9 to 12. Inside a block the four slots run left-even, left-odd, right-even, right-odd. The two row-27 bookings are on the same side of the same row and still get different numbers, because a booking is classified by its most aisle-ward seat: the family has someone in C, the solo passenger in 27A does not.

Group 2 called · window-most bookings, left side, odd rows (12-row demo aircraft)
The lane walks into the jet bridge from this end. Highest row nearest the door, so the deepest passenger goes first.

Watch it run

Same physics for every method. One booking at a time per aisle slot, stowing a bag blocks the aisle, climbing over a seated stranger blocks it for longer. Parties walk on together in every method, because they will anyway. The only thing that changes is the order of the queue.

Gate lane · one block of colour per group · next to board →
Cabin
◂ DOOR / NOSETAIL ▸
waiting walking stowing a bag (aisle blocked) climbing past a neighbour seated
People stowing simultaneously, which is the whole game
this method ╌╌ random order, same passengers & bags Both curves share one time axis. Where the orange stops is when the plane is full.

Controls

Reality dials

The bottom two are the "people won't actually do this" test.

Boarding time
Seated
Avg concurrent stowers
Climb-overs (strangers)
vs. random boarding, same seed

All six methods, 60 trials each

Run at whatever aircraft size and dials you have set above. Mean boarding time, lower is better.

Two things I got wrong

The group number does nothing on its own

My first answer was that the group is enough. Everyone in a group sits at least two rows apart, so they can all stow at once, so who cares what order they walk in.

The aisle is single-file. If the group-3 booking for row 2 walks in first and stops to stow, everything in that group headed for rows 4 to 30 is stuck behind it. Two rows of separation stops people colliding. It does not get them to their rows.

Compare 12 groups, no row marks against 12 groups + row marks at 31 rows. Same twelve groups, same twelve calls, same passengers. The only change is that people stand on a painted number instead of milling into the lane, and it is worth about half the boarding time.

Families were supposed to break this

Window-middle-aisle scatters a family of three across groups 1, 5 and 9, and no family accepts that. Correct. You never have to ask.

Window-middle-aisle is only there to stop people climbing over strangers who are already sitting down. Inside a booking that does not apply: they arrive together and sit in whatever order suits them. So the constraint is per booking, not per passenger, and the rule that falls out of it is one line. Your booking's class is its most aisle-ward seat.

Drag travel parties on board from 0% to 75% and watch the boarding time. It does not move. Past about half it gets marginally quicker, because 186 solo passengers is 186 separate stops at the aisle and a party-heavy cabin is about 122, and a family's bags go up while one of them is already sliding into the window seat.

The climb-overs readout is the mechanical reason. Random boarding on a full A320 produces 30 to 70 events where somebody has to stand up and let a stranger past, depending on how many people are travelling together. This produces zero, at every party rate, by construction. Set help from your own party to none, which is a family whose bags go up strictly one at a time with nobody helping, and it still lands at roughly half the random time.

Splitting families up is in the dropdown, and it buys nothing. At 31 rows with three in ten passengers travelling together it lands within a few seconds of keeping them together, which is inside the noise. Push the party rate to 75% and it is about fifteen seconds slower. So the concession that was supposed to be the expensive one is free, and past a point it pays.

What is in the model

ModelledNot modelled
Single-file aisle, one booking per row slot. Bag stow 5–19s, blocking. Seat shuffle 6s per seated stranger climbed over. A travel party is one unit: one aisle stop, bags at a discount, no internal shuffle. Non-compliance drops bookings back in at random. Sloppy placement swaps neighbours in the lane. Overhead bin scarcity and backtracking. Wheelchair and pre-boarding. Two-door boarding. Gate-checked bags. Late arrivals. Cabin crew intervention. Aisle width letting people squeeze past. Premium cabin loaded first. Small children who need buckling in. Parties seated across the aisle or across rows rather than side by side.

What happens when people don't play along. The two bottom dials are the test. Ignore their group drops that fraction of bookings back into the queue at a random point, which is the person who wanders up whenever they feel like it. At 31 rows the scheme runs 6:32 with everybody complying, 9:50 with a fifth ignoring their group, and 11:57 with two fifths ignoring it. Random boarding is 15:01, so it stays ahead throughout — but at two fifths it has given up most of its lead, and buys about what twelve groups with no floor marks buys with full compliance. The scheme is not fragile, but it does need people to actually wait for their number.

Calibration warning. Against the one real-world experiment I know of, Steffen & Hotchkiss's 72-volunteer mock 757, this model exaggerates in both directions. They measured Steffen's method at 0.76× random and I get 0.43×. They measured back-to-front at 1.31× random and I get 1.69×. Good orders come out better than they really are and bad orders come out worse. Treat the ranking as solid and every margin on this page as an upper bound.

The thing I would worry about in the field is not modelled at all. Window passengers board first and fill the bins above rows they only walk past, so late aisle passengers walk back looking for space. That eats into any window-first scheme.