I regularly hear about how hard it is to get an accurate estimate from a freelancer or agency.
No one likes surprises during a project. Whether it’s the scope expanding in an unexpected way or new research that uncovers extra work, the end result is that costs balloon and the project runs the risk of failing entirely.
There are several reasons why this happens. Let’s go over what those are, and walk through the proven method we use to create accurate estimates based on real data.
Set Clear Expectations in the Sales Process
Start any relationship with a set of calls and an exchange of deliverables to establish clear expectations on both sides.
We work together with our clients to discover the scope of a project. The client will provide what they have on hand, and then we, as the experts, make recommendations about what else we need to estimate that work accurately. Our job as the expert is to educate them about the digital design and development process, and their job, as the client, is to educate us about their company and goals.
What deliverables can you exchange? An agency should send samples, a brand book, and a client guide (or another type of process outline). An agency might also provide some free consultation. Don’t send or expect an estimate at this stage. It’s too early to start throwing numbers at the wall to see what sticks, and down that path lies dangerous, inaccurate estimates.
In return, a client should provide a scope document, any quantitative data (like analytics), any qualitative data (goals and business strategies, user feedback, etc.), an ideal timeline, and any budgetary constraints.
Identifying risks is crucial. If you’re on the client side, set defined boundaries so that the people you hire can be creative within them. For instance, if you’re trying to launch a new website so that you can attend that yearly conference and show off your new product, you need to share that date with your team so that they can meet your deadline. If you’re on the agency side, count the number of stakeholders who will be involved in the project and consider how communicating with them will affect your timeline and feedback loop.
If there’s confusion about what “scope” means later in the project, you can bet it’s because clear guidelines were not established in the sales process.
Use a Team-Based Approach for Estimating
Setting expectations is only half of the estimating process. The other half is getting the team involved to help create the estimate.
At Phuse, the designers and developers who estimate on projects are chosen because of their expertise in particular areas. If it’s a WordPress project, we’ll get a WordPress expert to do the estimating. Ideally, the one doing the estimating is the same person assigned to the project when it begins.
Once the estimate is complete, and it has been vetted by several people, we relay it to the client and get additional information from them as needed until we reach an estimate that both the team and the client are satisfied with. This back and forth makes sure that everyone is actively involved and has a say in the end result, which inevitably results in more accurate estimates.
This transparent team effort allows us to craft an approach to any project in a short time. By the time the estimate is shipped we are able to identify:
- The size and scope of the project
- Areas in which we need additional information
- Potential risks that could change the scope, timeline, or budget of a project
- Project constraints
- Whether or not the project is within the client’s budget range
Use Spreadsheets for Breaking Down Estimates
To actually create the estimate, we use a shared spreadsheet. (For the clearest view, I’m going to approach this process from the agency side, but clients will find this process equally valuable.)
I’ve uploaded our estimate spreadsheet template to Google Docs. Check it out, and feel free to use it for your own projects.
Once you duplicate a new sheet from the template, the rest is simply a matter of filling in the details. Add the scope of the project in the left columns, and estimate hours to the right.
The Scope column is where you put the name of a specific task, and the Details column is where you list any constraints or assumptions. Each item in the scope can have multiple phases. In the template we include Brand Strategy, Content Strategy, User Experience, Design, and Development. Estimate minimum and maximum hours for each of phase a particular item must go through. If an item is limited to one phase only, leave the rest of the columns in that row blank. Don’t be afraid to add or remove phases as needed to fit your own process.
Be as particular and detail-oriented as the information you have on hand allows.
If the suggestion to use spreadsheets makes you groan, consider everything Phuse accomplished when we moved to spreadsheets in Google Docs:
- We saved time on scoping
- We doubled down on collaboration
- We reduced the probability of calculation errors
- We added Communications, Quality Control, and other operational costs into the estimate as rules, rather than on an “as needed” basis.
This one simple change immediately resulted in more thorough and accurate estimates for us.
Example Estimate: Landing Page
Now we’ll look at an example to see how this works in practice.
Let’s assume we’ve been tasked with building a new landing page. The client wrote the copy and came to us with a logo, so our tasks are to wireframe, design, and develop a single page website. The client told us the deliverables are static HTML/CSS with a Mailchimp email capture field on the page to measure interest in their new product. We’re also responsible for launching the site, and it needs to be responsive.
Here’s what our team came up with (click here for full spreadsheet):
A few things to note:
- Communications are set at 15% of the subtotal; Quality Control at 10%. These numbers can and should be adjusted to fit your process.
- Project Management is not included. We don’t usually charge for Project Management at Phuse, but if you do, be sure to add it to your spreadsheet as a percentage of the subtotal.
- The Brand Strategy and Content Strategy columns are both empty. If you remember the brief above, this is because the client wrote their own copy for the site, and came to us with a logo we could use. You should determine these sorts of things during the sales process.
- The Landing Page does not include any custom illustrations, graphics, or icons. Nor does the estimate including miscellaneous work such as sourcing stock photos. If those were things the client wanted, we would add them to the spreadsheet as separate line items and estimate minimum and maximum hours for each.
Once the client is happy, and the scope is fully accounted for, then congratulations, you’ve arrived at an accurate estimate…right?
Base New Estimates on Past Data and Experience
At this point, our example estimate is only accurate in theory. Before you send it to the client, be sure to validate your theory by comparing your estimates with past experience and, most importantly, real data.
At Phuse, we use Harvest, so we can quickly generate and review reports on past projects—how much they cost, and the effort it took to complete them. By finding a past project of similar size and scope as the new one we’ve been asked to estimate on, we can give a more accurate estimate.
The only way you’ll be able to get accurate numbers for your own agency is by using a tracking tool like Harvest and learning from the data. If your business is relatively new, it’s a bit of a chicken and egg scenario—you need to have experience doing similar projects in the past in order to give accurate estimates in the future. Over time, as you gain experience and learn more about yourself and your process, your estimates will become more accurate.
From a client’s perspective, this means a few things. First of all, look for a team that has worked on a project similar to yours in size and scope. Be sure to ask for samples and compare them to the project you have in mind. Second, ask yourself if you’ve fully uncovered the scope of your project. The worst culprit for failed projects is a poorly outlined scope.
However, we all start somewhere. Here are a few tools that will help you cover your bases:
- Hillary Weiss at the Crew.co blog recommends putting together a client survey
- Have a checklist of operational necessities with questions like: who’s going to handle hosting? What file format do you want the deliverables in? Who is responsible for migrating content from the old to new website?
- Create a responsibility assignment matrix.
Don’t Forget Overhead and Padding
Our goal with estimates is always to come in at or under the low end of the estimate. Why? Because we want to exceed people’s expectations.
This requires padding your estimates accordingly. Notice how the Communications and Quality Control time above were added automatically to the estimate above based on a percentage? We chose that percentage based on past data—plus padding.
The hard truth is that you can’t foresee all of the bumps in the road at the starting line of a new project. The universe may be conspiring, unseen, to throw you off the rails. Padding your estimates for hidden stakeholders, unforeseen requests, and curve balls is not just good planning, it’s good business.
Be sure to keep the type of client you’re working with in mind when it comes to padding your estimates. Some clients require more communication and hands-on time than others.
Tips for Estimating
Here are a few more tips that will help you estimate better.
- Break things down. Then break them down again. If a page has complicated elements on it that need to be designed or developed, make sure to add line items for individual elements. For a dashboard, this might mean quoting for the top-level dashboard, then breaking widgets on the dashboard into individual line items.
- Think about the user’s journey. Understand what pages a user needs to see as they go through the app or website. Sometimes a client might have asked for things like a login form but may have forgotten about a user’s need to reset their password and the 3-4 additional pages that are required to do that effectively.
- If you’re doing integration, add padding for existing environments. Our development team came up with a checklist of things they look for in existing environments that cause problems (i.e. lack of test-driven development, documentation, unfamiliar languages, etc). Do you use a similar tool? Why or why not?
- Think about what will be required in getting the project set up, launched, and documented. For us, this includes things like:
- Content import
- Environment and set up for development environments
- Training clients on CMS systems
- Documenting CMS systems
- API integration
- Individual icon design or graphics
- Don’t be afraid to pitch discovery. Some projects require a bit more time to discover how long they’ll take and create an accurate estimate. When in doubt, leave it out. Explain to the client that instead of shooting into the dark, you’d like the opportunity in a paid engagement to research what’s involved and come up with an accurate estimate before moving forward. Most people will be open to this if you explain the sound logic behind it and come at it strategically.
Practice Makes Perfect
Estimating on digital projects is hard. A study in the Journal of Personality and Social Psychology (wiki) showed that most people are not good at estimating time at all. Everything from how long it’ll take us to drive up the street to a neighbour’s house to how long it takes to paint a room are wildly inaccurate guesses.
In fact, every estimate is a guess—that’s what the word “estimate” means.
That’s why you need to use your team, work closely with your client, base your estimates on real data, and utilize a spreadsheet that automatically adds padding and does the math for you to consistently arrive at accurate estimates.
You also need to educate your clients throughout your time with them. The project you’re working on with your client is rarely their only responsibility. It’s your job as the expert to teach them and collaborate with them the whole way through. No project comes without risks, but starting a new relationship with this kind of transparency is beneficial to you both in the long run.
I hope you find the spreadsheet template useful. Use it, modify it, and please leave your thoughts and questions in the comments below.