herm
To be honest I have never received even 4 hours per week from a manager, on a consistent basis. You need to manage him like he is upper management or a client, he will ask the impossible, not tell you how to succeed, and expect everything.
Build what he needs, and persuade him as to why it is great. He wont express the details because even he doesn't really know.
Once you have broken out all of the components of the job, you will then evaluate all of the potential pitfalls or risk of the job where it would increase the price, try to quantify the price of those and what you estimate the likelihood that it will happen.
Based upon all your risks, calculate what will be the most likely scenario, more than likely at least one of your risks will materialize during the project. Now take the total of the base cost of what you thought the job combined with the likely risk value and add the profit you would like to make on the job.
If you negotiate up front with your client the deliverable items, and be very specific as to the cost for those items with your risk and profit built in you will be in a very good position. As the client asks for new features you will need to recalculate your risk and renegotiate the price. Its a good idea to never work without negotiating the scope of work and the price.
As a project continues you will need to evaluate how much its costing you to do the work that you thought you could do for X dollars. This is why its really important to breakdown the work into manageable chunks. More than likely, you will continue to perform at that efficiency going forward, and you will want to evaluate based upon that knowledge if you will be under or over budget.
Trying not to get into too much detail here, but, when you devise your initial estimate you should have a list of deliverables and you should determine what you think those deliverables will cost to implement. Your initial estimate will then become your baseline, and is mainly used to keep track of what you initially agreed upon (scope) and as a way to measure your progress.
Imagine that based upon your original estimate you have a deliverable that to implement will cost $50,000, but you have already spent $30,000 to implement it and are only 10% done. Well then your new estimate would now balloon out to $300,000 and it will take 10x as long. If you replicate this process out across all of your deliverables based on their progress you will have a new estimate, as the project continues your estimate will become more and more accurate.
Beyond having a better understanding of what your project will actually cost, you will also have a tool to handle scope changes by management and/or the client. You will automatically have an idea of based upon your prior performance on this project the feature that they ask will cost them $X additional dollars and increase the duration of the project by Y Days, or, as a way to negotiate a reduction in scope in order to stay within your budget.
There are certain mega engineering firms that make all their money solely off of defining the estimate and scope at a very detailed level up front and then renegotiating the (hell out of the) price as new scope is introduced.
Here's a link for more information: