The client will ask for a specific thing to be done. Give the client a specific price for that thing. That's it.
How you calculate that is your business. Personally, I figure out the worst-case scenario and price it for that. If I finish earlier, because of my brilliance, well we can just call that profit.
You're happy because you just finished something high quality and in good time. The client is thrilled because they knew what they were going to pay, got what they wanted, and got it quickly and professionally. The client didn't have to worry about hourly rates or daily rates, unexpected surprises, etc. they knew what they were going to pay. You took the risk out of the transaction for the client and made a good amount of cash for yourself. Everybody wins.
Also remember that part of the idea of upping your billing increment is not accepting piecemeal work.
In my experience it is simply unworkable: the client will provide the vaguest of specifications and providing them with a set-in-stone price raises unrealistic expectations. The requirements are simply too fuzzy at the outset of a project to be able to price it accurately.
Of course the solution only becomes more concrete as the project progresses and requirements change and crystallize based on feedback. This is expected behaviour of course, but I've never been able to reconcile it with project-based billing.
Do you simply allow a certain buffer zone and take the good with the bad?
Experience helps with the above. Obviously you can never know precisely how much effort something will take. Stuff comes up. Even if the work itself is stupid easy, it might take you 2 hours to find the exact line of code that needs to be changed and sometimes it takes 5 minutes. And you never know which is which. So charge for 2 hours.
> the client will provide the vaguest of specifications and providing them with a set-in-stone price raises unrealistic expectations.
Clearly define the parameters of the project. Clearly define what you will do. Don't do any more or any less than that.
If the client needs something extra done, and this happens, simply price that out separately.
> The requirements are simply too fuzzy at the outset of a project to be able to price it accurately.
Example?
I don't want to give you advice one way or another, because I'm not Indian, so anything I would say is bullshit. Talk to some developers in India who aren't just above average, but are in fact, stellar. Some of them are probably making good money. Ask them what they do, they'll be able to give you the best advice for the Indian market.
If you spend a couple of hours trying to concentrate before realizing you didn't really get anything done, you're just messing around and you need a break, take the day off and don't charge for it.