1. Quick start
Airplane Boarding answers one question: if you change the order in which passengers walk onto a plane, how much faster does the plane fill up?
- Pick an aircraft. The default is an easyJet Airbus A320: 31 rows, 3 seats each side of one aisle, 186 seats, all economy.
- Pick a strategy. On desktop the page opens with Steffen and one random rival side by side. On a phone it opens with one readable Steffen cabin. Click any strategy to add or remove it.
- Press Start. Watch the coloured dots walk in, stop to stow luggage, and sit down. When the last passenger is seated, you get a result card with the boarding time and an efficiency score.
Everything is repeatable. The same seed and settings generate the same passengers, bags, seats and walking speeds, so a race isolates the effect of queue order. Open Seating is the exception: changing the seat assignment is part of that policy.
Three labels are used throughout to keep the different kinds of statement apart. Research finding: is supported by published work. Model assumption: is a rule deliberately encoded in this engine. Simulator result: is an output of this implementation at the stated settings and seeds.
2. What makes boarding slow?
Aircraft boarding is a set of narrow, capacity-constrained aisle queues in which overtaking is essentially impossible. On a single-aisle aircraft almost everyone shares one corridor; on a twin-aisle aircraft the same principle applies separately to each aisle.
Walking the cabin is comparatively cheap and changes little between queue orders. Most of the difference comes from passengers being forced to stop. On a typical single-aisle aircraft an unobstructed walk to the rear takes tens of seconds, whereas repeated blocking accumulates across many passengers, which is why reordering the same people can change the result substantially without anybody walking faster. It is also why opening a second door helps: it shortens the walk a little, but far more importantly it reduces the number of people queueing behind any one passenger who has stopped to stow a bag.
The two kinds of interference
The model contains several time components: walking, stowing, seating, bin searching, gate-checking and waiting for your group to be called. On top of those it focuses on two main forms of passenger-to-passenger interference, and between them they explain almost every result.
Aisle interference
One person stops at their row to lift a bag into the bin. The aisle is one person wide, so everybody behind them stops as well.
Cost in this model: usually 6 to 12 seconds for one typical bag. The stowing passenger spends that time productively; everybody blocked behind them spends it as waiting time, which is why one bag can cost the queue several minutes in total.
Seat interference: the squeeze-by
Seat interference is the category; a squeeze-by is the individual event, and squeeze-by is the term used throughout the app. Somebody with a window seat arrives after the person on the aisle has already sat down, so the seated passenger has to unbuckle, stand, step out, wait, and sit back down.
Cost in this model: 5 + 3k + r seconds, where k is the number of seated passengers who must stand and r is a random 0 to 3 seconds of variation. Sitting down cleanly takes 2 to 4 seconds, so a squeeze-by past one seated passenger costs roughly 5 to 10 seconds more than a clean arrival.
A boarding strategy is nothing more than a rule for choosing the order of the queue. A good rule spreads people out along the cabin so several can load bags at the same time, and puts window passengers in before aisle passengers so fewer passengers have to climb past someone already seated. That is the core intuition, and this simulator lets you watch it play out.
Mixed walking speeds do not add a third kind of delay. They make aisle interference more likely, because a slow walker ahead of you blocks the aisle exactly like a stowed bag does.
3. Reading the cabin
The aircraft is drawn from above. By default the cabin lies horizontally with the nose on the left, which suits a wide screen; the orientation button in the toolbar flips it to a vertical cabin with the nose at the top. Passengers enter at whichever doors you opened and walk towards their own seat, which means down the cabin from the forward door, up it from an aft door, and in both directions at once from a mid-cabin door. Every passenger door on the aircraft is drawn: the ones in use are highlighted and labelled with their station (L1, L2 and so on, numbered from the nose on the left side), and closed doors are drawn dimmed with a slash. The queue still waiting outside each door is drawn beside it.
Passenger colours
Each dot is one person. Its colour tells you which seat they are heading for, so you can see an outside-in strategy working at a glance:
- Blue: heading for a window seat (also marked with a small ring)
- Amber: heading for a middle seat (marked with a dash)
- Purple: heading for an aisle seat (marked with a bar)
- Green: seated, done
- Red, pulsing: blocked, standing still in the aisle
- Grey: still outside at the gate, waiting to be called
- White ring: priority or assistance passenger
- Pink ring: travelling as part of a family or group
The shapes matter as much as the colours: every dot carries a small symbol for its seat type, so the display still works if you cannot easily distinguish blue from purple.
Other things on screen
- A yellow ring growing around a dot means that person is stowing a bag right now. The ring fills up as they finish.
- A seat tinted orange means a seated passenger has been forced to stand up so somebody could get past them.
- A seat with a diagonal line through it is deliberately not sold (the blocked middle seat in a European-style business class) or is galley space.
- The grey dots stacked outside the door are the queue at the gate that has not been called yet.
- Tinted bands with a vertical label mark the first, business and premium economy cabins.
- Turn on the congestion heatmap to see red shading build up in the parts of the aisle where people spent the most time stuck. It is the clearest way to see where a strategy jams.
Hover over any passenger, at any time, to see their seat, boarding group, number of bags, current activity and how many seconds they have personally lost so far.
4. Strategy cheat sheet
Every strategy does the same job: take the list of passengers and put it in an order. Start with the table, then read the cards that interest you. The sorting rules themselves are in section A.
| Strategy | Queue rule | Seat interference | Aisle parallelism | Gate complexity |
|---|---|---|---|---|
| Random | Shuffle everyone | High | Good | Very low |
| Front-to-Back | Front zones first | High | Poor | Low |
| Back-to-Front | Rear zones first | High | Poor | Low |
| Rotating Block | Alternate rear and front blocks | High | Moderate | Low |
| WILMA | Window, then middle, then aisle | Very low | Moderate | Moderate |
| Reverse Pyramid | Diagonal blend of row and seat | Very low | Good | Moderate |
| Steffen | Outside-in plus alternating rows | Very low | Very high | Very high |
| Cincin | Door-relative Steffen pattern | Very low | Very high | Very high |
| Open Seating | No assigned seats, choose at the door | Low | Moderate | Very low |
| Airline Groups | Commercial and geographic groups | Medium | Moderate | Moderate, closest to normal gate practice |
| Custom | Your own row rule and seat rule | Depends | Depends | Depends |
The three qualitative columns are ratings of the mechanism, not measurements. The measured columns are in the app: race the strategies and read squeeze-bys, aisle interference and max queue.
Random baseline
Everybody in one shuffled line, no groups at all. This is the reference baseline that every other method should be measured against, and it is better than people expect: a random line naturally spreads passengers along the whole cabin, so bags get loaded in several places at once.
Typical result in this model: mid-table time, many squeeze-bys (nothing prevents them), low maximum queue.
Front-to-Back
Call the front rows first and work backwards. Almost nobody does this, and the simulation shows why: everybody who boards later has to walk past the busiest part of the cabin, so the jam sits right at the door.
Typical result in this model: among the slowest methods, with the highest aisle interference and the largest queues.
Back-to-Front the familiar one
Rear zones first. Rear-zone-first boarding is one of the most familiar conventional approaches, and it is intuitive: fill the far end first so fewer people walk past seated passengers. The catch is that everyone called in the same zone wants the same few metres of overhead bin at the same time, so a fresh queue forms at every zone boundary.
Typical result in this model: slower than a random queue in most configurations. Research finding: That block boarding is not clearly better than random is one of the results published boarding studies also report.
Rotating Block
Divide the cabin into blocks and call them alternately from the back and the front: rearmost, then frontmost, then second rearmost, and so on. Two separate parts of the cabin load at the same time, so bin usage is spread out.
Typical result in this model: a modest improvement on Back-to-Front. Seat interference is unchanged, because nothing about seat order was fixed.
WILMA, or outside-in window, middle, aisle
Forget rows entirely and sort by seat type: every window passenger boards, then every middle, then every aisle. In an unperturbed assigned-seat queue this eliminates almost all seat interference, because the people further in are already there. Families, pre-boarders and passengers boarding out of turn each put some of it back.
Typical result in this model: squeeze-bys drop to near zero and the total time falls sharply. Aisle interference remains, because two window passengers can still be assigned neighbouring rows.
Reverse Pyramid
A diagonal blend of the two good ideas: board rear window seats first, front aisle seats last, and everything else along the diagonal in between. It is a practical compromise, since it can be organised with about five gate groups.
Typical result in this model: close to WILMA on seat interference with a better row spread, so usually a little faster.
Steffen Method optimised single-door benchmark
The ordering from Jason H. Steffen's 2008 optimisation study. It combines outside-in with strict two-row spacing, so a whole wave of passengers can stow luggage side by side instead of behind one another.
On a 3-3 cabin with 30 rows the queue begins: 30A, 28A, 26A, ... 2A, then 30F, 28F, ... 2F, then the odd rows on each side, and only then does the same four-wave pattern repeat for middle seats and finally aisle seats.
Research finding: Steffen's ordering was derived by optimisation and later tested on a 12-row, 72-seat single-aisle mock-up boarded through one forward door. That work concerns exactly that case; it makes no claim about twin-aisle cabins or multiple doors.
Typical result in this model: the fastest of the implemented strategies through a single forward door, with near zero seat interference and far more passengers stowing bags at once than any zone method. On a full A320 at the documented seeds it takes 8:46 against Back-to-Front's 21:36. It is also operationally demanding: it requires a much more precise passenger sequence than normal group boarding.
Cincin Method experimental multi-door extension
An experimental extension of the Steffen pattern for multiple boarding doors. Instead of measuring row order from the nose, it measures each passenger's depth from the door they will actually use. That lets each boarding stream fill from its own far end back toward its entrance while keeping the alternating-row spacing.
With one forward door this implementation produces the same ordering as Steffen, passenger for passenger. With multiple doors it can differ substantially, because a nose-relative pattern fills the rows next to a second door first and then blocks that doorway with seated passengers.
Simulator result: Identical to Steffen on a single forward door. On the other tested door plans it is usually faster in this model. These are simulator outputs, not experimentally validated boarding results.
See section B for the full sorting rule, the verification and the benchmark tables.
Open Seating
No assigned seats. Each passenger walks in and takes the best seat still free, which means they decide while standing in the aisle. This is a stylised historical open-seating policy, not a current airline seat-selection model.
Typical result in this model: frequently among the slowest, because early boarders take the seats nearest the door and later boarders have to walk through them. Seat interference is low (people avoid climbing over strangers) but the aisle stays busy.
Airline Groups
The realistic compromise, and the closest thing here to how a real gate actually operates. Service obligations come first, commercial groups next, then geography.
Typical result in this model: a mid-table time. This is the most operationally realistic benchmark to beat, because unlike Steffen it accounts for the things airlines cannot skip.
Custom Strategy build your own
Combine a row rule and a seat rule yourself and see what happens. The panel writes your recipe out as a sentence so you always know what you built.
Try: alternating rows plus window first, in 6 groups. That is a hand-built approximation of Steffen and it gets surprisingly close.
5. Understanding your results
These appear on the ops board while a run is going, in the result card at the end, and in the comparison table. You can also hover over any metric label inside the simulator to get a short version of these definitions.
| Metric | What it means | How to read it |
|---|---|---|
| Elapsed | Simulated time since the first passenger stepped aboard, in minutes and seconds. At 1× speed one simulated second takes one real second. | The headline performance measure: total simulated boarding time. |
| Seated / Remaining | How many passengers have finished sitting down, and how many are still in the aisle or at the gate. | Watch the rate at which seated climbs. Good strategies keep it steady; bad ones stall. |
| Rate per minute | seated / (elapsed / 60). Average passengers seated per minute so far. |
Use it to compare runs under the same assumptions. A higher rate means more passengers are being seated in parallel. |
| Aisle interference | The number of separate times any passenger was forced to stop because the person in front of them was not moving. One passenger stopping three times in a run counts three times. | A measure of how choppy the queue is. Compare between strategies, not against an absolute target. |
| Squeeze-bys (seat interference) |
The number of passengers who had to climb past at least one already seated person to reach their seat. | Largely a function of seat ordering. Outside-in strategies drive this close to zero; Front-to-Back and Random do not. |
| Gate-checked bags | Bags that found no bin space within a few rows and were handed to the crew. Only occurs with overhead-bin capacity switched on. | Watch it climb near the end of a heavy-luggage boarding: the late boarders pay for the early boarders' bags. |
| Time lost waiting | Blocked time only, and person-time rather than clock time, reported in person-min. A second counts when a passenger is aboard and cannot advance because somebody else is in the way. It excludes their own stowing and seating time, the time they spend waiting at the gate for their group, and the time a seated passenger loses standing up for a squeeze-by. | This can be much larger than the boarding time itself, and that is correct. 30 person-min on a 6 minute boarding means about 90 people lost roughly 20 seconds each. |
| Wait per passenger | time lost waiting / passengers. The average time one traveller spends stuck. |
The most human number in the table. It answers "how annoying was this boarding for me?" |
| Queue now | How many passengers are blocked at this exact moment. | Live congestion. Spikes show you the moment a jam forms. |
| Max queue | The largest number of simultaneously blocked passengers during the whole run. | The worst traffic jam of the run. Zone strategies typically peak high at zone boundaries. |
| Stowing now | How many people are loading a bag at this instant. | The number an optimised method tries to maximise. Alternating-row methods keep substantially more passengers stowing at once than concentrated zone boarding does. |
| Estimated finish | The mean of two projections: elapsed × passengers / seated, and the rate over the last dozen samples extrapolated forward. |
Rough while boarding is young, accurate near the end. The trailing-rate half is what stops it over-promising once a jam forms. |
| Efficiency score | 0 to 100. Where your time lands between two anchors simulated with your exact seed and settings: the faster of the Steffen and Cincin orderings (100) and one seeded random queue (50). | Above 50 beats that random queue; below 50 loses to it. Compare scores within one configuration, never across aircraft. |
The efficiency score in one paragraph
Before scoring a run, the simulator boards the same passengers in the Steffen order, the Cincin order and one seeded random permutation. 100 means you matched or beat the faster of the two optimised anchors, 50 means you matched that random queue, and below 50 the scale compresses so that even very slow strategies still rank against each other. A run that gridlocks scores 0. It is a relative index for one configuration, not a measured efficiency percentage: a 75 on a 777 does not represent the same physical performance as a 75 on a turboprop. Section C has the formula and the edge cases.
6. Settings
Aircraft and occupancy
Choose from thirteen representative presets, ranging from a 72-seat ATR 72 turboprop up to the 489-seat Emirates A380, or build a custom cabin. Airline-specific presets match the cited published cabin totals, but the row lattice simplifies irregular suites, monuments and numbering gaps.
All thirteen presets
| Aircraft | Seats | Cabin |
|---|---|---|
| ATR 72-600 | 72 | All economy 2-2 |
| Embraer E175 (United Express) | 76 | 12 First, 16 Economy Plus, 48 Economy, all 2-2 |
| Boeing 737-800 (Ryanair) | 189 | All economy 3-3, row 1 has three seats only |
| Airbus A320 (easyJet) | 186 | All economy 3-3 |
| Airbus A320 (Lufthansa) | 158 sellable seats | European-style business class with the middle seat blocked |
| Airbus A220-300 (Delta) | 130 | 12 First, 43 Comfort+, 75 Main |
| Airbus A321neo (American) | 196 | 20 First, 35 Main Cabin Extra, 141 Main |
| Boeing 787-9 (United) | 257 | 48 Polaris 1-2-1, 21 Premium Plus 2-3-2, 3-3-3 economy |
| Airbus A350-900 (Delta) | 306 | 32 Delta One, 48 Premium Select, 226 economy |
| Boeing 777-300ER (United) | 350 | 60 Polaris, 24 Premium Plus, 266 economy in 3-4-3 |
| Boeing 777-300ER (Emirates) | 356 | 8 First suites, 42 Business, 306 economy |
| Airbus A380-800 (Emirates) | 489 | 14 First, 76 Business, 399 economy |
| Boeing 777-300ER (SWISS) | 320 | 8 First, 62 Business, 24 Premium Economy, 226 Economy |
Two details worth knowing. The Emirates A380 is modelled as one long deck: the real aircraft puts First and Business upstairs and boards both decks at once, so the figure here is the pessimistic single-door case. And the Ryanair 737 includes seat 11A, the internet-famous window seat with no window, marked with a blanked-out porthole. Seat someone in it to unlock an achievement.
Row counts are modelled to match the published seat total. Real seat counts are rarely a clean multiple of the seats per row because galleys and lavatories take out part of a row, so a few seats at the front or back are marked as galley space and drawn with a line through them. Layouts are representative of a typical configuration for that airline and aircraft, not a guarantee for any particular flight.
Occupancy is a percentage of sellable seats: at 94% on the easyJet A320 you get 175 passengers with a handful of empty seats scattered around. More passengers is not simply slower in proportion, because congestion grows faster than passenger count, which is why a full flight feels so much worse than a three-quarters full one.
Boarding doors
Opening an additional boarding door can be one of the largest improvements in the simulator. The menu changes with the aircraft, because a narrow-body has a door at each end while a wide-body has four or five down the port side:
| Plan | Where | Who gets it |
|---|---|---|
| Forward door only (L1) | One bridge at the nose | The norm. Everybody walks the length of the cabin. |
| Aft door only | Stairs at the tail | Regional airports and remote stands. |
| Forward + aft | Both ends at once | The low-cost turnaround: bridge at the nose, stairs at the tail. |
| Two bridges, L1 + L2 | Nose and roughly a third of the way back | Wide-bodies only. A common arrangement when two boarding bridges are available. |
| Three doors | Adds a door near the tail | Wide-bodies with a triple bridge, or two bridges plus an apron bus. |
Long-haul aircraft rarely use a tail door. They use two doors on the same side, and passengers entering at the second one turn forward or aft depending on their row. That is what the two- and three-door plans model.
Model assumption: Each row is assigned to its nearest open door, producing contiguous, non-overlapping row bands. As an explicit exception, premium rows are routed through the forward door when that door is open.
Simulator result: On the 257-seat United 787-9 preset with 231 passengers, boarding times differ by several minutes between door plans, and Steffen and Cincin diverge sharply on the plans whose doors are far apart.
Example results: door plans on the 787-9, seeds 20260801 to 20260806
| Plan | Back-to-Front | Steffen | Cincin |
|---|---|---|---|
| Forward only | 13:44 | 7:51 | 7:51 |
| Two bridges, L1 + L2 | 10:42 | 6:40 | 6:39 |
| Forward + aft | 9:42 | 7:36 | 4:45 |
| Three doors | 9:21 | 5:19 | 4:53 |
A second bridge at L2 helps less than a door at the tail because it splits the walk unevenly, while a tail door divides the cabin near the middle. The third door mainly helps the door-blind methods, because Cincin already uses the well-separated front and aft streams efficiently.
A counterintuitive but genuine result in this model: on the Emirates A380 the two-door plan beats the three-door plan for the optimised orderings. The premium cabin pins 23 rows to L1, which leaves the mid door serving only about five rows while the third door carries the rest, so the extra bridge splits the flow worse, not better. More doors only help when the rows divide sensibly between them.
Luggage
| Setting | Typical stow time | Personal item only | Notes |
|---|---|---|---|
| No cabin luggage | 2 to 3 seconds | 100% | Everyone stops only long enough to push a personal item under the seat. Shows the theoretical floor. |
| Light | 2 to 8 seconds | 35% | The remaining passengers carry one small bag. |
| Typical | 2 to 16 seconds | 20% | Most passengers have one bag; one in five has two. |
| Heavy | 3 to 24 seconds | 8% | Holiday or low-cost flight where many passengers avoid checked-bag fees. |
The personal item column matters less than it looks. Those passengers still stop at their row for two or three seconds to push the item under the seat in front, but they do not use the overhead bins, so they block only their own aisle cell rather than two.
Model overhead-bin capacity adds a second layer: each row's bin holds about 0.9 bags per seat. When a bin is full the passenger searches up to three rows away, adding 3 seconds per row of distance, or, if there is nowhere left within reach, the bag is gate-checked by the crew, which costs about 12 seconds and shows up in the gate-checked count. This is what makes the late boarders in a heavy-luggage run so slow.
Cabin classes and premium boarding
You can set how many rows belong to first, business and premium economy. They count from the nose; the display uses simplified layouts and relative row pitch rather than a certified seat map:
| Section | Twin aisle | Single aisle | Row pitch |
|---|---|---|---|
| First | 1-2-1 suites | 2-2 | 1.8× economy |
| Business | 1-2-1 suites | 3-3 with the middle seat blocked | 1.5× economy |
| Premium economy | 2-4-2 | same as economy | 1.2× economy |
| Economy | as the preset | as the preset | 1.0× |
The blocked middle seat in single-aisle business (a common European short-haul convention) is drawn with a line through it and is excluded from the sellable seat count, so the occupancy percentage stays honest.
The premium cabins setting decides when they board:
- Board first: the default, matching commercial reality (first, then business, then premium economy, then whatever your strategy says for economy).
- No special treatment: they keep whatever position the strategy gives them.
- Board last (lounge): they stay put until the final call and then walk onto a half-full aircraft.
Simulator result: Boarding premium cabins first is the slowest of the three here. On the United 787-9 preset with Back-to-Front, averaged over seeds 20260801 through 20260808, premium first takes 13:49, premium last 13:07, and no special treatment 12:13. The model gives every cabin the same luggage and seating-time distributions, so the penalty comes purely from stopping the front rows before economy passengers walk past. This is not a claim about any airline's service policy.
Boarding out of turn
Published boarding methods are generally evaluated under an assumed queue order or level of compliance. Real gates rarely achieve perfect compliance: people are away from the gate, on the phone, at the far end of the pier, or simply push in when they see a gap. The board out of turn setting is the share of travel parties who arrive one or two groups away from the group they were called in, sampled per party so a family drifts together.
Simulator result: This is a practical stress test of an optimised sequence. On a full A320, out-of-turn boarding costs the precise orderings roughly a third of their time, while the zone methods are unharmed or slightly helped.
Example results: boarding out of turn, seeds 20260801 to 20260808
| Strategy | Everyone obeys | 20% out of turn | 40% out of turn | Change |
|---|---|---|---|---|
| Steffen | 8:46 | 10:22 | 11:44 | +34% |
| Cincin | 8:46 | 10:22 | 11:44 | +34% |
| WILMA | 13:16 | 13:39 | 13:40 | +3% |
| Reverse Pyramid | 13:39 | 13:42 | 13:32 | -1% |
| Back-to-Front | 21:36 | 19:56 | 18:17 | -15% |
| Random | 15:36 | 15:36 | 15:36 | 0% |
The precise methods lose some advantage because drifting passengers land inside their two-row gaps. Back-to-Front gets faster in this model because the perturbation breaks up its concentrated zones. Random is unchanged because it has only one group. Steffen and Cincin are identical because this is a single forward door, where the two produce the same queue; on a multi-door flight they separate. Even at 40% out of turn Steffen finishes well ahead of back-to-front in these runs.
Advanced conditions
- Mixed walking speeds: passengers walk at 0.55 to 1.15 rows per second instead of a uniform 0.85. Realistic, and it makes queues form behind slower people.
- Families and travel parties: the percentage of neighbouring seats that belong to one group. Parties board together, which deliberately breaks a perfectly optimised order. Turn this up to see how much of Steffen's advantage survives contact with reality.
- Priority and assistance: in the model these passengers pre-board and walk at 0.6 rows per second, versus 0.85 fixed or 0.55 to 1.15 with mixed speeds. Their travel party boards with them.
- Late passengers: a percentage who arrive after their group was called and board at the very end, behind everybody. A late family is late together.
- Board out of turn: the share of travel parties who do not board with the group they were called in, drifting one or two groups either side. This is the setting that decides whether a clever order is worth anything, so it has a section of its own above.
- Release groups every N seconds: stages the gate calls the way a real gate does, instead of letting the whole queue flow continuously. Watch how a long interval flattens the difference between strategies with many groups and strategies with few.
- Keep travel parties together: on by default. Turning it off lets an optimised order split families apart, which is faster and completely unrealistic.
7. Racing and comparing
Side by side
Click two or more strategies and the view splits into one cabin per strategy. They all run on the same clock with exactly the same passengers, the same bags and the same seat assignments, so it is a genuinely fair race. (Open Seating is the exception noted in section 1: it reassigns seats at the door by design, so a race including it compares a policy against an ordering, not two orderings.) Each cabin gets a medal as it finishes, the winner's panel glows, and a live standings board tracks who is ahead.
Race all strategies
Runs all eleven instantly, with no animation, and produces the podium, the bar chart and the full metrics table. All eleven means every strategy in the picker, Custom Strategy included, using whatever recipe you currently have set. This is the fastest way to answer "what wins under these conditions?"
Speed control
The default is 60×, so a whole boarding plays out in a few seconds. Drop to 10× to follow the shape of a run over a minute and a half, or all the way to 1× for true real time: one simulated second per real second, so a 15 minute boarding really does take 15 minutes to watch. Speed changes never affect the result, only how fast you watch it.
Keeping your results
- Copy summary puts a short text report on your clipboard.
- Download CSV gives you every run of this session with all metrics, for your own charts.
- Share settings copies a link with the whole configuration encoded in it, including the seed, so somebody else opens exactly your scenario.
Challenge scenarios
Six preset situations, from a business route with light bags to a holiday flight full of families. Load one, guess which strategy will win, then race them all and find out whether you were right. The scenarios exist to make the point that no single method wins everywhere.
8. Frequently asked questions
Why is the waiting total bigger than the boarding time?
Because it counts person-time. If 90 people each lose 20 seconds, that is 30 minutes of waiting inside a 6 minute boarding. Look at wait per passenger for the human-scale number.
Why does Back-to-Front lose to Random so often?
Because calling a zone concentrates demand for a short stretch of overhead bin. Everybody in zone 1 wants rows 24 to 30 at the same moment, so they queue behind each other. A random line scatters people along all 30 rows, so more of them can stow simultaneously. This is one of the simulator's most counterintuitive results, and the one most consistent with published boarding research.
If Steffen is so much faster, why does no airline use it?
Because it requires boarding in a strict individual sequence, not in groups. You would have to line up every passenger in an exact order at the gate. Families cannot be kept together, anybody who arrives late breaks the pattern, and the gate staff workload is enormous. Turn families up to 50% in the advanced settings and watch how much of the advantage disappears.
Are the results the same every time?
Yes, for a given seed and configuration. Press New seed for a different set of passengers with the same settings, which is the right way to check whether a result is robust or a fluke.
Why did the ranking change when I changed the aircraft?
Because it should. Dual-door boarding, twin aisles, heavy bags and large families all shift the balance between the two kinds of interference. Nothing here is hard-coded to make a particular method win.
What is a realistic boarding time?
There is no universal value: aircraft, gate process, carry-on load, passenger mix and the definition of start and finish all matter. Treat the displayed time as a model output and compare runs made with the same settings.
Technical details
Everything from here on is reference material: the exact sorting rules, the scoring formula, the engine's mechanics, and what the model does not do. You do not need any of it to use the simulator.
A. Strategy formulas
Each strategy is a sorting rule over the passenger list. The notation:
n passengers
R rows
r(p) the row of passenger p, 1 at the nose
c(p) the number of seats between passenger p and their aisle: window = 2, middle = 1, aisle = 0 on a 3-3 cabin
cmax the largest c(p) on this aircraft, so 2 on a 3-3 cabin and 1 on a 2-2 cabin
Z the number of zones you selected
Random
A uniformly random permutation of all passengers. Every one of the n! possible queues is equally likely.
Front-to-Back
Zone of a row: z(p) = 1 + floor((r(p) − 1) × Z / R). Sort ascending by z, random inside each zone.
Back-to-Front
Same zone formula, mirrored: z'(p) = Z - z(p) + 1. Sort ascending by z', random inside each zone.
Rotating Block
With Z blocks the call order is Z, 1, Z-1, 2, Z-2, 3, ... and passengers are shuffled inside each block.
WILMA, or outside-in
Sort descending by c(p). Optionally sort by r(p) descending inside each group, otherwise random inside the group.
Reverse Pyramid
Score each passenger S(p) = 0.6 × c(p)/cmax + 0.4 × r(p)/R, sort descending, then cut into 5 equal groups and shuffle inside each.
Steffen Method
Sort by the key (c(p) descending, (R - r(p)) mod 2 ascending, side ascending, r(p) descending), compared left to right. The parity term leaves one intervening row between consecutive boarders.
Cincin Method
Sort by the key (c(p) descending, w(p) ascending, side(p) ascending, x(p) descending). Full derivation of w and x in section B.
Open Seating
On arrival at the door, passenger p chooses the free seat s maximising a preference score: window 3.0, aisle 2.4, middle 0.5, minus 0.06 per row of distance from the door, minus 0.1 per seat of depth, plus 6.0 if the seat places them beside a member of their own party, minus 1.5 if that row's bin is already full.
Airline Groups
Fixed group order: assistance passengers, first, business, premium economy, families, then rear, middle and front sections of the economy cabin. Random inside each group.
Custom Strategy
Score S(p) = 0.5 × rowValue(p) + 0.5 × seatValue(p), sorted descending, then split into the number of groups you asked for.
Row value: back-to-front uses r/R, front-to-back uses (R - r)/R, alternating adds a strong parity term so odd and even rows separate into waves, random assigns a fixed random key per passenger.
Seat value: window first uses c/cmax, aisle first uses (cmax - c)/cmax, random assigns a fixed random key.
B. The Cincin algorithm
Most row-aware strategies describe position relative to the aircraft's own row numbering, which starts at the nose. For a single forward entrance that coordinate system also matches the passenger's direction of travel. With an aft or mid-cabin entrance it may not.
Cincin instead measures each passenger's position relative to the door and stream they actually use. The aim is to preserve Steffen-style alternating-row spacing while making each stream fill from its far end back toward its own entrance. The failure mode it is built around is specific: when a nose-relative ordering is applied at an aft or mid-cabin door, the rows beside that door fill first, and those passengers then sit in the path of everyone still walking deeper in from the same door.
How it is calculated
Three quantities per passenger p, all of them known at check-in:
- Their door.
d(p)is the open door nearest their row, except that premium rows take the forward door when that door is open. - Their stream.
u(p) = (d(p), forward or aft). A door at the nose or the tail has one stream. A mid-cabin door has two, one turning each way, and they are treated as separate cabins. - Their depth.
x(p) = |row(p) - row of d(p)|, how far they must walk in from their own door. This is the number that replaces the row number.
Sort the whole queue by the key
( c(p) descending, w(p) ascending, side(p) ascending, x(p) descending )
compared left to right, where c(p) is the number of seats between p and their aisle, side(p) is which side of the aisle they sit on, and
w(p) = ( max{ x(q) : u(q) = u(p) } - x(p) ) mod 2.
Read the key from the outside in. c puts every window seat before every middle seat and every middle before every aisle, which is what drives squeeze-bys close to zero. w is the parity term and the key idea: it splits each stream into two alternating waves, so consecutive boarders are two rows apart and can lift bags into the bins side by side rather than behind one another. Anchoring the parity on max x, that stream's own deepest passenger, rather than on the cabin's last row, is what makes the deepest walk always go first regardless of where the door is or whether the cabin has an odd or even number of rows. side then sends one side of the aisle before the other so the two halves of a wave interfere less, and x descending fills each wave from the far end back.
Why it is faster in this model
Boarding time here is dominated by how many people can stow a bag at the same moment. A bag-stower blocks about two row pitches of aisle, so a queue sorted by row lets only one person work at a time per door. The two-row spacing that w creates lets a whole wave work in parallel, which is exactly Steffen's insight.
Cincin generalises that to door-relative boarding. Steffen's parity is measured from the nose, so it is aligned with the direction people walk only when they enter at the nose. With an aft or intermediate entry point, that nose-relative ordering points the wrong way: it fills the rows beside that door first and jams it. Because Cincin measures depth from the door, the pattern points the right way at every door at once, and the streams largely avoid blocking one another because each door serves one contiguous band of rows. They can still contend for doorway capacity, and a party kept together can still straddle a band boundary.
Verification
With a single forward door the two methods produce the same queue, passenger for passenger, and the same gate groups, verified position by position across five cabins and eight random seeds. In that configuration the door-relative formulation reduces exactly to the Steffen ordering. The equivalence also holds with boarding out of turn and with a staged gate release.
Simulator result: On the other tested plans Cincin is usually faster. On a full A320 with forward and aft doors it is 37% faster than Steffen at the documented seeds, and it holds its time when Steffen slows on an aft-door-only flight: 8:38 against 15:25. Per-door-plan figures for the 787-9 are in section 6.
Steffen's original result and physical test concern a single-aisle cabin with one forward door. Cincin is an uncited extension built for this simulator, so its multi-door advantage is a property of this model and not a demonstrated operational result.
C. The efficiency score
The score runs from 0 to 100 and tells you where your strategy lands between two anchors simulated with your exact seed and settings:
t_best = min(t_Steffen, t_Cincin) on this exact flight
t_rand = max(t_random, t_best + 1)
100 = t_best 50 = t_rand
score = min(100, 100 − 50 × (t − t_best) / (t_rand − t_best)) while t ≤ t_rand
score = max(1, 50 × t_rand / t) when t > t_rand
score = 0 if the run gridlocked
Before scoring a run, the simulator boards the same passengers in the Steffen order, the Cincin order and one seeded random permutation.
- The clamp at 100 is real, not cosmetic. Most runs will not beat
t_best, because it is the faster of the two optimised benchmark runs, but the formula would exceed 100 if one did. Read 100 as "matched or beat the better benchmark", not as a theoretical maximum. - 50 is the adjusted random anchor.
t_randis forced to be at least one tick slower thant_bestso the scale cannot invert or divide by zero. In the rare case where the seeded random queue happens to equal or beat the optimised anchors,t_randbecomest_best + 1, and 50 then corresponds to that adjusted value rather than to the random run's actual time. In every other case 50 is exactly that random queue. - Below the random anchor the scale compresses instead of hitting a floor: twice as slow as random reads 25, four times as slow reads about 12. Finished runs are clamped to a minimum score of 1, so even the weakest strategies still rank against each other.
- 0 is reserved for a stall. A run that gridlocks is scored 0 directly and never goes through the formula, so 0 always means "this boarding never finished".
Use the score to compare strategies with the same aircraft and settings. Across configurations, compare boarding time and passengers per minute as well; a 75 on a 777 does not represent the same physical performance as a 75 on a turboprop.
D. The simulation engine
Time advances in ticks of one simulated second. Each aisle is a line of cells, one per row, and a cell holds at most one person. A twin-aisle aircraft has two aisle lattices; the model allows one passenger per aisle to enter through a door on the same tick. Two passengers at the same row can walk and stow simultaneously when they use different aisles. Each seat is bound to the aisle it is reached from, and a centre block is split between its two aisles. On each tick, a walking passenger accumulates speed × mobility cells and advances if the next cell is free.
When a passenger reaches their own row they stop and occupy that cell while they stow their bag, plus the cell immediately behind them if they are lifting a bag into the bin, because somebody standing half turned with a bag above their head blocks roughly two rows of aisle. A passenger only pushing a personal item under their own seat takes just the one cell. That detail is why leaving a two-row gap between consecutive boarders is worth anything at all, and getting it wrong flatters any method that packs people into every row. Then they check whether anybody is sitting between them and their seat. If not, they sit in 2 to 4 seconds. If somebody is, the seat interference clock starts instead.
Randomness comes from three separate seeded streams for passenger generation, queue ordering and simulation. Walking speed, bags, clean seating time and squeeze-by variation are assigned to each passenger before the race, so different strategies at the same seed change the queue order rather than the passengers.
The time lost waiting counter is incremented once per passenger per tick, and only when that passenger is inside the cabin and cannot advance: either the next aisle cell is occupied, or their own row cell is taken by the stow footprint of somebody in front. It is not incremented while they stow, while they sit down, while they wait at the gate, or while they stand up to let somebody past.
E. Assumptions and limits
This is an educational model, not an operations tool. Being clear about what it leaves out is part of using it honestly.
- Passengers always know where their seat is and go straight to it. Real passengers hesitate, miscount rows and walk the wrong way.
- Nobody swaps seats, chats in the aisle, changes their mind about a bag, or goes to the lavatory mid-boarding.
- The gate queue follows the requested order except where you deliberately perturb it with board out of turn, late passengers or a staged release. In reality, getting 180 people to line up in a precise individual sequence is the hardest part of any optimised method, and it is the practical objection usually raised against orderings like Steffen's.
- Bin space is modelled as a simple per-row capacity, not as physical volume and bag shapes.
- Boarding starts with the aircraft empty. Every passenger is available from the start unless you configure late arrivals.
- Crew, cleaning, cargo loading and pushback are outside the model entirely.
Research finding: Physical experiments with volunteers have supported the general finding that parallelised outside-in and alternating-row boarding beats conventional block boarding, and that block boarding is not clearly better than a random queue. Those trials were run on single-aisle mock-ups of modest size, boarded through one door.
They support several of the broad patterns reproduced here; they do not validate this simulator's specific numbers, and they say nothing about the parts we have added ourselves: twin-aisle cabins, multi-door plans, the A380 modelled as a single deck, premium boarding policies, or the Cincin method. Treat those as reasoned extrapolation, not as measured fact. The exact numbers depend heavily on the assumptions, which is precisely why you can change them all.
F. Sources and verification
The strategy claims are grounded in Steffen's optimisation study and the later 72-passenger, 12-row physical experiment. That experiment supports the broad ranking of parallelised methods over block boarding; it does not validate this simulator's absolute times or its multi-door and twin-aisle extensions.
Airline configuration checks use published operator or manufacturer material: ATR rear-door boarding, easyJet A320, Ryanair 737-800, Lufthansa A320, Delta A220-300, Delta A350-900, American A321neo, United 787-9 and 777-300ER, Emirates 777-300ER, Emirates A380, and SWISS 777-300ER. Checked 9 August 2026. Airlines operate multiple subfleets, so verify the seat map for a specific flight.
All benchmark tables in this guide were regenerated from the current engine with the seed ranges stated beside them. They are deterministic examples, not confidence intervals or empirical airport measurements.