One of the most daunting tasks for freelance developers, apart from setting a good hourly rate for their services, is how to calculate the estimate for a project when asked by a potential customer.

Imagine this situation: after starting your career as a freelance developer, a potential customer contacts you.

First, she describes you the app she wants you to build, hopefully showing you a good requisites document and probably a screen flow or wireframe.

Then, she asks you for an estimate for the whole project.

If that’s the first time you’ve been asked for such an estimate, specially for a big project, it’s normal to feel a little overwhelmed:

How much should I charge for building this?

Oftentimes, even seasoned freelancers struggle when faced with the need of calculating an estimate. Some freelance developers I know actually confess that they kind of do a guess exercise based on the apparent difficulty of the project or its size.

The Importance Of Giving A Good Estimate For A Project

Nevertheless, giving an estimate should not be left to random guesses or approximations. There are several reasons for this:

First and foremost, an error in an estimate is never a good thing. In the best case scenario, it means that your estimate will be way off. Thus, your customer will probably look for another freelancer. Conversely, in the worst case scenario, it means you will work your ass off for less money than you should.

Besides, when offered just a number, a potential client may have the feeling that you plucked it out of thin air, and may require at least a more detailed explanation from you on the reasons behind that number.

Last but not least, it will be a lot harder for you to also estimate the time it’s going to take you to finish the project. That piece of information is actually important, not just for you and your schedule, but for your potential customer as well.

Contrarily, taking some time and effort to do a good estimate has important benefits.

For one thing, you will look much more professional to your customers. They will certainly realize and appreciate that you actually did some work to give them a proper estimation.

Additionally, giving a detailed, complete estimate gives you a chance of specifying the functionality that’s going to be included in the project. This allows you to be certain that you understand exactly what the customer wants you to build.

Finally, you will ensure that your earnings are closer to the real effort and time the project’s going to require.

Calculate The Estimate For A Project, Step By Step

Luckily, it’s easy to properly calculate the estimate for a project, if we follow some easy rules.

Don’t Estimate Costs, Estimate Times And Efforts

Generally speaking, the estimate for a project should always be based in the time and effort that it’s going to cost you.

As a result, you need to decide what’s your hourly rate first. This hourly rate can depend on the project itself.  If you are going to deal with difficult, cutting-edge technologies that are going to require an extra effort, you may want to raise your hourly rate for that project. On the other hand, if you are going to work with technologies you have not mastered yet, you might consider decreasing your rate.

Then, you need to calculate the number of hours that it’s going to take you. However, you cannot do a global calculation for the whole project, you need to use the “Divide and Rule” approach.

Divide And Rule

It would be difficult to calculate the total hours for a project up-front. Thus, what you want to do instead, is dividing the project in smaller sections, modules or functional parts. If needed, repeat this operation until you come up with a group of milestones you can estimate individually.

Most of the times, it’s not usually necessary to take this process too far. I commonly need just one division for small projects and two for bigger projects.

As an example, let’s see how we would do a division for a small project. This is the description for the project. It’s brief and vague on purpose… this it’s the typical first project description you will get from a customer, probably after signing a NDA:

“I need a social network like Facebook (sigh) but that will allow direct chats between several users at once. The users will be able to access via Facebook or other social networks, will have a timeline, and will be able to share their location and some pics.”

Understanding What The Customer Wants

By and large, your customers won’t give you a clear project specification, no matter how big or important their companies are. Hence, before you can even begin to calculate the estimate for a project, you will normally need to make some decisions. Ideally, you will ask the customer to clarify some of these unclear concepts.

However, sometimes this isn’t possible. Other times, the customers themselves don’t know exactly what they want, or can’t explain it easily.

Consequently, you will need to figure out some missing parts prior to segmenting the project in smaller chunks.

In this case, we will make the following decisions for our project’s description:

  • The app will have four sections (a typical tabbar application): timeline, chat, my profile and settings.
  • The backend will have a RESTful API with standard JSON messages and notifications.
  • It will offer social login via Facebook and Twitter.
  • Also, it will allow the users to access via email and password.
  • The app will receive push notifications from the server.
  • Finally, app will be available for iPhone only.

