Hi,
I read this with interest. It has been a long time since a programmer has been paid by the lines in his/her code. Here is what I do for a customer

I estimate the following.

1) How long will it take to write the program. Say 60 hours.
2) How long will it take to write the documentation to support the program so employees will be able to teach themselves/others how to use the software. Say 16 hours.
3) How long to train employees initially to use the software. Say 4 hours.

So, at $50/hr that is 50 x ( 60 + 16 + 4).

Now, that is my maximum charge. If it takes me 100 hours then I eat it out of pocket.

Your budget will depend upon getting a realistic and honest answer from a programmer regarding this estimate. We tend to pad the hours in case we have 'over estimated' our ability. ;-)

Regards,