Good point. the way I was thinking about it was more like this
1- you provide an overall estimate on where you think you could come in at. you do this to give all clarity on how you are thinking about the problem, anchors your estimate and the functionality you are about to build, and allows the owner to get a sense of price
2- only commit to a week or 2 at the time. this allows the client to tweak things, see quick progress, and add or subtract features as you make progress. Or even stop, test features on customers - and pause.
thoughts?