Let's say a client asks for a new development/feature, how do you calculate or estimate how much to charge them? Do you do it in advance (making a budget/estimate) or do you charge for hours worked?
Most times we need to make budgets for clients, how do you do that? How do you make sure you don't charge less or more than you should?
We've been kinda struggling with this for a while and decided to check if any of you has any good tips!!
If it's you as freelancer, break fratures into little tasks and estimate each by your experience level point of view.
Then apply some containment to it (10% min, 25% max).
Finally check the market price for an hour (gross or net, depending on the base you're using on the calcs) and do the math:
(Estimated + containment) * price.
It's said in Agile that "points" describe effort and not time, but as you need to set up some milestones, deadlines and so plus you'll charge the client by worked hours (just like in any other technical job)... You'll need a conversion guide between both.
Try it on a sideproject of yours and refine that conversion and estimations.
If you end up working less hours than expected, good for you! As the budget has already been accepted and you already get a part of it to start the project it's ok to keep it the same.
It can be that you estimate less than needed and in such case you'll need to "pay" that difference with your time unless dev time extended by client requests, of course. In such cases the process is the same... Estimate, add containment, multiply per hourly price and sum it up into the main budget.
On the other hand, if you need yo handle other services such hosting, email service etc you'll need to add this costs plus a maintenance cost (recurrent) to the client contract and budget.
This comment does not cover all the use cases, possible costs nor situations but I feel it can be a good starting point.
Hope it helps