Hofstadter's Law: It always takes longer than you expect,
even when you take into account Hofstadter's Law.
The best advice I ever got on project-time estimation (from a biology postdoc) was: make your best, most honest best effort, and then double it.When I make projections with a spreadsheet, I have a cell that copies my grand total of all costs and call that copy "unforeseen costs". I always hate bidding that high at the start, but the estimate ends up being close to right surprisingly often.
This article says 30% overruns are common, which is within my former boss' +100% bounds.
The other nice thing about doubling your cost estimate is it prevents you from catching the winner's curse and landing an overly-stingy client. Plus if you really can keep costs within your spec for the project, then you win extra profits. You'll never win that "game" if you don't leave room for error.