Don’t be afraid to do false assumptions. Later, when you present the estimate to the customer, you can describe those decisions and ask the customer to validate them.

Estimate From Bottom To Top

Once you have a clear idea of what the application will do, you should enumerate its different sub-areas or modules. Then, next to it, write down the number of hours that it’s going to take you. If you cannot come up with a number of hours, you need to divide that concrete element in smaller parts, until you feel comfortable assigning a number of hours.

Finally,multiply those hours for your hourly rate to get the total cost for every item.

Let’s see what this enumeration will look like for our sample app. Disclaimer: this is just an example, with made up hours and a fictitious hourly rate of 50€/h. Your numbers will of course be completely different.


 Number of hours 

 Estimated cost 

1. UI/UX for iPhone


3.750,00 €

2. Dual login via email/pass & Social (FB+Twitter)


1.500,00 €

3. RESTful API client & server communication


5.250,00 €

4. Geoposition & Location Services


750,00 €

5. Chat


3.250,00 €

6. Push Notifications


1.750,00 €

7. Final Tests & Upload To App Store


750,00 €


When you have finished with all modules or subareas, you will have a subtotal amount. Next, you should take into account applicable taxes or discounts to that subtotal amount. The result will be the final cost for the project.

Additionally, you can easily calculate the time that the project’s going to take you. In order to do this, sum all the hours for the different modules, and then divide it by the number of hours you can devote to that project per week. In our example, the sum is 340 hours. Let’s suppose we have only 25 hours a week available. The project would take us 13,6 weeks, approximately three and a half months.

A Template For Your Estimates

I recommend you to have a template document where you write the different parts of the project, alongside the time in hours required to complete them, and then a calculation on the cost based on that time.

As a bonus for the subscribers of the Digital Tips mailing list, I have prepared a version of the template I use to calculate the estimate for a project, for you. It’s prepared so you just have to change the concepts, adjust the hourly rate (in the “Estimated cost” column), and specify taxes and discounts (if any). The template will take care of the rest and will update the time distribution chart. Here’s what it looks like:How To Properly Calculate The Estimate For A Project. Estimate template.

If you haven’t already, join the list and grab your copy of the estimate template.

[mc4wp_form id=”2750″]

❤️ Enjoying this post so far?

If you find this content useful, consider showing your appreciation by buying me a coffee using the button below 👇.

Buy me a coffeeBuy me a coffee

Be Honest, Be Transparent

As you may have noticed, this way of giving estimates to customers is completely transparent. You might think it’s too transparent. After all, you are exposing your hourly rate, and how much time you need to complete the different parts of the project.

That’s completely on purpose. My golden rule is: always be honest, always be transparent.

If you feel that you are not charging enough for a project, instead of making up hours or faking modules or concepts, raise your hourly rate.

Also, you shouldn’t be afraid of your customers comparing your times or rates line by line. Good customers will not do that. They will appreciate the honesty and, if the estimate fits their needs and budget, hire you.

If you want to become a successful freelance developer, trust is probably the most important asset you need to nurture. Being transparent and honest will make your customers confident when working with you. Thus, they will be more likely to hire you or ask for your services in the future.

Don’t Spend Too Much Time On This

It is important to realize that you are giving an estimate, not a project specifications document. You don’t know if the customer will finally hire you, or will opt for another developer. As a rule of thumb, you should spend less than half an hour in an estimate.

Therefore, don’t spend more time than needed to deliver a good estimate. It’s always a good practice to tell your customer that the estimate, while being as accurate as possible, might be subject to changes when a real project specification document is built and you agree in all the features and implementation details.

Fortunately, practice -and experience- makes perfect. The more estimates you do, the faster you will elaborate them and the more accurate they will become.

In Summary

In this post, I described how to properly calculate the estimate for a project as a freelance developer. Even though this task might seem daunting, specially for big projects, it’s actually not that hard. All you need to do is apply some techniques and divide the complexity in manageable chunks. Then, assign the amount of time and effort to those small parts, and calculate the total cost for the project.

Did I miss something? Do you have a suggestion or technique to calculate the estimate for a project of your own? Don’t hesitate to leave a comment!