You already know how much to charge. That’s only half the story. You still need to figure out how many hours it will take.
First, write down all the tasks that are required. Be as specific or general as you like, but specific will get you a better estimate. For example, I might split a login userform into ‘Create login userform and controls’ and ‘Code login userform controls’ rather than have just one task for that form.
For each task, estimate the amount it would take you if everything goes perfectly and you have all the information you need to complete the task. Just walk through it in your head avoiding details and problems.
Finally, put the total estimated hours into this formula: BidHours = Estimate * (Est_factor + Info_factor + Test_factor + Integration_factor)
Est_factor is always 1. If you estimated it would take 10 hours, it will take at least 10 hours.
Info_factor is always 1. Nothing takes as little time as you estimate and you never have all the information you need.
Test_factor is always 1. For every two hours of coding, you’ll write tests for one hour.
Integration_factor is 0 if you’re coding from scratch and 1 if you’re tacking the code on to an existing project.
I made this fancy formula to make it sound cooler, but it’s just your estimate times 3 (or times 4 if you have to integrate).