One problem I used to frequently run into in my earlier days of freelancing was that I'd give a client a quote, start working on the project and halfway through realize that I was charging way too little for way too much work. I had vastly underestimated the scale of the project. Over the past year, I've been using a technique that is glaringly obvious but often overlooked when determining what to charge a client.

Step 1. Create An Outline

This step is rather simple: just write down everything you plan on doing for the project along with how many hours each task will take. It takes some experience to know how long certain tasks can take to complete, however use your best guess when starting out and refine the estimate as you get more clients. Here's an example of a recent estimate I gave a client for the frontend design of an e-commerce website:

  • Research and Planning - 8 hours
    • Competitive analysis - 6 hours
      • What are immediate online competitors and why would customers go there instead of your site?
      • What is needed to maximize conversions (visitors to customers) and what user interface elements can help with this?
      • Which market/audience are catering to and does the current design reflect that?
      • How can we make the site's usability and interface stand out from it's competitors?
    • SEO analysis - 2 hours
      • Review issues in current ranking
      • Outline steps needed to bring the site to front page of Google
  • Wireframe mockups of new design - 10 hours
    • 4-6 wireframe mockups of design ideas/concepts based on research
    • Pick a few, reiterate repeatedly until we reach the perfect layout and design
    • Create mockups for landing page, category page, item page and user pages
  • Full scale, complete/full-detail Photoshop mockups - 22 hours
    • Based on wireframe mockups, the full-scale mockups feature complete design details (nearly a screenshot) so you know exactly what your site will look like
    • Reiterate 2-3 best Photoshop mockups until we reach perfect design
  • Conversion of full-scale mockups to XHTML/CSS/JS (frontend code) - 8 hours
    • Add necessary JavaScript effects and elements, including dynamic content sliders
    • Verify browser compatibility with IE6-8, Firefox, Chrome, Safari and Opera

From this estimate, my client knows that I will be spending 8 hours for doing research on his project, which includes finding out information about his competitors in order to make a strong and competitive interface. Since he's asked for help with SEO, I show him that I will spend 2 hours on it - note that it's not an extraordinary amount of time and that I'm not doing much out of the ordinary, only helping him understand why his rankings are so low.

In terms of mockups, I make sure to clarify to the client that the time estimates I have given will include multiple reiterations of the mockups - meaning I go back and forth with the client until we reach a design that is truly what they want. Outlining exactly what I'm spending my time on adds a level of trust and comfort that improves the overall experience for both myself and my client.

2. Get Them To Agree On The Outline

Without getting into any talk of money, show your client the outline you've made and make sure they agree on it. Once they acknowledge that it will indeed take you 8 hours to convert the many pages of their site, it's hard for them to downplay the overall estimate that you provide. They know how much work you're putting in and they know that it's unfair to under-compensate you for time and work.

3. Negotiate Your Hourly Rate + Deadlines

Ideally, you tell your client what you charge per hour and they are happy with it. Unfortunately, ideal clients are a rarity that you shouldn't expect. In most cases, you will have to negotiate your rate, where changing just a few dollars can have a big impact on your overall estimate. Like making estimations on the amount of time it takes you to do certain tasks, setting a high hourly rate is something that comes with experience and a strong portfolio. Consider your experiences and the work you're doing, then try to set a fair rate for both you and your client.

Since you already have a good idea of what you're spending your time on, use that knowledge to set realistic deadlines of when you can give your client deliverables. For less intensive projects, I prefer sending at least 2 updates per week outside of normal communication. For more urgent projects, I will typically set smaller deadlines every other day or so. Strong communication and keeping your client in the loop will only increase their sense of satisfaction from your work and show dedication on your part, which is something they'll remember for future work or referrals.

Why This Works For Me

I love this overall process because I know exactly what I'm getting into before my first day of work (surprises are bad when freelancing). I am able to prepare mentally for each day and for each task I'll be working on, which helps keep me organized and on top of work. Using thistechnique, I've noticed that I meet nearly all of my deadlines and end up getting paid more than when I used to quote somewhat blindly. It's basically a win-win for both parties involved.

Are you guys doing something similar to this? How do you come up with your estimates for freelance work?