How do you bill your programming projects? Do you do it per hour? Per job?

Please include what kind of project you are doing in the answer. (Mobile, Web, Desktop, etc... You can be more specific if you want.)


If you'd like to give specific amounts in your answer, you may. ;-)

  • I like the first part of the question, but I don't think we should have any locale or time specific components. Rates change depending on specific location (even in the US, different locations will have different rates) and time (rates change over time and become no longer valid).
    – Thomas Owens
    Sep 1, 2010 at 20:39
  • I gotcha, but check out this one: programmers.stackexchange.com/questions/19/…
    – Moshe
    Sep 1, 2010 at 20:40
  • Thomas Owens - Better?
    – Moshe
    Sep 1, 2010 at 20:56
  • I think this is much better, and much more useful to the general community of programmers.
    – Thomas Owens
    Sep 1, 2010 at 21:20

4 Answers 4


I used to bill hourly when I was consulting for an on-line start-up several years ago, and it struck me that it really was a big act of trust on both our parts. The client trusted I wasn't going to charge him for looking up sports scores on ESPN, I trusted he wasn't going to accuse me of the same if the project I was working on took longer than anticipated.

Luckily for both of us, we were both worthy of that level of trust. But as a general rule, I have to think that billing per project is safer for all parties involved.


There's always going to be a struggle between you and the client over costs: you want to charge as much as you can from a client, and a client is going to want to get as much work for as little cost as possible.

So, when you charge hourly, it leaves open to negotiation how many hours a project should take to complete. You may think it'll take 10 hours, but your client thinks you should do it in 5.

By charging by project, there's very little open to negotiation: it costs $X, and the client can take it or leave it.

  • 1
    Well, how do you know where that sweet spot is so that you don't scare off clients with your prices?
    – Moshe
    Sep 5, 2010 at 4:24
  • How does giving a quote on an entire project eliminate a counter-offer?
    – JeffO
    Sep 15, 2010 at 12:45
  • 1
    It doesn't eliminate a counter-offer; it eliminates counter-offers that are based on re-estimating the project. As I said in my answer, if you say 10 hours, a client can say things like "why can't you do it in 9?" If you give a quote for the whole project, the client has no basis to renegotiate the price other than by saying "that's more than I want to pay" which is a terrible negotiating position.
    – user8
    Sep 15, 2010 at 21:25

We all know that hourly billing would be better (for non-trivial projects), but it is very hard to have it accepted by the customer.

So you should do a high degree planning and scheduling along with the customer, so he will know that you're not trying to cheat him. You could also try to agree on compensations if the project takes more time that planned in spite of the high quality scheduling (it should be clear at this point the value of a good scheduling, shared with the customer). Don't forget to plan also risk management.

If you do so you chances to have an hourly billing would be higher, but if you really don't want to cheat on the customer on the hours you spend on his project, it would become not much better than per-project billing...


I work at a web dev shop (~25 people) and we do it mostly by the project, since that's what customers prefer. They don't want open-ended commitments to keep giving us money.

Some exceptions have occurred, though. When we do hourly, it's usually a deal where we'll give them N hours of work between M developers per month to work on whatever they want.

  • Can you give me any ballpark on, say, a wordpress theme, for example?
    – Moshe
    Sep 1, 2010 at 20:44
  • @Moshe, you can buy a Wordpress theme for $50. If it's not one of those, then it's custom work, so the ballpark is very large. Dec 3, 2010 at 15:33

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