Originally Posted by Dastar
Here's an approach that worked well for us.
First, we create a project scope based on the discussions with prospective client. It includes a preliminary estimate. No charge for this.
Second, if the project scope is acceptable to prospect, we charge them to develop detailed functional specifications, usually 10-20% of the preliminary estimate. Client is under no obligation to hire us, and can take the FS to another development shop or use it to develop the app in-house (they never do!).
This way the risk is low for the client, and they have an option to add/remove features from the final estimate prior to committing to the development in order to control their budget.
Email me directly if you'd like to see our sample Project Scope and Functional Specs documents.