Customers always want a quotation of the amount of time it will take to write a certain feature (printing a new report, adding a new form, importing/exporting data, etc).

Suppose I estimated the correct amount of time needed (seldom happens), then I can get an accurate quotation simply using hours × hourly rate. Wonderful!

But things seldom go as planned, and customers actually wanted the feature a little different with respect to what I had implemented. So I would need to change this little thing, maybe the font, 'blue' color in 'dark blue', dash line into dotted line, ... all easy '5 minutes' task, delivered one at a time to let the customer to verify the result... and each little task needs a little test time, a little commit time, more time to compile and upload the upgrade to the customer... so I added extra work (adjustments) for free. Maybe the estimate was 2 days but in the end I actually worked 3 days for the same amount of money.

Because the price quotation is fixed I cannot ask for more money. The little changes are to fulfill the 'correct desired result', for customer—programmer misunderstandings or things unsaid (think about the tree-swing comic tree-swing article ;-) ).

In other cases, I think the hourly rate is not applicable since my quotation would be too high with respect to market price. There are little tasks that are a bit tricky and require a lot of time to make things work yet no one will spend hundreds of dollars for it (at the moment I cannot find an example). So I feel I'm forced to write as a quotation something similar to the 'market price' (pretending I will resell this feature to someone, sometime in the future).

In both cases I ended up doing a certain amount of work, for a very low hourly rate. As you may imagine I feel frustrated at times since I don't even get the 'hourly rate', the though to 'gain something' seems an impossible dream.

How do you manage these cases? Where am I wrong?

  • Sounds like you simply need to quote higher knowing you'll spend additional time refining.
    – Scott
    Commented Jul 15, 2014 at 7:27
  • 1
    The fact that you use the term "guess" for your estimates may be part of the problem. You should have a better process for modelling the costs, including scope change, and then you can come up with better estimates.
    – cdkMoose
    Commented Jul 16, 2014 at 18:16
  • @cdkMoose: can you explain or give me references (links/books titles) about "better process for modelling the cost"? Estimates can be a part of the problem in fact. I know cocomo, scrum & c ... I don't know if you are referring to them. Thank you very much.
    – Fil
    Commented Jul 26, 2014 at 14:54
  • Estimation starts with good requirements and your knowledge of how your team has worked on similar projects. Your client can't tell you how long your team will take. One method I have used with some success is en.wikipedia.org/wiki/Three-point_estimation
    – cdkMoose
    Commented Jul 28, 2014 at 16:37
  • Don't feel guilty asking for your expected cost for the project. It doesn't make economic sense for you to undercut your own opportunity cost. Commented Aug 11, 2014 at 1:59

8 Answers 8


When a client asks you for fixed-price, in essence the client is asking you to absorb the risk. Unless your specs are done in mind boggling detail, the client is going to assume that anything caused by poor communication is a cost that you are going to absorb.

So here's a fair exchange: if the client has the capability to alter the requirements, then you must have the capability to charge more. This is accomplished most easily by going hourly, but many clients balk at that.

If you're doing fixed-price and your client starts coming up with substantial, material changes, require the client to submit a written change order to which you can invoice and demand some more money. That's the best way to force the client to think before asking you to deliver more.


Go hourly whenever you can. It will solve all these issues.

Then clients do want fixed-price projects and in such cases do a few things:

  1. Add MAX number of changes you will undertake for free in terms of colors, fonts, effects and other such things. this does not apply to bug fixing.

  2. Calculate some percentage as extra time which will cover or unplanned works. Like if you have ideal and worst-case estimation, don't go with ideal but rather with medium value between these two

  3. Have specifications always, do stick to them and do force the client to have them. Specs are your only things you can point to when a client asks for more

  4. Do separate things into milestones and do put work hours or man days next to it. You may need more hours or man days and you will then talk to the client asking for more time and money. Although it's hard to get more money in fixed price projects

  5. Try to charge per work day or work week.

But in the end, it's all about the understanding between you and the client. Have a long talk to him before the project explaining things that may go wrong. Ask him in advance what may happen and how you may ask for more money and time. This way, before the project starts, you will be able to feel who the client really is and you may be able to envisage future problems in the communication.


As Entrepreneur I cannot see the value to pay per hour. It is exactly the opposite metric - I am interested in the work done with minimum hours spent. And freelancer paid by hours is incentivised naturally to increase the number of hours. I just feel it is wrong base for collaboration.

