We tend to over complicate our lives, in project land, by trying to estimate "accurately". It's better to accept two things: first, we can't estimate perfectly but, second, we can work in ways where estimating imperfectly doesn't matter and where we can get better at estimating.
Today I made myself a rather nice Italian Sausage and Tomato Soup for lunch using my rather nice Soup Making Machine. I ate about half for lunch but then when I went to put the rest in the fridge, I couldn't decide what size plastic container I should use. To out that another way, I couldn't estimate how much soup there was and what sized container it would need. If I'd done this before then I probably could have guessed more easily.
So what did I do? I erred on the side of caution and picked a container, from the many, which I hoped would be a bit big. I hoped to avoid the cost of having to unnecessarily dirty a container that was too small.
You can tell from the picture below that I got lucky. My "slam dunk" container is, actually, quite full. In Agile terms this is a bit like "under promising then over delivering, blatantly and transparently" and getting unlucky, but not too unlucky. If you worked in 3 week long sprints then maybe you finished a couple of days early and had room in your container to pull forward some work - to start your next spring early.
I'm happy I didn't spend a whole lot more time trying to pick the perfect container up front. I might still be there now doing that.
I like to think, too, that the next time I need to store soup I'll have a little history up my sleeve, having calibrated my "soup estimating brain" a little and next time I'll make an even better estimate. We will see.