Over time, I naturally slowly raised my estimates, as I realized that it often demanded more work than what it looked like, and my time estimates were just visions that never materialized.
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
• • •
I think you should be framing things differently. If the software you are building is saving or making $5,000 a month for a company, there is no reason why you shouldn't charge that amount times a multiplier. The key here is to present yourself as someone providing them with a
business solution that will cut down on their costs via software, or generate new leads (resulting in more profit for them).
You have to talk with them in terms that they understand, they don't care if you spent 15 hours optimizing a database, they want to understand how your software impacts
their business, how you pull it off technically will become secondary. This will also reduce their tendency to micro-manage you, as they will be more focused on the business goals you set in your proposal.
Naturally, this approach won't work for all kinds of software, but it is a good heuristic to keep in mind.