IBM Expandable Table
IBM users work with massive amounts of data. Their tables can quickly become busy, making it difficult for them to understand their data. Expandable tables increase data comprehension, by progressively disclosing information to users.
My contribution
Co-created usability test
Low fidelity designs
High fidelity designs
Contributors
Kathy G., Researcher
Adam R., Developer
Year
2020
Time
2 months
Context
👩🏻💻 Product audit
IBM built a unified design system, Carbon. My product team conducted an audit to ensure that Carbon’s components covered all our use cases.
⚠️ Problem
Carbon’s expandable table only supports descriptive text. It doesn’t scale for more complex use cases such as subcategories, child to parent relationships, etc.
Classifying use cases
From my conversations with 5 different product teams, I learned that IBM users need their expandable tables to show:
Related information
Frequently, data assets have unclear names. Related information helps users understand their assets.
⚠️ Carbon doesn’t cover this use case
Entries that add up to a specific value
Similar to a pivot table, the sub rows’ values add up to the primary row’s value
⚠️ Carbon doesn’t cover this use case
Iteration 1
🤔 Intent
Indent every sub row to create a clear relationship between a primary row and its sub rows. This interaction leverages users’ mental models of submenus, which already exist in our product.
🧠 Stakeholder feedback
Indenting each sub row misaligns the content and decreases readability
Usability testing (round 1)
We tested the design below with 23 participants
🏆 Goals
Users clearly understand how to expand their table
Users understand the primary row and intended tables relationship
🧠 User feedback
18/23 participants used the caret to expand their table
21/23 participants understood the relationship between the primary row and the indented table
The fact that it has the downward pointing arrow makes it really simple. It is quick and easy.
Participant 21
Development feedback
Even though the expandable table design tested well, development had concerns about the table’s scrolling behavior. To illustrate their concerns, they quickly coded this prototype. The primary row is lost when scrolling, because of the multilevel indentation.
What happens when there are thousands of rows in a expanded section? What are the sticky points in that scenario?
Developer
Takeaways
Get development involved sooner in the design process
Use realistic data in usability testing to get relevant user insights
Next steps
Conduct another usability test with realistic data to make sure the table scales 😴
Usability testing (round 2)
Using realistic data, we tested the design shown below
🏆 Goal
Understand where users expect to see information related to the primary row
🧠 User insight
The table height allows users to view more data at once without having to scroll; giving them data context to make decisions
The table’s search function assists users in finding relevant assets
[Seeing] all the columns in that table [helps me] make a better assessment of that column
Participant 3
Final
Usability testing confirmed that data users need 2 types of expandable tables:
Table 1: Horizontally expandable table
Helps users understand a primary row’s related information
✅ When to use
For secondary information that adds additional insight to the primary row
🚫 When not to use
When the sub rows’ values add up to the primary row’s value. If this is the case, use Table 2: Vertically expandable table
💀 Anatomy
Back button: return to the non-expanded table
Search bar (primary table): locates specific data
Selected row: indicates the selected row
Header (expanded table): shows the expanded table’s name
Search (expanded table): locates specific data
Secondary rows: contains information that supports that primary row
Table 2: Vertically expandable table
Helps users understand the entries that add up to the primary row’s value
✅ When to use
If the sub rows values’ add up to the primary row’s value
🚫 When not to use
When the sub rows contain related information. If this is the case, use Table 1: Horizontally expandable table
💀 Anatomy
Column header (primary table): shows the primary table’s column names
Primary row: shows numerical and textual data
Column header (expanded table): shows the expanded table’s column names
Indented rows: contains the values that add up to the primary row’s value
Caret: expands and collapses the table
Leftmost indented column: labels the sub-values
Results
Both expandable table components were shipped
Result 1
The expandable table components are used in 2 IBM products
Result 2
Increased data comprehension for 60,000+ users