For a custom software that will likely take a year or more to develop, how would I go about determining what to charge as a consultant? I'm having a hard time coming up with a number, and searches online are providing vastly different numbers (between $55/hr and $300/hr).

I don't want to shoot too low because it's going to take me so much time (and I'm deferring my education for this project). I also don't want to shoot too high and get unpleasant looks and demand for justification. FWIW I live in Canada, and have approx. 10 years of development experience.

I've read the "take your salary and divide it by 1000" rule of thumb, but the thing is I don't have a salary. Currently I'm just doing fairly small programming tasks for a friend who is starting a marketing company, pricing each task fairly arbitrarily. I don't know what I would make over the course of a year doing it, but it would be incredibly low.

My responsibilities for the project would be the architecture, programming, database, server, and UX to some degree. It's going to be a public facing web service so I will also need to put a lot of effort into security and scalability.

Any advice or experience?

The best answer I've come across for this question is: "What do you want to earn?"

This then has to be moderated by: "What can the customer pay?"

You can weave a way somewhere in between.

You may also find that if the job is going to take a year, then you could perhaps charge a fixed fee - pick a number - $100K, and say "thats the price". It means you take on the risk if you over-run, but you also walk away with spare $ if you can do it faster.

Otherwise, the way of working this out goes something like this:


I want to earn $100K per year.
There are 52 weeks in a year, with 5 working days = 260 working days.
But I want 4 weeks off a year for holidays (deduct 20 days)
I better allow 2 weeks off a year for illness (deduct another 10)
I need to allow for public holidays (varies by country but most places, about 12 days/yr)


So, total actual working days / year = 218.
I want to work 7.5 hours / day, so there are 218 * 7.5 = 1635 working hours / year.

My $100K / year therefore works out to $100,000 / 1635 = $61.16 / hour.

BUT... to this you should then ADD:


Allowance for retirement fund, workers compensation, insurance, odds and ends costs, etc.


As a rough rule these come to about 15% to 25% of salary depending on where you live.

So, shoot for the middle ground and add 20%: about $74/hour.

If you don't like these numbers, figure out what you want to use and re-run the calculation.

EDIT: just a note: a lot of businesses actually work on a budget for their staff of 1500 working hours / year. You might also want to take into account an inefficiency / distractions / goofing off factor. NOBODY consistently actually WORKS for 7.5 hours / day.

EDIT 2: "what do you want to earn" is what you want to bank - after expenses. The allowance for retirement fund, insurance, odds and ends etc  is your costs. If you have other costs, eg capital equipment, paying a book-keeper, etc, then you need to add those on as well.

And - long term contract rates are generally lower than short term. Short term needs to include an allowance for job-hunting time / time spent not earning.

ROUGH rule of thumb is that for professional, qualified, experienced software and engineering work over a long term (12 months or more), a rate of about $75 to $100 is pretty normal and expected. (This is AUD, but with exchange rates I'd expect USD to be similar, not identical, but in that region). A real hot shot - perhaps $120 to $150, but you better be hot. If the employer provides equipment (eg PCs, compilers, etc) then knock off about $10 / hr. Short term rates (ie 6 to maybe 12 months): add $10 to $20 / hr.

EVEN ROUGHER: about $65 to $85 / hour is pretty much considered "mates rates" - ie what you charge your friends. At those rates your accountant is likely to be horrified.

PEDANTS CORNER: Rough rule of thumb means just that: rough!
