After 10+ years of experience, I always do the same routine.
Specifications
First of all, I do one (or several depending on the complexity of the project) meeting with the client, to gather all his/her needs and writing down specifications to translate them into technical stuff.
Usually it get it's own invoice : if the project is too expensive and refused I at least I get paid for this, and the client has the document to give to other devs.
Time split
Once it's validated from both parts, I split it as much as possible to get single tasks, easy to estimate, in hours. Then do a big old SUM to get total hours.
Do a division by 7 (hours per day) and you'll get the total days.
Depending on the length of the project I usually add 25% (short project) to 50% (long project) to this, to account for client management (mails, phone calls, visio) and unpredicted stuff (documentation writing, bugs, slowdowns, learn and tests, blackouts, illness, etc.)
Do a division by 5 (days per open weeks) and you'll get the planning estimation.
And voila.
Concrete example with random numbers
A client want to get a display website. Simple enough.
I go for a 1 day invoice, including half a day of meeting, 2 hours writing specs, 2 hours validations.
Website is to create from scratch (no texts nor images to re-use from a previous website), I estimate :
Server stuff/hosting : 1 day
Set a WordPress & configuration : 1 day
Add content : 3 days
Custom style and developpement : 5 days.
Total days of effective developpements : 10 days.
Rather short project, I add 3 days for project & client management : 13 days in total.
How much time will it take (planning) ? 13 days / 5 open days a week ~= 2 weeks and half, rounded to 3 weeks (sometimes clients don't respond quick enough).
So in resumé 13 days (x daily price) invoice, website up in 3 weeks.
Too much time ?
If the client is pretty reactive or if you get to dev really fast and a couple of days are left at the end, do some SEO, or spend some time explaining how works the back office, etc.
Conclusion
It isn't an exact science and it will always be pretty hard to estimate project, and the more projects you'll made, the more you'll be able to fine tune ;)
I also recommand to get a time management software, or a simplier excel sheet :
1 sheet for estimation
1 sheet for "time spent".
It requires some discipline but this will allow you to really note how time you spend on what, and can also help justify costs to your client
Estimate
Time spent
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
After 10+ years of experience, I always do the same routine.
Specifications
First of all, I do one (or several depending on the complexity of the project) meeting with the client, to gather all his/her needs and writing down specifications to translate them into technical stuff.
Usually it get it's own invoice : if the project is too expensive and refused I at least I get paid for this, and the client has the document to give to other devs.
Time split
Once it's validated from both parts, I split it as much as possible to get single tasks, easy to estimate, in hours. Then do a big old SUM to get total hours.
Do a division by 7 (hours per day) and you'll get the total days.
Depending on the length of the project I usually add 25% (short project) to 50% (long project) to this, to account for client management (mails, phone calls, visio) and unpredicted stuff (documentation writing, bugs, slowdowns, learn and tests, blackouts, illness, etc.)
Do a division by 5 (days per open weeks) and you'll get the planning estimation.
And voila.
Concrete example with random numbers
A client want to get a display website. Simple enough.
I go for a 1 day invoice, including half a day of meeting, 2 hours writing specs, 2 hours validations.
Website is to create from scratch (no texts nor images to re-use from a previous website), I estimate :
Total days of effective developpements : 10 days.
Rather short project, I add 3 days for project & client management : 13 days in total.
How much time will it take (planning) ? 13 days / 5 open days a week ~= 2 weeks and half, rounded to 3 weeks (sometimes clients don't respond quick enough).
So in resumé 13 days (x daily price) invoice, website up in 3 weeks.
Too much time ?
If the client is pretty reactive or if you get to dev really fast and a couple of days are left at the end, do some SEO, or spend some time explaining how works the back office, etc.
Conclusion
It isn't an exact science and it will always be pretty hard to estimate project, and the more projects you'll made, the more you'll be able to fine tune ;)
I also recommand to get a time management software, or a simplier excel sheet :
It requires some discipline but this will allow you to really note how time you spend on what, and can also help justify costs to your client
Estimate
Time spent