Project manager with 15 years of experience here. Scope creep without a formal change order or contract amendment is one of the most common disputes in services contracts, and at 146K you need to take this seriously.
The good news is that even without a written amendment, you may still have legal grounds to recover for the additional work. The doctrine of quantum meruit allows you to recover the reasonable value of services provided, even if they were not covered by the original contract. If the client requested additional work, accepted the deliverables, and benefited from them, courts generally will not let them keep the benefit without paying for it.
The key evidence you need is documentation of the scope changes. Pull together all emails, Slack messages, meeting notes, project management tool records (Jira tickets, Asana tasks, etc.), and any other communications where the client requested work outside the original scope. Even informal requests like asking you to add a feature that was not in the SOW count as evidence of an implied contract modification.
Going forward, my strongest advice is to implement a change order process. Every time a client requests something outside the original scope, respond in writing with something like: This request falls outside our current agreement. I estimate it will require X hours at /hour for a total of . Please confirm in writing that you approve this additional work. This creates a paper trail and forces the client to consciously approve additional costs.
For the current dispute, send a detailed accounting of all work performed outside the original scope, with references to the specific client requests that triggered each item. Attach this to a formal demand letter. At 146K, most clients will negotiate rather than risk litigation, especially if your documentation is strong.