MTE Explains: How Progress Bars Work And Why They Are Inaccurate Most of the Time

Ever since the first GUI in Windows, we have lived with the reality of progress bars. They were always like a procrastinating friend, telling you that they’re almost finished with something when, in reality, they’re probably far from the end. There’s a sense of frustration that fills you up as you read “99%” on the progress bar while it’s telling you that it has one second left to finish a task, for the last five minutes. We understand your frustration, which is why I’m going to explain exactly why these things happen.

First, Let’s Look At How Progress Bars Work

A progress bar is made by slapping on a dialog and putting a bar in it. That bar fills up according to the percentage of progress made in accomplishing a task, hence the name “progress bar.” Programmers make progress bars tick by attributing certain milestones during a task to a percentage. So, once a progress bar reaches the third part of a task containing 100 parts, it knows it has to fill itself only three percent.

Sometimes, programmers can also put a timer on their progress bars. This will (always inaccurately) determine how much time a specific task will take until it finishes. Using the previous example, let’s say that the first three parts of our 100-part task was done in three seconds. That leaves one minute and 37 seconds (97 seconds total) remaining. But this stuff functions only in a perfect world. I’ll explain below.

Why The Bar’s Stuck

Progress bars are notorious for being stuck at certain points. It’s awfully frustrating, but there’s a reason behind all the madness. When a progress bar measures the progress of a task, it uses certain criteria. For example, let’s say we’re copying 1,000 files. Each of those files probably has a different size. Some people would divide 1,000 by 100. It sounds nice, but doesn’t account for differences in file size. Some files could be a couple of MB, while others could be up to 10 GB!


You can also divide the total size of all the files by 100. It sounds practical and more accurate, but it’s still a dud. The method doesn’t account for the speed fluctuations a hard drive experiences when copying different types of files, or when copying files while performing other short tasks. In the end, you end up with a bar that just shows you how far you’ve gone, but not how much you can expect to wait for the task to finish.

Hard drives tend to copy smaller files (or larger, but physically fragmented, files) slower than it copies bigger chunks of data. That’s because the process of seeking new segments within its physical platters is more tedious when accessing 100 small files as compared to the process of hunting down two huge chunks of a larger file. The same could be said about registry entries. They vary in length and sophistication.

Some Final Thoughts

Practically everything on your computer has so many variables attached to it, that it’s impossible to accurately determine the progress of a task. You’re left with a useless bar on your screen that’s just there to keep you from throwing a fit. The fight’s over. Your stubborn computer will always win over any attempt to accurately predict something that, in a vacuum, would otherwise have completed in a timely manner. You really can’t do anything about your progress bars, but at least you know why they act in such frustrating ways!

Oh, and here’s an interesting little game related to progress bars: Progress Wars.

If you can think of more accurate ways to predict tasks, be sure to leave a comment below!

Dark loading or progress bar by BigStockPhoto

Miguel Leiva-Gomez
Miguel Leiva-Gomez

Miguel has been a business growth and technology expert for more than a decade and has written software for even longer. From his little castle in Romania, he presents cold and analytical perspectives to things that affect the tech world.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox