If your project cannot be defined in detail then the hourly reae project is best. For example:
Then an hourly rate project is the way to go.
With an hourly rate project you can limit the total hours worked per week. Moreover, with Upwork you get to see a Work Diary which gives a description of what I am working on every 30 minutes with a screenshot. At any time you can pause the contract if you feel that I am not doing it right or that the progress is too slow.
With a fixed-price model, you build specification in the beginning, which means you are effectively making serious decisions when you have the least amount of information. You can’t change (or it gets difficult/expensive to change) when start to see the project come to life. The web developer always looks at a task and figures out how much time it will take to do then adds a percentage for unforeseen problems before giving a fixed price. So Fixed price projects tend to cost more.
It sounds like a fixed-price model should lower your risks – shouldn’t it? Not really. There are some reasons why it might not:
Believe it or not an hourly project is usually cheaper. For any type of project, the web developer needs calculate how much time the project will take. For a fixed price project there are a lot of unknowns so the web developer always builds in a percentage for the unknowns. So, in reality, you don’t get the lowest price, rather the safest price for the web developer.
You can get good quality under both types of projects.