Rethinking the Progress Bar

Most software packages employ progress bars to visualize the status of an ongoing process. Users rely on progress bars to verify that an operation is proceeding successfully and to estimate its completion time. Typically, a linear function is applied such that the advancement of a progress bar is directly proportional to the amount of work that has been completed. However, estimating progress can be difficult for complex or multi-stage processes. Varying disk, memory, processor, bandwidth and other factors complicate this further. Consequently, progress bars often exhibit non-linear behaviors, such as acceleration, deceleration, and pauses.

Furthermore, humans do not perceive the passage of time in a linear way. This, coupled with the irregular behavior of progress bars, produces a highly variable perception of how long it takes progress bars to complete. An understanding of which behaviors perceptually shorten or lengthen process duration can be used to engineer a progress bar that appears faster, even though the actual duration remains unchanged. This paper describes an experiment that sought to identify patterns in user perception of progress bar behavior. The results are then analyzed to classify behaviors that perceptually speed up or slow down process execution. We conclude with several design suggestions, which can be applied to applications that employ progress bars and contribute to an overall more responsive, pleasant and human-centric computing experience.



Harrison, C., Amento, B., Kuznetsov, S., and Bell, R. 2007. Rethinking the progress bar. In Proceedings of the 20th Annual ACM Symposium on User interface Software and Technology (Newport, Rhode Island, USA, October 07 - 10, 2007). UIST '07. ACM, New York, NY. 115-118.

© Chris Harrison