Providing accurate time estimates is genuinely a hard problem! With download speed, it's common to have momentary wifi/4g slowdown. Or data packets that arrive late due to (network) traffic. So it measures the speed as slow and says "well the total time must be (looks at calculator) 27 hours". Usually it's using a rolling average to help prevent spikes from messing things up. But it could end up with a weird pattern of slowdowns that make it keep giving a bad or overblown estimate until the connection speed has been stable long enough for the average to steady.<br><br>About progress: a lot of computing operations don't even measure their own progress. So its often extra development time to write code to determine the total work and then track progress as it goes along.