TL;DR
On this page
A fixed-scope pipeline build starts clean: three sources, a warehouse, a daily refresh. Then the client asks for one more source, then a schema change, then real-time instead of daily, and none of it was re-quoted. By the time a pipeline breaks in production, the contract is also silent on who pays for the data that was lost. Most AI-drafted contracts leave both gaps wide open. The fix is to make ChatGPT name the three clauses specific to data work as it drafts: pipeline scope, data-handling risk, and change control. Generate the contract with the prompt below, then harden those three.
This walkthrough is part of the complete guide to freelancing in the AI era, and a profession-specific version of the general contract prompt.
The dollar value at stake is real. Freelance data engineering pays $85 to $160 an hour, among the highest-paid developer specializations in a 2026 survey of 5,302 freelance developers (Arc.dev). At those rates, every absorbed source and every unbilled schema change is expensive, and a single production incident can dwarf the whole fee if that clause is wrong.
The prompt
Paste this into ChatGPT, Claude, or Gemini. Fill in the brackets, and keep the client's real name, data sources, and infrastructure details out until the draft is done.
You are drafting a freelance data engineer contract between [YOUR BUSINESS
NAME] (the Engineer) and [CLIENT PLACEHOLDER] (the Client) for a data
pipeline project.
Include and clearly label:
1. Scope of services: list the exact data sources, transformations, and
destinations in scope, the agreed pipeline SLAs (latency, uptime), and
a line stating any new source, destination, or real-time requirement
not listed is out of scope and billed separately
2. Change control: a written change-request procedure where any new
source, schema change, or added SLA must be requested in writing and
re-quoted for cost and timeline before work begins
3. Data-handling liability: a single clause capping total exposure at the
fees paid, with no responsibility for data loss, corruption, or downstream
outages except in cases of gross negligence; the Client is responsible
for production backups
4. Data security and compliance: who is responsible for PII handling,
access controls, and GDPR/CCPA obligations; reference a data-processing
addendum if personal data is processed
5. Cloud and third-party costs: pass-through billing for warehouse,
compute, and tool costs, or a stated allowance
6. IP and deliverables: pipeline code and configuration transfer to the
Client on cleared final payment; reusable frameworks and tooling stay
licensed, not assigned
7. Fees, payment schedule, late fee, and termination
8. Governing law: [YOUR STATE OR COUNTRY]
Plain English, under two pages where possible. Do not invent legal
citations.
Skip naming those clauses and the model returns a clean software-developer template: no scope boundary, no fee cap, no data-loss language.
The three clauses AI gets wrong

Pipeline scope. The scope clause has to name the specific sources, transformations, and destinations, and the SLAs attached to them. Then it needs the boundary line: a new source, a new destination, or a real-time requirement that was not listed is out of scope and billed separately. Without that line, "can you also pull in the CRM data" reads as an included task rather than the new pipeline it actually is. The full clause-by-clause version lives in the data engineer pipeline-scope and change-order contract guide.
Data-handling liability. This is the clause a developer template never gets right for data work. A standard boilerplate cap often excludes data loss without addressing it, which leaves you exposed and the client unprotected at the same time. As business attorney Aaron Hall puts it:
Limitations of liability clauses frequently exclude data loss due to challenges in accurately quantifying damages and allocating associated risks.
Source: Aaron Hall, business attorney
So you cannot just lean on the boilerplate. You also cannot disclaim everything, because a serious client will push back. Norton Rose Fulbright frames the other side of the same point:
A well-advised customer would not accept a "loss of data" exclusion in a scenario where data processing or storage is a central component of the service provider's activities.
Source: Norton Rose Fulbright, "Liability 101," September 2025
The workable clause sits in the middle: cap your total exposure at the fees paid, disclaim data loss and downstream outages except for gross negligence, and put production backups on the client. Norton Rose Fulbright notes that even cloud and SaaS providers resist caps above 12 months' fees, so a fees-paid cap is a defensible position to hold.
Change control. A written change-request procedure is what stops scope creep from becoming unpaid work. The distinction that makes it enforceable is defect versus change. Per the Genie AI legal-template guide, a defect is a deviation from the documented requirements that you fix as part of the job, while a change is a request for functionality not included in the original scope. Write the procedure so any new source, schema change, or added SLA must be requested in writing and re-quoted for cost and timeline before work begins. The mechanics of writing one are in the AI change order prompt, and the scope-definition parallel is in the ChatGPT scope of work prompt.
pro tip
Do not re-derive the pipeline scope and risk-allocation language every time. The full clause text, including cloud-cost pass-through and the data-versus-code IP split, lives in the data engineer pipeline-scope contract guide. This prompt generates the contract; that post hardens the clauses inside it.
Keep client data out of the draft
Use a placeholder instead of the client's real name, data sources, and infrastructure until the contract is finished, because consumer AI plans can use your inputs for training by default, and your pipeline architecture is not something to leak into a training set. Draft with placeholders, then fill in the real details in your own copy. If the client wants to govern how you use AI on the project itself, that belongs in its own clause, covered in AI clauses in freelance contracts.
Generate it, then harden the three clauses
The model drafts; you decide, and for a data contract the decisions that matter are these three clauses. That is where the protection lives, not in the boilerplate the model is good at. AI-skilled freelancers earn 44% more per hour than peers who do not use it (Upwork data via Winvesta), and 48% of freelancers say AI helps them work more efficiently (Useme), but the speed only pays off if the contract underneath it is sound.
Before you send the data contract
FreelanceDesk builds contracts with the scope, payment, and transfer-on-payment terms already structured, so a data engineering agreement starts from a sound base. It is free, and the document never leaves your browser. You add the scope boundary, the exposure cap, and the change-control clause on top. For the rates side of the engagement, see the data engineer freelance rates report. For the full AI-document workflow, the AI document guide maps every document type to its prompt.
References
- 2026 Freelance Developer Hourly Rates : Arc.dev
- Liability 101: Clauses in Tech and Outsourcing Contracts : Norton Rose Fulbright
- Why Limitation Clauses Exclude Data Loss : Aaron Hall
- Managing Scope Creep and Change Orders in Software Development Agreements : Genie AI
- Freelancing with AI in 2026 : Useme
- AI Cut Freelance Rates 30%: How Top Earners Fight Back : Winvesta
