I recently took on a project that I expected to be a simple backend web development job. However, it's since ballooned to fixing a lot of HTML and now having to work with a designer to ensure things are being formatted properly due to the client not fully understanding the technology involved and the work that has to be put in.
How do I handle this and ask for additional compensation for my time?
I usually contact the client and mention that I would be happy to help, but they are requesting items outside the scope of the project and will need to bill for additional $$. I then outline the new items requested and provide a cost for those.
OP since you are doing web design, look up "how to write a scope of work." You need that to control the project or it will turn into a disaster. Clients will run you over with "oh, this is easy can you do this" or other stuff that they don't understand is outside of the scope.
Be very specific about what you'll do at what price.
Just say that you agreed to provide X, the client now wants Y and as a result, he's going to have to pay Z.
The worst mistake you can make is not to fully define X, or submit a proposal that just say "I'll do what you want for $X". Even with a relatively detailed RFP, your assumption of what they want might be very different from what the client actually wants, so it's always important to clearly define what you will and won't deliver. Then, if they ask for something that you've said you won't deliver... then it's a lot easier to warrant asking for extra money.
- Box, Logan's Run (1976)
Handling scope creep in fixed-price projects takes practice and finesse.
But to put it simply: scope creep simply isn't allowed.
YOU need to be the person in the driver's seat.
You need to be clear and very POLITE with the client in explaining that would you like to work on that next feature, but that it is "out of scope" of the original agreement.
When you complete a project, and you know that you met the criteria in the original agreement, then you submit it and the client should pay you. Period.
Anything more than 10 minutes of revision or extra work beyond that is really out of line. But a lot of clients don't understand it, so be kind and be gentle.
Here is a typical approach for me:
"John, thanks for your notes. I completely agree that this should be the next step in the project. I wouldn't be able to work on that under the current contract, because it is out of scope. But if you release the payment for the first part that has been completed, and then close the contract, I will start on that and you can see my approach to solving this next problem."
Patrick, you see what I'm doing here... I give the client a real reason to close the contract and pay me what he agreed to pay me. I actively encourage the client to close the contract.
If the client closes the contract and pays me, then I actually do start on the work, as I said I would. I can do a few minutes of work and can provide details about what the cost would be for the next phase, and let the client set up a new contract.
If the client does NOT do this... I try to explain the difference between a fixed-price contrat and an hourly contract, and I point out that an hourly contract is great for clients because it allows them to ask a contractor to do anything on a project, without needing to write up any specific set of requirements.
If the client still doesn't get it, well... I have submitted the project using the official milestone submission button. And I can wait for 2 weeks until Upwork automatically releases the payment.
Keep in mind that some clients are NOT psychologically capable of working with fixed-price contracts. They genuinely don't understand what a fixed-price contract is. If you find you are working with a client like that, you may still work with them and make money, but only if you work ONLY using hourly contracts.