How to Write a Freelance Contract

The three things a freelance contract is supposed to prevent — scope disputes, IP ownership arguments, and non-payment — are the three things most freelance contracts fail to prevent. "Work for hire" in a contract does not transfer copyright if the work does not qualify under the statute. "Independent contractor" in a contract does not establish contractor status if the relationship looks like employment. The clauses that look simple are the ones with the most failure modes.

The work-for-hire trap

Writing "work for hire" in a freelance contract is not sufficient to transfer copyright. The work-for-hire doctrine under 17 U.S.C. § 101 applies to independent contractor relationships only when two conditions are both met: there is a written agreement designating it a work for hire, AND the work falls into one of nine specific statutory categories. Those nine categories are contributions to collective works, parts of motion pictures or audiovisual works, translations, supplementary works, compilations, instructional texts, tests, answer materials for tests, and atlases.

Most freelance deliverables — websites, custom software, marketing copy, graphic design, bespoke research — do not fall into any of these categories. A contract that says "work for hire" on a custom website build may not transfer copyright at all. The freelancer retains ownership by default. The client discovers this when they try to sell the company, licence the product, or assert exclusivity against a competitor — and find out the freelancer they paid three years ago technically still owns it.

A written copyright assignment clause is the reliable mechanism. It must specify what transfers (project deliverables, not background IP), when (on receipt of full payment, not on delivery), and what the client receives for pre-existing tools and templates (a licence, not an assignment).

The work-for-hire clause in most freelance templates does not actually transfer copyright. Generate a contract with a correct IP assignment →

Contractor classification: the label is not the determination

The IRS and most state agencies determine classification based on the substance of the working relationship — not the label in the contract. A contract that says "independent contractor" while the client controls hours, tools, and methods creates exposure for both parties.

IRS contractor classification — the three-category test
CategoryPoints toward contractorPoints toward employee
Behavioural controlWorker controls how work is done; client specifies only the resultClient controls hours, methods, tools, and process
Financial controlMultiple clients, worker's own tools, profit or loss on the engagementOne client, client's tools, hourly regardless of output
Type of relationshipProject-based, no benefits, written contractor agreementIndefinite, benefits, integrated into the organisation
Contractor classification standards by state
StateStandardKey exposure
CaliforniaABC test (AB5)Presumes employment; all three prongs required; prong B blocks many common engagements
MassachusettsABC testSimilar to California; wage and unemployment law
New JerseyABC testBroad application across wage, benefits, tax
IllinoisEconomic realitiesMultiple factors; no single determinative element
TexasCommon law controlMore permissive; contract language carries significant weight
New YorkVaries by contextSame relationship may be classified differently for wages vs. tax vs. unemployment

Classification exposure depends on your state and how the relationship actually operates. Generate a contractor agreement specific to your state →

What each clause must get right — and the failure mode

Services. Failure mode: vague enough to be interpreted as including everything the client eventually wants. Reference a SOW or be specific enough that scope disputes are documentable from the contract itself.

Payment. Failure mode: no late payment provision, no explicit withholding of finals. Once deliverables are released without payment, your collection options narrow to legal action. Non-refundable deposits must be explicitly labelled — courts in some states decline to enforce implied non-refundability.

IP assignment. Failure mode: "work for hire" without an assignment clause, background IP not carved out, transfer timing not tied to payment. The clause must transfer specifically what the client needs while retaining specifically what the contractor cannot afford to lose.

Revisions and acceptance. Failure mode: no revision limit, no deemed-acceptance provision. Without a review period and automatic acceptance on non-response, the client can request changes indefinitely and withhold approval indefinitely. Your final invoice stays unpaid while you wait for feedback that never comes.

Liability cap. Failure mode: no cap, or a cap calculated against prior fees that is zero on a first engagement. "Total fees paid in the prior 12 months" means nothing on a new client relationship. The cap must be specific to the engagement structure.

Termination. Failure mode: vague or absent. Three questions must be answered: who pays for work in progress, who holds deliverables until payment, and what happens to the deposit. Each unanswered question is a negotiation at the moment the relationship has already failed.

Governing law. Failure mode: none named, or the wrong state. In California contractor disputes, California law may apply regardless of what the contract states if the worker performed services there. The governing law clause does not guarantee it governs — the actual performance location often controls.

Every clause above is specific to your deliverable, state, and relationship structure. Generate a contractor agreement built around yours →

Generate Your Contractor Agreement

DocForge asks the questions that determine how each clause must be drafted — your state, deliverable type, IP arrangement, fee structure, and revision terms — and generates a contractor agreement where the classification clause, IP clause, and payment clause work together. Specific to your engagement.

Generate My Contractor Agreement →