It's basically a meme at this point: we try to copy files in Windows, and the estimated time oscillates between 19 seconds and 73 hours. This erratic behavior isn't new—it dates back to the days of Windows 95 itself. So why does Windows calculate the estimated time for its file operations so poorly? The answer comes via Dave Plummer, a retired Microsoft engineer we remember for porting Space Cadet the Task Manager, and of course, the progress dialog...

Why Windows Is So Bad at Estimating File Copy Times
Estimated time

Dave Plummer must be one of the few people with a comic dedicated to him on XKCD, which you can read here. But instead of being offended or angry, he decided to take the opportunity to explain why Windows does such a poor job of calculating the estimated time while copying files, since he was one of the engineers who worked on that element.

Estimated Time, or Why the Crystal Ball Doesn't Work

The real problem is that the Windows interface (or Windows Shell, if you prefer) tries to make a prediction about the future based on what has already happened up to that point. That's why when we start a copy process, we see a ridiculous estimated time that self-corrects after a few seconds, and never stops changing.

Dave uses as an example a hypothetical trip to New York: the journey begins with a walk to the taxi, at a speed of 3.2 kilometers per hour, so the trip will take about three months. However, once the passenger is on a plane flying at nearly 1,000 kilometers per hour, the estimated time drops to three hours, and by taking that previous speed as a reference, the interface suggests the passenger will take just 30 or 40 seconds to reach their destination once they leave the airport.

At this point, Dave cites the case of Google Maps, which makes good predictions even with changes in traffic and weather. The difference is that Google Maps can leverage an enormous amount of historical data, while for the computer they are irrelevant. Another example: no matter how many thousands of users download the same 72.2 GB of Horizon Zero Dawn on Steam, the conditions for all of them vary in hardware, software, connection speed, network congestion, and other parameters, generating a thousand different results.

In other words, Windows Shell can only assume that the future will be like the past, and all its predictions are built from that detail. But if we've learned anything about computers and Windows itself, it's that their underlying conditions change constantly. From network performance to the effects of multitasking, including a full SSD cache, antivirus checking suspicious files, and other background activities, the Windows interface has everything against it. And unfortunately, progress bars don't fare much better...