There is another post on here "How to quote project development cost" where user SpliFF commented:
This is not a labor market, you are selling knowledge and solutions. Some solutions are better than others. 10 hours of failing is worth much less than 10 hours of building a killer app. You need to stop thinking about time and costs and focus on the value of the outcome. Compare it to products of similar value. Slapping an arbitrary 40% on 'project cost' to determine value is ridiculous.
While I generally agree that Value-Based Fees (a la Alan Weiss) are the best way to charge and get what you're worth as a consultant, I don't know how well this approach translates to the software development domain.
How do you determine value to the client without spending inordinate time performing requirements discovery and analysis? How do you manage change requests in a Value-Based fees approach?