Jonathan Stark on The Freelancers Show podcast has been harping on the answer to this issue for multiple episodes. He figures out the intended result of the project and makes a fixed price bid, paid in advance. If the client wants to change something, they have to answer "How does this increase the conversions that is the desired result of the project?", or whatever. And if they really want it changed, then project 1 is put on ice, and an entirely new project 2 is spun up with a new fixed price bid, paid in advance. Of course, Stark refuses to work with many clients where he can't get a sufficient level of trust before project start. These ideas are spread over many episodes, but here is a recent one with relevant show notes:<p><a href="https://devchat.tv/freelancers/191-fs-establishing-trust-with-your-clients" rel="nofollow">https://devchat.tv/freelancers/191-fs-establishing-trust-wit...</a>