Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question

closed as off-topic by MichaelT, jwenting, Dynamic, Ampt, gnat Jun 17 at 0:08

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, jwenting, Dynamic, Ampt, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

    
I edited your question slightly to make it a better fit with the guidelines for constructive subjective questions. It might be a good question for Answers.Onstartups.com or the new [Freelancers.SE] (although it's in private beta for 1 more day). That said, I think there might be some programmer-specific insight to be offered here so we can give it a go on Programmers. –  Anna Lear Jul 26 '11 at 1:26
    
Thank you, @Anna. I've noticed in searching that the rates and practices are very different depending on what services are being offered, I hope that specifying that it's for custom software should generate some good answers that fit Programmers. –  Carson Myers Jul 26 '11 at 1:30
9  
@S. Lott: Employers cover an astonishing array of costs for their employees which a contractor or consultant must cover for themselves. So if you want equivalent lifestyles, your hourly rate as an independent must be about twice what it would be as an employee to cover all that. –  Bob Murphy Jul 26 '11 at 2:35
1  
One of the benefits of being a salaried employer is that your job is guaranteed. As a contractor, jobs will come and go, and you will often find yourself going a few weeks at a time with no job. As such, factor this into your hourly rate as well as benefits. I think this is where the 1,000 figure comes from... –  Gavin Coates Jul 26 '11 at 13:59
1  
Pretty much, everybody's correct here. :-) As a contractor, there are extra costs, plus you have to figure on being out of work some. The factor of 2 gives you a wild guesstimate on that. You can get fancier than that - which I do, see below. But it gives you a more effective starting place that an employee rate and working up, and is kind of a sanity check that if your other calculations are wildly below it, you need to double-check them to make sure you're not cheating yourself. And it's an old, old rule of thumb - my sister used it as a marketing consultant in 1986. –  Bob Murphy Jul 26 '11 at 14:52

6 Answers 6

up vote 43 down vote accepted

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!

share|improve this answer
    
I've been playing around with these calculations to see how salaries translate into hourly wages, but I wonder: should I factor in the fact that I'll be building the whole thing myself, as opposed to working on a team in an office with provided equipment and fringe benefits? Or does the responsibility of database/ux/server/network/etc and having to deal with insurance, equipment, etc. just come with being a software consultant? –  Carson Myers Jul 26 '11 at 2:11
    
It really depends on the project. With 10 years of experience and the promise of a faster deployment time for your applications, I'd say the company would be willing to pay premium. My Dad is in the Navy and he heads his region's networking staff. He is actually acquainted with a security consultant (self employed contractor) who does various things including pin-testing/upgrading companies' network security. He makes around 200k a year (when he works that is ;P). Granted, he has about 16 years in the business. –  David Young Jul 26 '11 at 2:31
2  
Building the whole thing vs being part of a team? I really don't think that should be a huge factor. In the end, its results that you need to deliver - be that by yourself or as part of a team. Your point about equipment is a good one - if you provide your own equipment it is reasonable to charge a higher rate - you need to source the equipment, after all, and pay for it, and maintain it, and depreciate it. Insurance and so on is part of your "allowance for retirement fund... etc" as above, depending on how much it costs, again bumping the rate may be reasonable. –  quickly_now Jul 26 '11 at 3:04
    
@quickly_now I'm mostly saying that instead of doing a job at a company who sells software, I'm building and selling the software. I'm wondering if there's a distinction between "what do I cost" and "what does the software cost" that I'm missing -- on top of not being sure what my time is worth, I don't really know the price of software in a situation like this either. Is that something I should consider? Or does the price of software always depend on what it costs to build anyway? –  Carson Myers Jul 26 '11 at 3:14
    
Ahhh... if you are doing this to sell the s/w later, then you are an "ISV". In that case, you are not earning anything during the writing period, and selling it later. Thats a different kettle of fish (welcome to the club). In that case you need a business plan - and a rough idea of how many you think you can sell, over what period, to calculate a possible payback time and amount. Mostly in these cases you charge (per copy) what you think the market will bear. The incremental cost of the next download is next to 0. You want recompense for your time and tools. –  quickly_now Jul 26 '11 at 5:48

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.

Then take what somebody with your level of experience in your field would typically make, and use that as a basis. If you do it that way, if somebody gives you "unpleasant looks and demand for justification", you can trot out your justification.

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... I don't know what I would make over the course of a year doing it, but it would be incredibly low.

Do not underprice yourself. You can always negotiate your rate down, but you cannot negotiate it up. If you price yourself low, not only will you be living on ramen and trashing your self-esteem, but other people won't take you seriously.

Back around 1980, I worked with a guy named Joe at a big factory. Joe had a BBA and years of experience in our field - but he was a line supervisor on the shop floor and wore factory clothes to work. He was full of ideas on how to improve things, but nobody paid attention, because it was "just ol' Joe goin' on about the same ol' stuff".

Now, this was a public company, and it had a couple of employee stock purchase plans with amazing company matching of employee purchases. Joe was retired military, and was on full pension, so he and his wife plowed every penny of his salary into buying up company stock. Around 1980, there was a big run-up in the stock price, and lo and behold... Joe up and quit. He'd cashed in about a quarter of his stock for several million dollars.

A few months later, word came down from corporate: "The Consultant Is Coming". The whole factory prepared for this wondrous person who was being paid fabulous sums of money so he would tell us how to improve things. The glorious morning arrived, a cadre of fawning executives opened the factory door, and there was... Joe. In a $3,000 suit. Joe didn't tell us anything he hadn't told us before, but this time, people paid attention. He and I had been buddies, and I was trying not to double over laughing, and he just walked by and smiled and winked at me.

Carry yourself as if you deserve to be taken seriously. Reasonable people will do it, and you don't need the rest. And the first place to start as a custom software developer is your rate.

share|improve this answer
1  
+1 for an inspiring answer. What's your opinion of the "salary/1000" metric? Is it an appropriate rule of thumb, or just an arbitrary calculation that might work under some circumstances? –  Carson Myers Jul 26 '11 at 2:51
    
+1 spot on, great answer. Your point about not wanting the junk at low rates is true. (And I've been amazed at what people are prepared to pay for me to roll up for a weeks specialised work. I thought the rate was cheekily high. They paid. I generally set my rate quite a bit higher for things I don't really want to do.) –  quickly_now Jul 26 '11 at 3:07
1  
@Carson: It's a good starting place in the US. A big factor in that metric is planning for being out of work, so I give a discount to long-term clients. I also work from home with no commute time, so I usually apply that time to work. And there are fixed costs, like insurance and office expenses, that drop as a percentage of income as your income goes up. So I wind up charging less than salary/1000, but at 50+ hours a week for which every hour is paid, my net income is still higher than when I was an employee spending the same time on work and commute. –  Bob Murphy Jul 26 '11 at 3:13
7  
+1 for the story about Joe. It's so true. –  sevenseacat Jul 26 '11 at 15:58

This answer assumes that this consulting gig is (or will be) your sole source of income.

From a business perspective, "what I want to earn" isn't relevant, nor is what the customer is willing to pay.

You are a consultant, which means you are a sole proprietor of your business services. As such, you should calculate your rate based upon your costs plus the level of profit that makes the work (and the opportunity cost of your deferred education) worth the effort.

Figure out how much you need to earn to cover your expenses. This includes mortgage/rent, utilities, supplies, hardware, software licensing, food, clothes, etc. If you already have a budget, then you know exactly what your expenses are. Use this to figure out what each working hour of your time costs. If you intend to work 2000 hours per year, divide your annual costs by 2000.

Next add a margin that makes the work worth your time. If a 20% margin seems reasonable, multiply your hourly cost by 1.2. If 30%, or even 40% is what you require, use that number instead.

Using this method will ensure that your expenses are completely covered, and you probably will not price yourself out of the market based on what you'd like to earn. Know what you need, what markup you require, and use it.

share|improve this answer
    
Okay, that makes sense, and is easily justifiable –  Carson Myers Jul 26 '11 at 3:00
7  
By the way... in most businesses I know, the employees pay rates are not the cost of the employees. That guy on $40 an hour, thinks he's highly paid... well the cost to the company is typically 2x to 3x that. Places I used to work, the overhead rate was such that engineering labour was charged at $100/hr for the internal cost accounting system. And that was 10 years ago. So when the employees see the highly paid consultant on $120 / hr, what they forget is that this is the TOTAL cost to the company, and their salary is not. –  quickly_now Jul 26 '11 at 3:10
    
quickly_now is 100% correct. –  Paul Nathan Jul 26 '11 at 23:30

I like setting flat rates for popular things, and then I have a list in excel like:

Feature Name | Description | Time to Complete | Price

Which then I add up everything they want and I can come up with a price range. Custom things I normally take a educated guess on...

share|improve this answer
    
I like the excel spreadsheet idea. –  The Muffin Man Jul 26 '11 at 22:16

Determine what you need to live on and add 25% that should be your rock bottom. If you go below this you probably will not be able to fulfill your contract. I am not saying you should accept this, just not to accept anything less than this number.

Figure out your happy number. This number is probably quite a bit higher than your rock bottom. This is the number that if you are making this much then you have what your realistically want and can live happily. Your needs are easily filled and unexpected expenses should not create any hinderance.

Where does your happy number fall in relation to your expectations? If it is lower than market rate (assume 60/hour for arguement) then ask market rate. If it is inside market rate then ask for what you want. If it is above then you have to choose between sacrificing how you want to live, or potentially pricing yourself out of the market.

Update - The $300/hour job is probably a short term (around a week or less) immediate need(Need you here now because we are losing money) consultant. If you luck into one of these great charge what ever you feel your time is worth. If you are a business losing 1million a day, paying a consultant a few grand to get you up and running is nothing. If you can find any non super specialized position with a year time frame it is not going to pay 300/hr.

Stop worring about what you could be making and focus on what you want to be making. You will be happier all around. There will always be the guy that says i could have gotten more. If you try to compete with the Jones you will lose because Bob Jones has a cousin Charlie who does even better. And he has a brother David that made gajillions getting out at the right time in the widget bubble...

share|improve this answer
    
A lot of the time when I see people mention software consultants in a blog or something, it's usually framed as "a $300/hr consultant." For a long time I just thought that that's what software consultants charge, and now that I'm going to be consulting and need to look into that, I'm finding out that it's quite a bit less than that for many people. It's causing some dissonance between what I can ethically charge for my time and what I wanted to make when I was first asked to develop custom software as a consultant. –  Carson Myers Jul 26 '11 at 19:29
    
@Carson - Updated for you to address this. –  Chad Jul 26 '11 at 19:55
    
thank you, I didn't really know how much the time-frame and circumstances of the job affected the rate. –  Carson Myers Jul 27 '11 at 0:36

You should define your rates based on the value you're delivering to the client. If your custom software is going to increase their sales or profits, you better increase your rate since they can afford it and it's worthwhile for them. This is called "value-added"

Never underestimate your own value.

You can charge $20/hr if you want to compete with outsourcing firms, or you can charge $100/hr and frame your solution as a value-add for the business that will increase profits.

share|improve this answer

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