When I began my consulting company, I bid on projects by sitting down and listing the times needed for all the steps in order to deliver the job as promised. After losing money several times, I learned to do things differently.
Once I made an original time estimate, I put it aside for 24 hours. When I looked at it again, it was with less excitement and more realism. My experience told me I was going to have to regularly meet with the client and update them. This meant I would have to write a report (probably a couple of times). I learned to assume that the client would probably want to discuss changes. And that I was going to have to make corrections, interview staff, coordinate with sub contractors, and make appointments etc. to administer the job. Usually when I added all the likely administrative and coordination time to the original estimate, it would double. And it was the second estimate that I would deliver to the client. That was when I began to make money.
It is easy to forget all the administrative or support work that goes into any project. The phone calls, documentation, meeting, driving, emails, coordination, updating, reviewing, and correcting are all necessary to deliver a good product on time. They are not the actual creation of the work, but they are the support activities that make the work a good product. You can learn from my mistakes: take all the parts of the process into account when making a bid or an estimate. Quote for what it really costs to do a professional job. You will find you get paid what you are worth and your client feels they have received a solid, professional product.