Guidelines
Suggest edit

Synchronize time axes across comparable timeline rows

For cross-row comparison of predictive uncertainty in multi-row timeline views, use a shared axis across rows to improve fidelity and mitigate misleading similarity between differently scaled predictions for quick mobile comparison.

  • purpose:refine
  • basis:empirical
  • task:compare
  • structure:small-multiples
  • chart:timeline
  • quality:fidelity:use
  • lever:layout-structure
  • component:axis:use

advice

Shared row axes

Use one synchronized time axis across comparable rows when users need to compare predicted timing or uncertainty between items. For example, keep each timeline row on the same minute scale instead of giving each row its own fitted range, so narrow and wide predictive spreads remain visually distinguishable across rows.

reason

Why shared row axes work

Cross-row comparison depends on a stable positional reference. If each row rescales itself to its own range, different predictions can take on similar shapes and widths even when their timing uncertainty differs substantially.

Mechanism: A shared axis preserves the meaning of horizontal position and spread across rows. This prevents per-row scaling from flattening meaningful differences in variance.

Evidence: In the design process, row-specific relative timelines were rejected because they were very difficult to compare across rows; different-variance predictions could look similar once each row’s timeline and density were rescaled independently (Kay et al., 2016).

context

When to use shared row axes

  • User Goal: Compare several upcoming options at once.
  • Task: Compare arrival times, spread, or relative certainty across rows.
  • Data: Multiple predictive distributions with different variances.
  • Chart Setting: Multi-row mobile timeline displays with one row per predicted item or route.
  • Audience: Everyday users scanning several rows quickly.
  • Success Criterion: Row-to-row comparisons of timing and uncertainty remain trustworthy.

exceptions

When not to use shared row axes

Break it when: Users inspect one prediction at a time and do not need row-to-row comparison. Why: The main problem with per-row scaling is that it breaks comparison across rows.

costs

Tradeoffs of shared row axes

Sacrifice: You lose some local zoom on individual rows. Risk: Low-variance predictions may occupy less of the available row space and reveal less local detail. Mitigation: Accept some lost local detail to preserve comparability across the full set of rows.

mistakes

Common mistakes with shared row axes

Mistake: Giving each row its own time range so every prediction fills its row. Why it fails: Rescaling can make very different uncertainty ranges look similar.

check

How to check shared row axes

Failure Sign: Two rows with different numeric ranges look similarly wide after scaling. Quick Check: Put a narrow and a wide prediction on adjacent rows; if viewers struggle to say which is more variable, the axes are not comparable enough. Stronger Test: Compare a shared-axis mockup against a per-row-axis mockup and keep the version where users correctly compare spread across rows.

fix

How to fix shared row axes

  • Lock all comparable rows to one shared time scale.
  • Remove per-row auto-scaling that resizes each distribution to its own local range.
  • If space is tight, reduce local detail rather than changing the row scale from one row to the next.

References

Kay, M., Kola, T., Hullman, J. R., & Munson, S. A. (2016). When (ish) is My Bus?: User-centered Visualizations of Uncertainty in Everyday, Mobile Predictive Systems. Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems, 5092–5103. https://doi.org/10.1145/2858036.2858558