Hi Dan,
If the clients wants a fixed price and I can accept this, I write a specification which is billed by hour, before I do any coding. Based on that document I calculate a price. I tell the client that the specs might change, because:
a) I made a mistake when writing the specification. Any additional costs resulting from these corrections are free of charge.
b) The client realizes that they need something different. For these modifications the client is billed. Either I make an entirely new spec and give a price for it, or I modify the existing one (again billed by hour) and recalcalculate the price for the spec.
Of course some modifications I implement for free in order to maintain a good relationship for the client. And other clients I bill entirely by hour.
Christof
--
Christof