Found a pair of good articles by Matthew Griffin today. The first one (which was actually the second one published) is ‘7 Reasons You Shouldn’t Charge by the Hour.’

I don’t, not for project work, but only for maintenance or upgrade work. However, I’ve noticed recently that charging a flat rate on larger projects usually ends up losing me money – something will come up that’s kinda/sorta out of scope, and then I’ll wind up spending more time than expected. So these are the things I’m going to be doing for larger projects from now on.

  1. I always show line items for everything. For the things for which I can pretty accurately estimate time, I’ll give a flat price. This might include initial layouts, setting up a hosting account on my own server, or adding in a rotating text/image template which I can do quickly and easily.
  2. For items where I’m fairly sure about the time but less sure than #1, I’ll provide a range of flat prices. These could be blog integrations or setting up hosting accounts on outside servers.
  3. For those few remaining items where I have no clue how much time they might take, like migrating a database from or to an outside server or setting up a shopping cart, I’ll note that as TBD at the hourly rate of $X.XX.

I don’t think I can do any better than that with my estimates. It will help me not get stuck with tasks I can’t accurately estimate, but will provide the client a more accurate picture than simple hourly rates.

The second article is ‘Pay Me Please: A Freelance Web Designer’s Guide to Billing and Pricing.’ If you’re just starting out and don’t know how to set prices or bill clients, this is worth a read.