Shouldn't we be looking instead to align our goals? Care about quality, working atmosphere? Compliment and reward each other?

As Employer, I look for quality work, competent, fast (within reason). Also I look to be impressed. A greater attention to details, a new angle I haven't thought about - you name it! The more I am impressed, the more I am willing to pay. Even better, I will offer this myself! So that this great impressive freelancer keeps up quality work, and I keep up rewarding her the best I can. Now our incentives are aligned!

Now from the question I get the impression that neither client nor freelancer know exactly what work is involved, so fixing both price and time upfront is simply counter-productive.

As freelancer, I would have an honest discussion outlining what possible work can be done with what outcomes. That is, tangible outcomes that client can appreciate. Assuming, they don't have a long relationship as of yet, and have to see how things move, picking a small job leading to a fast valuable outcome for the client would be the best thing to do. That way the freelancer knows it won't take too long, will possibly see a way to impress the client, and will know that client will appreciate the job and will gladly pay.

Then, once both sides are happy after the first job is done, it is much easier to agree for the next. And so on.

So in conclusion, the newer your relationship is, the smaller job you should take at a time. That is the only way I see to keep both sides happy and working towards the same goal, not the opposite ones.

This answer could be somewhat related.

  • But isn't the "employer's" goal to get maximum value (max quality-to-price ratio)? This is against the "freelancer's" goal to maximize the price.
    – Pacerier
    Commented Oct 10, 2015 at 2:43
  • I would say the goal to get maximum quality within fixed budget. Commented Oct 13, 2015 at 21:13

My own policy is to do fixed price offers based on sufficiently detailed specifications, and announce an hourly rate for extras. When I feel the need, I also explicitly state what is not included in the basis offer.

Then during execution of the contract, when new requests pop up, I can raise the flag "this is extra".

Having a relatively high hourly rate for the extras is no problem as you can explain to the customer that this breaks your schedule, induces project overhead and impacts your other projects...

To avoid scaring them, I also leave the option of working on the basis of a secondary fixed-price offer in case the "extras" would tend to extend.

It may also sometimes help to include a comment saying that the specs were not fully available at the time of writing so that a "reasonable" interpretation of the task will hold.

Last but not least, there can be (in my case there are always) unknowns when preparing the offer. In the cases that these unknowns can become problematic, I explain to the customer that I cannot assume all the risk alone. So I propose to agree on the sharing of the risk (say both parties will take half of the extra costs if they arise), or I warn of an upfront surcharge to cover it.

It's all about telling things in advance.

  • "explicitly state what is not included" is a good idea.
    – Pacerier
    Commented Oct 10, 2015 at 2:44

Suggest an hourly rate, with max budget, for the preparing the initial specification and then a fixed price for the implementation. But as Peter says hourly rate for the whole thing irons all of this out. You just know things are going to change and someone is going to lose out; either the client is paying over the odds if you do it quicker than expected (does that ever happen??) or you get into the situation you described and your rate gets diluted.


Go hourly seems the advice here, and from the freelancer programmer perspective it would be very preferable. And it goes hand in hand with the commonly espoused view that estimating is hard.

All true to a degree,

However, what other trade would this be acceptable ? For me none, I would never get a plumber/builder to do a job without first agreeing an upfront fee. I once had a painter and decorator respond to "how long will it take to plaster 3 rooms?" with "how long is piece of string?".

Of course programming is different, and customers change requirements. But that can be dealt with.

I guess I am highlighting that reliable estimating is not actually impossible, and nether should it be viewed as. Expecting customers to work on a day rate is rather presumptuous - conversely it is also quite common, often due to customers ineptitude imo.

  • "piece of string" meaning?
    – Pacerier
    Commented Jan 17 at 8:05

I am in the fixed price camp for most things. However, in order to determine a correct bid, the project requirements must be very detailed and most importantly, complete. They are delineated in the contract that is executed prior to any work being performed, and the client understands that any changes to the specifications or requirements may incur additional charges.


See my answer to the question Do you fix hourly estimation or accept your mistake and do for free?


The point of a fixed price is to protect the client's budget; I take the risk, but charge for it in my bid. The point of billing time and expenses is to allow the client flexibility in the scope and direction of the project, protecting me against changes and unknowns, for which the client takes the risk. If you contract fixed price, make sure your have a scope-of-work statement, and stick to it, or charge for extras.

  • ++for "allow the client flexibility in the scope and direction".
    – Pacerier
    Commented Jan 17 at 8:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.