Towards a convention for table ordering

Airports present many minor irritations - of particular annoyance to me is the bad design of departure screens.

Here's an example from Melbourne Airport recently. As I approached the gates, here's what the departure board looked like:

Departure information screen at Melbourne airport

At this point we've passed check-in/security/passport control and we want to check the status of the flight and which gate we need to go to.

Finding one's flight information involves the following mental process (largely subconscious for frequent flyers, less so for others).

Well this works well enough, this process presents several issues that make the table harder to read than it might otherwise be.

Foremost, there's no actual hint of what the sort order might be. We aren't all frequent flyers, and those who aren't intimately familiar will need to examine it first to determine what the order might be (it doesn't help that there is a very similar-looking column of times right next to it).

There's also the reading order - it's most pleasant and intuitive to read things from left to right. But in this scenario we must look at the fourth column, then the third, then the first/second, then the final three.

An additional problem is the repeated information that makes groupings non-obvious and harder to see, both within columns (there are many repeating values in the scheduled departure time column), and between columns (the scheduled and estimated times are the same in most rows).

A simple fix

We can solve most of these problems very simply - by changing the order of the columns to match the sort order.

For instance, here's the above information as an HTML table (for brevity only the top few rows are shown), with the original ordering.

Original:

airline flight destination std etd gate status
Emirates
EK5133
Auckland
16:50
16:51
2
DEPARTED
Qantas
QF155
Auckland
16:50
16:51
2
DEPARTED
Emirates
EK5009
Perth
16:50
17:00
20
CLOSED
Qantas
QF009
Perth
16:50
17:00
20
CLOSED
Etihad
EY463
Abu Dhabi
17:15
17:15
14A
CLOSING
Emirates
EK5037
Singapore
17:20
21:00
3
Qantas
QF037
Singapore
17:20
21:00
3

We can reorder the columns as per the sort order as follows, placing the scheduled departure time on the left:

Nicely ordered:

std etd destination airline flight gate status
16:50
16:51
Auckland
Emirates
EK5133
2
DEPARTED
16:50
16:51
Auckland
Qantas
QF155
2
DEPARTED
16:50
17:00
Perth
Emirates
EK5009
20
CLOSED
16:50
17:00
Perth
Qantas
QF009
20
CLOSED
17:15
17:15
Abu Dhabi
Etihad
EY463
14A
CLOSING
17:20
21:00
Singapore
Emirates
EK5037
3
17:20
21:00
Singapore
Qantas
QF037
3

We can now read from left to right straightforwardly - If I booked a 16:50 flight to Perth on Qantas, I can now read that intuitively starting the left, and see the relevant status and gate information on the right.

This in itself is a readability win, but there are further enhancements to be made, by removing redundant information, as follows:

std etd destination airline flight gate status
16:50
16:51
Auckland
Emirates
EK5133
2
DEPARTED
Qantas
QF155
2
DEPARTED
17:00
Perth
Emirates
EK5009
20
CLOSED
Qantas
QF009
20
CLOSED
17:15
17:15
Abu Dhabi
Etihad
EY463
14A
CLOSING
17:20
21:00
Singapore
Emirates
EK5037
3
Qantas
QF037
3

Repeated values for scheduled departure and destination have been removed. Because of the left-to-right ordering, a sort of tree-like structure emerges, with each distinct departure time as a branch, destinations as a sub branch, and so on, as we move from left to right.

Let's also make the table more concise by combining rows that are in fact code-share versions of the same flight, and fix the estimated departure time by only displaying it if it differs from scheduled:

std etd destination airline flight gate status
16:50
16:51 (1m late)
Auckland
Emirates / Qantas
EK5133 / QF155
2
DEPARTED
17:00 (10m late)
Perth
Emirates / Qantas
EK5009 / QF009
20
CLOSED
17:15
Abu Dhabi
Etihad
EY463
14A
CLOSING
17:20
21:00 (3h 40m late)
Singapore
Emirates / Qantas
EK5037 / QF037
3
17:25
Colombo
SriLankan
UL605
4
OPENS 16:25
17:30
Denpasar
Qantas
QF045
8
OPENS 16:30
18:20
Wellington
Air China / Air NZ
CA5125 / NZ850
11A
OPENS 17:20

Informing the layout

The tree-like hierarchy and left-to-right ordering can not only improve the readability and eliminate clutter, but also inform how we choose to sort the table in the first place. Different sort orders are possible and may work better than departure time.

Thinking about "which column orders allow us to show the most hierarchical representation of the data?" helps us develop the ordering that most quickly and intuitively narrows down the search through the information.

We might for instance mote that it's easy to forget the precise departure time, and hard to find a time in a column of very similar numbers - but much harder to forget the city one is flying to.

We might then choose to order by city instead. That looks like this (showing the whole table this time, plz keep scrolling):

destination std etd airline flight gate status late
Abu Dhabi
17:15
Etihad
EY463
14A
CLOSING
Auckland
16:50
16:51
Emirates / Qantas
EK5133 / QF155
2
DEPARTED
1m
18:55
Qantas
QF157
2
OPENS 17:55
Virgin
VA169
4
OPENS 17:55
Air China / Air NZ
CA5135 / NZ126
7
OPENS 17:55
Bandar Seri B
18:45
R Brunei
BI006
18
OPENS 17:45
Beijing
20:15
Air China
CA166
6
Chengdu
22:00
Sichuan
3U8418
18
Christchurch
18:35
Virgin
VA099
11B
OPENS 17:35
Colombo
17:25
SriLankan
UL605
4
OPENS 16:25
Denpasar
17:30
Qantas
QF045
8
OPENS 16:30
18:55
JetStar / Qantas
JQ035 / QF265
3
OPENS 17:55
Doha
22:20
Qatar
QR905
9
Dubai
18:55
Emirates / Qantas
EK405 / QF8405
5
OPENS 17:55
Perth
16:50
17:00
Emirates / Qantas
EK5009 / QF009
20
CLOSED
10m
Singapore
17:20
21:00
Emirates / Qantas
EK5037 / QF037
3
3h 40m
19:25
Singapore A / Virgin
SQ208 / VA5638
14A
OPENS 18:25
Wellington
18:20
Air China / Air NZ
CA5125 / NZ850
11A
OPENS 17:20

I really like this destination-first ordering - in most cases a simple check of the first column is enough to be confident that one has found the row for one's flight. Airports could consider offering this or other arrangements and see how flyers respond.

Further enhancements

We can make the sort order even more obvious by adding a visual indication of magnitude where appropriate.

Switching examples now to a Top 10 of largest countries in the world by land area:

area country
17098246
Russia
14000000
Antarctica
9984670
Canada
9596961
China
9525067
United States
8515767
Brazil
7692024
Australia
3287263
India
2780400
Argentina
2724900
Kazakhstan

We can not only see the sort order clearly, but quickly gain an idea of the relative magnitudes of the quantities, without even interpreting the numbers.

This table would often be presented with the countries first and quantities second: Putting the quantities first conveys more clearly what the chart is about.

UI possibilities

If this convention were to be more widely adopted, interesting possibilities also open up for interactive table UI: We could change the sort order simply by dragging column headings into a different order.

SQL support

It would be great if this was an available shorthand option in SQL. Instead of tediously replicating the column order from the select clause, we could simply write something like:

select
    a, b, c
order by
    left to right (a desc)

Feedback please

If you decide to use this convention in your own infographics work, let me know and tell me what you think.