Problem: How to estimate the price of a given code project as a freelancer and as a client?
Estimating the price of a freelance software project is a common problem for both freelance developers and clients. On freelancing platforms such as Upwork, clients must associate a realistic price to their freelance project. On freelancing platforms such as Fiverr, freelancers must find a reasonable price for the different gigs they offer. In any case, either freelancers or clients must set the right expectations, or negative ratings and disappointments are guaranteed. This is hardly a great business strategy.
So, how to estimate the price for a given software project?
In this tutorial, I’ll give you a simple step-by-step formula to determine the price. But take it with a grain of salt—finding the sweet spot is seldomly as simple as following a formula. Yet, I found that this formula helped many FINXTER freelancing professionals and course students.
You can watch me elaborate on these concepts in the following short YT video as you go over the article:
Here are the three steps summarized:
- Step 1: Find Business Value B and Multiply It With Your Confidence C to Obtain Expected Business Value B * C.
- Step 2: Adapt the Expected Business Value by Market Factors +/-50%.
- Step 3: Price Negotiations and Modifications to Obtain Range between Freelancer’s and Client’s Estimates.
Let’s see what’s behind these steps in the remaining article.
Step 1: Find Your Expected Business Value
Many people tend to start with their hourly rates. Especially beginner freelancers fall into this trap. They’re used to getting paid by the hour as employees. But nothing can be further from the truth if you’re entering the business arena.
Rule: You are getting paid by the value you deliver and not by the number of hours you put in.
If you understand this one rule, you’ll thrive as a freelance developer. If you don’t understand it, you’ll struggle badly.
It’s often easier for clients to absorb this rule—which is why I recommend that every freelancer hires other freelancers from time to time.
As a client, you simply cannot pay more to a freelancer than he’s providing you with value. Even if you wanted—you couldn’t pay $10,000 for a website if the business value of this website is only $10 per month. Well, some clients will do it but it cannot be the foundation of a solid freelancing business. Clients and businesses think in terms of Return on Investment. They want to see tangible results or they won’t pay you adequately.
For you as a freelance developer, you need to figure out how to deliver huge business value in a very short time. If you can solve this one problem, you’ll become very, very rich.
Let’s dive into three project examples:
- Project 1: Fix a bug of a web app where every day of downtime costs the company $100,000. In this case, the estimated business value is $100,000 if you think you can fix it quickly. You can charge $10,000 for a quick fix within a day and the company will gladly do it—even if it costs you only a few hours to do so.
- Project 2: Write a web application selling services to 10,000 customers per month with an average customer lifetime value of $100. If you can be sure to deliver this with your web application, you could charge $1,000,000 for this app and the company would get their investment back within a month. However, you can never be sure so you need to add a significant margin of safety. Let’s charge them $50,000 for the reasonable probability of achieving this business outcome.
- Project 3: Write a small Python script that scrapes data from a website and stores it in an Excel file. The client will save, say, 1h every week due to your script so 52h per year. Every saved hour is worth, say, $10 for the client. The business value is 52h * $10/h = $520 per year. If you charge $300 for the script, the client can justify it.
You see that you must use common sense to estimate the business value. It’s a highly imprecise measure but over time, you’ll develop a knack for it. In many cases, your intuition is just about right.
Note that the business value is completely independent of the time it took to finish the gig. Some clients may need 12 months to create the app for Project 2 which leads to a yearly income of $50,000 before taxes. Other clients may need only one month to create the same app which leads to a monthly income of $50,000. I’m not exaggerating—there are 10x differences, even 100x differences in the efficiency of which freelancers finish projects.
Action step: Find your starting point—the expected business value of the project. Multiply this number with a probability value that reflects how sure you are that the business value will happen in practice.
For example, the business value of your project may be $10,000 and it has a 50% success probability. The starting point of your estimation is $10,000 * 50% = $5,000. This is your expected business value.
Step 2: Adapt the Expected Business Value by Market Factors
The expected business value completely ignores the reality of the market and your specific skills. You need to incorporate this! However, you can never deviate too much from the expected business value because you’ll either become unprofitable or you won’t find clients on a fair-value exchange basis.
- If you sell your skills far above expected business value, you’ll have too few clients and client acquisition will be a game of luck and hope. This
- If you sell your skills far below expected business value, you’re likely to become unprofitable and clients will not appreciate your value.
Therefore, you adapt the expected business value only by +/-50% at most. You simply answer the following five questions to come up with your adaptation percentage.
- Skill: Are you a highly skilled-specialist for this specific gig (+10%), average-skilled (+0%), or below-average (-10%)?
- Communication: Do you show a positive mental attitude (+10%), a normal attitude (+0%), or a negative mental attitude (-10%)?
- Experience: Have you finished many similar gigs (+10%), only a few (+0%), or none at all (-10%)?
- Hourly Rate: Have you earned in previous gigs an hourly rate above the industry average (+10%), at average (+0%), or below-average (-10%)?
- Speed: Can you guarantee faster than average delivery of the gig (+10%), normal (+0%), or slower than average delivery (-10%)?
These five factors are some of the most important when it comes to perceived value delivery. As a freelancer, you should be able to quickly estimate all of them. As a client, you must evaluate the freelancer regarding these factors.
Action step: Go throw all five factors and adapt your expected business value by the resulting percentage.
For example, the project with expected business value of $5,000 delivered by a freelancer who is highly skilled (+10%), very communicative (+10%), experienced (+10%), with a proven record of a high hourly rate(+10%), and promising fast delivery (+10%) can charge +50% more. The resulting gig estimate would be $7,500.
Step 3: Price Negotiations and Modifications
The resulting gig estimate from the previous step can be justified by both the client and the freelancer. Both will receive expected value if both agree on these factors. Be transparent and let the client or the freelancer on the other side know about your estimations and your assumptions. Show them this method and let them state their opinions. Together, you’ll quickly see which factors are likely to be substantially different than assumed. By being open minded and talking about these factors, you’ll become a better freelancer and a better client because you can adapt your perception of the market place to the reality.
Don’t be strict about the gig estimate but take it as a reasonable starting point. If you receive new data and new assumptions from the other party, incorporate them in this method to obtain a new estimate. The resulting estimate should be a win-win. The freelancer wins profitable business and the client realizes a profitable investment. This is the basis on which a healthy long-term business relationship can flourish.
Action step: Summarize your calculations and assumptions and share them with the other party. Ask them for their estimations. Find common ground.
For example, the project with an expected business value of $5,000 delivered by a freelancer who is highly skilled (+10%), very communicative (+10%), experienced (+10%), with a proven record of a high hourly rate(+10%), and promising fast delivery (+10%) can charge +50% more. The resulting gig estimate would be $7,500.
However, the client may not agree with these percentages and proposes an adaptation percentage of only +30% while the expected business value is only $4,000. Based on this, the client’s gig estimate would be $4,000 * 1.3 = $5,200. The true gig estimate will lie anywhere within [$5,200 and $7,500]. Be open-minded as a client and as a freelancer because a long-term healthy relationship is worth far more than tweaking out the best immediate gig estimate.
Do you want to develop the skills of a well-rounded Python professional—while getting paid in the process? Become a Python freelancer and order your book Leaving the Rat Race with Python on Amazon (Kindle/Print)!
Where to Go From Here?
Enough theory. Let’s get some practice!
Coders get paid six figures and more because they can solve problems more effectively using machine intelligence and automation.
To become more successful in coding, solve more real problems for real people. That’s how you polish the skills you really need in practice. After all, what’s the use of learning theory that nobody ever needs?
You build high-value coding skills by working on practical coding projects!
Do you want to stop learning with toy projects and focus on practical code projects that earn you money and solve real problems for people?
🚀 If your answer is YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.
If you just want to learn about the freelancing opportunity, feel free to watch my free webinar “How to Build Your High-Income Skill Python” and learn how I grew my coding business online and how you can, too—from the comfort of your own home.
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com. He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.