My reasoning is as follow:
The money has not changed hands yet... so effectively you are asking them if you can over-charge them now. You have nothing to back this up with but "hey, you're pre-paying on the next project", which may not ever come to pass. No company in their right mind pays out for work that isn't even scheduled yet. "R5 in my pocket is better than R5 in yours" scenario. They have no benefit in being tied to you for work not even decided on.
On the flip side as well... why would you want that money now? To spend it? If you do, and they decide they want a refund because they would prefer not to do further business then it may affect your cash flow, unless you keep the money unspent. If that's the case, then why ask for it now? To earn interest? If it's a few thousand, then what's the point?
If you want a retainer.. then that's a completely different animal and will require monthly payments and an equivalent amount of work done... in which case it does not fit this situation at all.
Then of course there is the good will in saying "Hey, it's actually going to be done cheaper and quicker than expected... lucky you". When we hear this, we immediately know the supplier is acting in good faith, not trying to stuff us around, and will definitely consider doing future business. If they turned around and told us that they finished under budget, but wanted to keep the full amount, I'd be concerned about 1) Their financial stability 2) Their ethics.
I'm so sick of the "screw them for every dime... lock them in... take it all" kind of mentality. But hey that's just me... clearly I'm a dunce when it comes to business.
When there is a good, well established, regular set of projects then sure, things like this can happen (if the money has already changed hands), but why when you haven't invoiced yet? Because you are too lazy to adjust the invoice? Even in complicated contracts it makes no sense unless the money has already changed hands.
You don't need to make business complicated to make it successful. I like my "simplex" view.
Usually I gave my clients a choice up front when quoting. Time-and-material or Fixed price. If they chose the first option, I gave them an estimate, but they only pay for the hours I've worked, but if I worked longer than expected, they had to pay for that as well.
For the fixed quote, I don't even provide them with the hours (in either the quote or the invoice). They pay the fixed amount regardless of the number of hours I've worked. I've found though that probably most of my clients prefer the latter option anyway, even though it is more expensive due to the larger contingency amount added. (they probably had some bad experiences with other consultants in the past)
I suppose in your case, you should ask yourself the question, if you made a mistake and the job took much longer than you expected, would you have gone back to them and charged for the extra hours?
What would have happened if you were over budget?
What would you have expected to happen?
You only get one chance to piss off a client. After that they are an ex client ...
It all comes down to your relationship and ongoing business with your client. I have clients paying me in advance (prepaid retainer) just so that I WILL spend the time on THEIR project and get it done sooner.
I also have clients making down payments for their project, but in that case if we decide to leave something out that was part of the original specs, the client don't want his money back, but just will add something later if he starts testing and find something missing. Or he will ask for some extra work in testing, styling, whatever. Or if the client has more than one project that money may go over to the next project's funds.
They will not pay you more than they know they have to just because they MAY do business later! That is private business.
Unless they have money to throw around, or if it is a government contract, where they have fixed budgets and if you do less they would rather still pay the money out of the budget funds so that it does not get pulled back in for other government projects. This last paragraph is just a pun, not sure if this is actually the case, but it feels that way.
"Uncapped is like eating on 'All You Can Eat' night! Capped is like ordering the pizza size you want of the menu."- Gian from Afrihost
There is a big difference between "will take 5 hours" and "is worth 5 hours". software is about what it is worth to the client, not how long it takes.
say you are consulting, and you are presented with a problem that they cant fix/answer, but it takes you 5 minutes to do. This doesnt mean that it is worth 5 minutes of your hourly rate.
Smile and wave
haha, just kidding, I personally agree, adjusting your quote or invoice to the worked hours, which will be less, will definitely make your clients happy