How Much to Charge as a Freelancer
jamiebegin.com
jamiebegin.com
I charge extra for anything I don't want to do. It's $300/hr for VB6, Crystal Reports, or MS Access stuff. I know the client can get someone else to do it cheaper. They frequently tell me as such, clearly missing the point that I want them to get someone else to do that shit. There is no way that stuff helps my long term development.
No, I don't stay 100% active with these prices. I have a steady 20 hours a week of work at $100/hr. Does that make me more or less rich than a person working 40 hours a week at $50/hr? Hard work is for suckers.
People complain about me being expensive until I release the first milestone. After that, they tend to shut up about the price. What's cheaper, a $25/hr developer from Croatia who takes 6 months to deliver the project, or a $100/hr developer who takes 2 weeks, with the added bonus that it actually works?
Something that always bothered me when I was a working stiff: I was always evaluated for pay based on how old I was, whether or not I was married with kids, and whether or not I owned my own house. No, no, no, you pay me based on what I can do, not on what I need. That's why (amongst many other ethics-related reasons) I consult now.
Why are you comparing a bad developer from Croatia with a good one from somewhere else( USA I assume ). The situation might as well be reversed, you can't assume someones skill from their geographical location.
You most certainly can. I can tell you that the average developer hired from India will have a significantly reduced skillset than one hired in the US. If that's not polite in civilized company, well then, tough.
That said, it's largely irrelevant. What's truly relevant are culture differences and you do not want to deal with them. Hire locally. If you're in Croatia, hire in Croatia. If you're in India, hire in India. If you're in the US, hire in the US. The reduced amount of grief and clear communication is worth it. Never-mind that you're in the same timezone as well.
From their geographic location, I can assume that they are likely to charge significantly less than me.
From the quality of just plain not being me, I can assume they aren't as good as me. I have yet to have experience prove this assumption wrong.
I've worked on projects with other developers in San Diego, Chicago, Miami, Iran, India, Croatia, and many other places. They've all been pretty crappy developers whom I can only imagine lied about their credentials, because I just can't imagine how it is possible they make any software for anyone. The client has eventually fired them all because they realized what a bad deal they were. The only difference between them was the hourly rate they charged, meaning there were often more from India than San Diego.
That said, I spent 2 months in San Francisco this summer and was able to find a job for higher rate just because I was there. I guess it comes with territory. :)
On the other hand you cant say about quality. Ya India has lots of crappy developers, but that is just because there are way to many developers. Good ones dont need to market themselves too much and hence most people would have never heard about them outside their circle of clients.
Maybe it's a vestige of a pseudofeudalistic time in which one measured their worth relative to the worth of their master. "You plow the fields owned by IBM? Well! My lord and master is GOOGLE. He makes your puny duchy look like PeopleSoft. FOR THE EMPIRE!!!"
My take-home pay is higher than it was working 50+ hours for salary at the hotshot San Francisco success story where I was working last year -- and I don't even have Bay Area clients, at the moment. People in Oregon and Washington are paying me this well.
I'm not sure I've ever talked to someone who moved from hourly to daily and regretted doing so.
Right now I'm doing some actual consulting (in contrast to contract work), and being available by the hour has been helpful. I turn up at a couple of regular meetings; when some issue comes up that I can help with, I help.
On a day rate, the expense is large enough that people only want to call you in when there's something they perceive as big and serious. But when it's just time worked, they're happy to grab you for a short chat. Which often turns into something larger. And it makes it easy to leave the contract open; I've been doing this with one client for circa 6 months. That has let me influence them a lot more than a short burst of days would have done.
* Make it harder to negotiate good rates: https://news.ycombinator.com/item?id=3420782
* Are a pernicious drag on your client relationships: https://news.ycombinator.com/item?id=4103417
* Deprive you of opportunities to do lightweight things for free without setting weird expectations: https://news.ycombinator.com/item?id=4102639
* Obscure the actual value you're providing to clients, which isn't simply getting technical things done: https://news.ycombinator.com/item?id=4103207
* Are part of the difference between transactional contracting and consulting: https://news.ycombinator.com/item?id=2909923
It's a bit lame, I'd like to be a better person who can just do a normal 8 hour day, but so far I have always failed. One reason I like freelancing is because I can only charge for the hours I actually work. It's also a major reason employment is not for me.
Real productivity of an 8 our day is more likely in the range of 4 to 6 hours. But you still put 8 hours on your timesheet.
The next big improvement is moving from daily to per project :)
Estimation is usually so bad that you will never a curate ly estimate your cost base so will always resent the last month of the project.
Hourly rate works fine for situations where one day you work 3 hours, and another day - 9 hours. The day-rate by default assumes that you at least work for 8 hours. So why bring this unnecessary constraint?
Also, why is a week-rate more ambitious?
- Less time spent tracking hours
- Less risk of client quibbling about time spent on each task
- Disassociation from hourly rates (e.g. a large client may pay $20K a week for an important project, whereas people may balk at a $500-1000 equivalent hourly rate)
- More likelihood of working on larger, more important projects (less risk of the project falling apart, not getting paid, etc)
A daily rate will limit your client pool, but in a good way: bigger, more serious, and richer companies. A weekly rate will do this even more-so. But if you can reach the big fish and convince them of your value, more lucrative.
See more of tptacek's posts on this topic: https://www.hnsearch.com/search#request/all&q=tptacek+hourly...
But I had experience of long-term working with the client, where there are no milestones. There is just an unlimited continuous flow of work to be done. So if you charge daily, that most likely implies 8 hours of work per day. Basically, it is more like a regular employment, but with a freedom of working whatever hours you want, including zero.
I was just summing up the worked hours at the end of the month and billed with it.
The client will ask for a specific thing to be done. Give the client a specific price for that thing. That's it.
How you calculate that is your business. Personally, I figure out the worst-case scenario and price it for that. If I finish earlier, because of my brilliance, well we can just call that profit.
You're happy because you just finished something high quality and in good time. The client is thrilled because they knew what they were going to pay, got what they wanted, and got it quickly and professionally. The client didn't have to worry about hourly rates or daily rates, unexpected surprises, etc. they knew what they were going to pay. You took the risk out of the transaction for the client and made a good amount of cash for yourself. Everybody wins.
Also remember that part of the idea of upping your billing increment is not accepting piecemeal work.
In my experience it is simply unworkable: the client will provide the vaguest of specifications and providing them with a set-in-stone price raises unrealistic expectations. The requirements are simply too fuzzy at the outset of a project to be able to price it accurately.
Of course the solution only becomes more concrete as the project progresses and requirements change and crystallize based on feedback. This is expected behaviour of course, but I've never been able to reconcile it with project-based billing.
Do you simply allow a certain buffer zone and take the good with the bad?
Experience helps with the above. Obviously you can never know precisely how much effort something will take. Stuff comes up. Even if the work itself is stupid easy, it might take you 2 hours to find the exact line of code that needs to be changed and sometimes it takes 5 minutes. And you never know which is which. So charge for 2 hours.
> the client will provide the vaguest of specifications and providing them with a set-in-stone price raises unrealistic expectations.
Clearly define the parameters of the project. Clearly define what you will do. Don't do any more or any less than that.
If the client needs something extra done, and this happens, simply price that out separately.
> The requirements are simply too fuzzy at the outset of a project to be able to price it accurately.
Example?
I don't want to give you advice one way or another, because I'm not Indian, so anything I would say is bullshit. Talk to some developers in India who aren't just above average, but are in fact, stellar. Some of them are probably making good money. Ask them what they do, they'll be able to give you the best advice for the Indian market.
If you spend a couple of hours trying to concentrate before realizing you didn't really get anything done, you're just messing around and you need a break, take the day off and don't charge for it.
It of course depends on the work you do and so forth. If you are contracted by day for a job that require 8 hours of availability time, then you should probably work those 8 hours.
Being one step removed from the customer means I don't have as much bargaining power to charge based on the value I'm providing. The firm I'm working with has already charged based on value, and now I need to fit within their budget.
I know the answer is to "break out" of this situation, but especially as a programmer (and not designer, marketer, etc) I've found it difficult to charge based on business value when there is a sea of programmers out there willing to work for way less than me. Just to be clear, I think this is good advice, but boy, implementing it is a daunting task.
Think, for example, about the food you buy. For most people, there are alternatives available that are much cheaper. E.g., you could be buying beans and rice in 10 lb sacks. Or you could be haunting grocery stores for scratch-n-dent sales on generic food.
Now think of a specific purchase you made and ask yourself: Why do you pay more than the minimum? What are your motivations, and how do you make your choices?
Sometimes price matters a lot, and it always matters a little. But it's rarely the biggest factor in a purchasing decision.
Charge by feature, estimate in your head how long a feature will take, multiply by your secret hourly rate, and say that will cost X dollars and be ready at the end of iteration one.
This is good for several reasons
It ties the billing cycle to a feature a client wants instead of to your time which they could care less about.
It focuses on the clients features - so you are always talking their language. I am trying to get client to write a press release for the feature (think scrum story but more visceral)
The aim is to break down the project into chunks the client cares about and thinks about in their terms and then to charge for it in increments that are of value or interest to the client. Usually this is on the order of days - this way you are charging very small fixed cost projects - reducing your risk whilst getting off the per hour billing mindset
It also allows you to find any way, some way to measure business value from the feature (hits per day, minutes saved per sales call - whatever)
Being the person who talks in their ideas, and shows how they brought in more revenue or higher kPI is a good place to be.
Then raise your secret hourly rate, and features just get more expensive. Instead of arguments about hourly rates and full time salaries
This involves the client more, making it more of their project, and also it changes the dialogue from "Should I hire them?" to "Which features should I hire them to do?"
The only thing I would change is that your expected time per feature times your hourly rate is the floor cost of each feature. Be aware of your costs but do not charge solely based on them. If feature X is a huge win for the client but is easy for you (due to your years of experience, built-up tech-stack, or home-built tools), don't give it away for peanuts!
It's also useful to have a check - more than a three day estimate basically means its too big - redo the press release
As for the floor cost - maybe. You still need to keep your feet on the ground at some point so increasing your rates and multiplying up is a fine approach. When you have an obvious winner go for much bigger rewards - but not everytime
Clients who have a little technical knowledge are the most dangerous. I have one with a large-agency background in the mid-'90s who quibbles every single time over the cost, whether fixed for per-hour. Because he expects it to always be a quick 5 minute/1 hour fix. So even on fixed price, he's sat there going "Well this costs $400, it isn't complex and will only take 2 hours, so they're charging... $200/hr?!!". Cue the same old justification of effort fight again, where "because there are unknowns and it could take 2 hours to debug the network issue" doesn't justify charging for it, because computers are simple, I'm the expert and I should know what I'm charging for...
Now that is a much easier argument to have - plus if I have many other features I can swap some around, split X into xx and xy and so on. Talking about features for the client is always good
His (free) eBook is sitting on my Google Drive. I should get to reading it soon.
---- Essential ----
* Basic site (static, up to 5 pages)
* 8 extra pages
* WordPress + Blog
* Mobile/Responsive Layout
* Social Media Integration
* Usability, feedback by professionals
* Basic SEO
---- Additional ----
* Maintenance 24/7
* Setup server and domain
These packages have a fixed price that has been pre-estimated in hours. Obviously not every project is them same, so sometimes you work more and sometimes less that what was quoted. For out of the ordinary features such as complex grids, user profiles or highly dynamic sites I estimate the extra work in hours as well and add it to the total cost.Then I divide the project in 3 milestones: Pre-Production, Production and Post-Production. A 25% deposit must be payed after signing the contract, another 25% after Pre-Production and the rest on completion. The contact also clearly states that any major changes in layout, design or content after the Pre-Production phase will be quoted extra.
This has been working for me over the years. Clients seem happy with the process.
A word of advice. Never, ever set yourself up for this if you're a solo freelancer, unless there's 3 of you (or at a pinch 2).
The time the client needs this will be when you're a) on an airplane b) in bed with the flu c) on holiday d) having a romantic evening/weekend with your other half.
Nice money and the client likes it, but you have signed away your entire life in exchange.
There is an awesome book about that. [1] It tells you how to set the right price and the right relationship with a customer. The philosophy is: firstly to show them the value you will provide, secondly to be able to set the right price, and thirdly the fusion of both with the contract. At the end, it is not a question to set an hourly rate and count the hours; it's about how much value you can give them, and set the right price. Then consultants build a contract with rules that reflect that (and protect them).
You have a lot of explanation inside with different chapters. It is a must read for me; even just the chapters that explain each ways to set price are a gem. You can easily adapt it to any business.
It is also similar to an post on HN some weeks ago. [2]
[1] http://www.amazon.com/Value-Based-Fees-Charge-Youre-Worth/dp...
I used to do cloud consulting from an LLC after doing client-facing enterprise AWS consulting.
Consulting experience TLDR braindump:
* Enterprise shops look down on people that don't charge enough.
* Some shops feel entitled to get a bunch of stuff for free. Hold your ground and explain you have bills to pay and can't set a new precedent. Your time is valuable.
* Free assessments are an easy way to determine how much crap and hand-holding you'll have to deal with. It'll also let you show you know what you're talking about and be able to
* Research solutions before raising proposals. Anything you raise will basically be put on you to support.
* Raise prices every year or two. It'll be less of a surprise if it's a fairly regular thing and it's mentioned ahead of time.
* Work on- vs. off-site has +s and -s.
* Work with fun clients that pay on-time and don't do hourly. Hourly is for noobs that take too long. Milestone-based at the same comfortable hourly rate puts the onus on you to always deliver.
* Getting a % of the milestone upfront for a good faith deposit.
* Don't do Net 30 or + ever... Collecting will be a hassle. Net 10 -2%, 15
* Master agreement
* Put milestones in writing to be clear. (Contracts are only as good as the relationships on which they are written.)
* Engage with the highest ranking person you can, and you'll more or less own the place. (Just don't get too cocky, instant hubris.)
HTHThat said, once you are consistently busy, you should raise your rates, just like the article says. When clients ask you about that rate, just say, "Well, that's what other new clients are paying." Nobody can really argue with that.
I've also found a lot of value in having a high headline rate that I discount when I actually want the work.
And I mean friends. You're not going to get business out of a guy you just met. You're probably not going to get business out of many people the first time they ask you. Never ask them if they have work they need done, let them complain about not being able to find someone, then mention you do that sort of work (whatever it is, if you're smart you can figure it out well enough to do better than the majority of people). Don't back down on rate, they might balk at first, but when things get dire for them and they still can't find anyone, they'll remember you.
Avoid debt like the plague. It'll make you a slave to a constant, regular income. I have constant, regular income, but I also know I have urges to take 3 months off at a time. Debt is the mind killer. It's a lot easier to face the prospect of losing a contract when you know you have 3 months before you need more money, not 1 week.
EDIT: and definitely lie to your in-laws about how much you work. A) Few people my own generation can get over "not having a good job", fewer still of the older ones. And B) they might think not working for a cluent means you're not busy and they can make demands of your time.
I am currently on a sabbatical of sorts, and am keeping the option of doing freelance work as a way to extend it, but so far, all of the 'dude, this would be great for you' opportunities from friends haven't panned out. Part of the problem might be that I don't really need the work, so I haven't been following up too aggressively, but it still feels like I would probably have to go outside my network to land the first gig.
I had my fisrt gig within a month. in that month, I turned down a couple that would have been too low of a rate or bad work.
I don't think of it so much as luck as "having many irons in the fire". None of the opportunities you will end up pursuing will be that good of a chance of coming through, we just kind of delude ourselves into thinking certain ones are better than others. It just becomes a game of stacking up enough low probability opportunities that eventually one of them comes through.
I was having lunch with a former colleague, and his cell phone rang. It was his boss "help! Two of our programmers just quit! Do you know anyone who could start, like, tomorrow??"
Where do I get contracts from? The usual suspects - jobserve, networking, and various other places. I think it's probably worth pointing out that having had a well-completed LinkedIn profile for over 10 years, it's never brought me anything.
Edit: drop me a line - happy to help, heck, this might be the beginning of a technical writing dynasty! ropley at gmail dot com.
Currently in a situation where a contract was offered to be extended again, but my roles have creeped way outside of coding/documentation into screencasts (which reqd purchasing a better machine + Adobe CS), engineering support, and sales trips in the future.