The best tip I ever learned is don't price by the hour, price by the job. You can use an estimate for the number of hours you think it will take as the basis, but don't tell the client your estimate, just say, "This job will cost $X, and here is what I will deliver."
The reason this works well is because it benefits everyone. It benefits you because you know what you are going to make, you don't have to worry about the client saying "oh can we make this one change it will just be an extra hour right?".
They benefit because they know the cost upfront and don't have to worry about overruns, and they know exactly what they are getting from the detailed spec that is required to make this work.
If you want to start doing fixed price jobs I would suggest that you do the following first to avoid learning some very expensive lessons about your ability to estimate jobs:
(1) read the spec for a job that you're going to do on an hourly rate basis
(2) make a very detailed layout of how long you think you will spend implementing each part of the spec
(3) total it all up, write down the number and multiply by two, then multiply by your hourly rate
(4) write down the resulting number as what you could have quoted your customer with a huge safety margin of 50%.
(5) next, proceed to do the job as you planned, hourly rate
(6) keep track of your time (you need to do that anyway, but do it in a bit more detail, what part of the spec took how long)
(7) add that all up, multiply by your hourly rate, compare with the number you got in step (4).
If you end up 20% below or further than the number you got in step (4) you are more or less ready to try (small!) fixed price jobs.
Keep in mind that it only takes one big fixed price job to sink your reputation or to totally eat up the profits of many otherwise successful jobs. It took me a really long time to get good at this.
Keep in mind that it only takes one big fixed price job to sink your reputation or to totally eat up the profits of many otherwise successful jobs. It took me a really long time to get good at this.
Do you mean sink your reputation because you underbid and then can't afford to finish the project, or something to that effect?
Depending on how bad you get it wrong it might actually get to that. If you're lucky you will lower your margins, if your less lucky than that you'll eat into your savings, if you're very unlucky then you might have to tell your customer there is no way to deliver at the agreed upon price.
And that can get very ugly, especially if you cause bad things to happen to your customer.
If, and ONLY if, you're in a position to quote around 10x or above your desired hourly salary on your absolutely nightmare worst case scenario, do you do a fixed price bid. ONLY then.
In all other cases, your position is that you're a specialist hired by the hour, at a (significant!) premium to allow for the fact that you can be dismissed without cause at moment's notice, and any estimates are best guesses, given the information available at the time.
Also, keep a private file of any and all diversions from the basis on which you gave any estimate. They are bound to exist (pretty much from day one) and except for the very most trivial projects, your estimate WILL be wrong.
Optimism comes easy to our trade. Learn to embrace pessimism, plan for the worst, expect the worst and then pray that your plans weren't too optimistic. "This time it's different"? When pigs fly.
you can be dismissed without cause at moment's notice
This is the case for most employees also. At least it's always been my experience. Only if you have a contract with a guaranteed term and specific early-termination conditions can you assume that you won't go in to work tomorrow and get fired.
They benefit because they know the cost upfront and don't have to worry about overruns
I mostly agree, but just want to point out that cost overruns aren't a function of charging an hourly rate. Overruns are the result of poor estimates of the time/resources required, or a soft or changing spec. Having a good initial spec is a must. But if the spec changes, and results in extra work, the per-job price should also change.
Per-job pricing really shines in areas of high competence. When productivity is high, instead of charging based on the rate of production (dollars per hour), charge based on the business value of the final product. Assume widget X is worth $1000 to the customer. From their perspective it doesn't really matter if it takes 1 hour (high productivity) or 100 hours (low productivity) to complete - the received value is the same. A high performer who charges for just the hour is leaving money on the table.
The reason this works well is because it benefits everyone. It benefits you because you know what you are going to make, you don't have to worry about the client saying "oh can we make this one change it will just be an extra hour right?".
Even for per-job pricing don't be afraid to ask for further compensation if the scope expands. Otherwise you're leaving money on the table. If the original spec is for X and it expands to X + Y, don't do Y for free. Few businesses will give away a non-trivial Y just because a customer purchased an X. Freelancers should be no different.
Repeat business doesn't require some arbitrarily long length of time to pass in order to qualify as "repeat business". If a client comes back on the same project with new ideas and features, that's an expansion of scope, and an instance of repeat business.
The problem, however, is that no matter how detailed or well-written your spec is, it's very likely that it'll change, either as a result of business or product needs. This is especially common with startups. The best compromise that I've seen is to charge hourly, but make a solid estimate that you can stick to. If the specs change, you don't need to go back to the client or ask for permission to proceed. You just do the work.
The reason this works well is because it benefits everyone. It benefits you because you know what you are going to make, you don't have to worry about the client saying "oh can we make this one change it will just be an extra hour right?".
They benefit because they know the cost upfront and don't have to worry about overruns, and they know exactly what they are getting from the detailed spec that is required to make this work.