Documents
How to write a statement of work
Write a statement of work around results: what is in and out of scope, each deliverable with its format, owner, due date and acceptance test, the schedule, the fees and how they are earned, and the assumptions the price depends on. The legal terms stay in the master agreement the statement of work sits under.
Indunil Asanka · Co-founder
7 min read · Published
To write a statement of work, describe the work as results rather than hours: list what is in scope and what is not, name each deliverable with its format, owner, due date and acceptance test, lay out the schedule, set out the fees and what triggers each one, and write down the assumptions and dependencies the price relies on. Sign it under a master agreement that carries the legal terms, or add those terms if there is none.
Scope in and scope out
The scope section lists the activities in the order they happen. The statement of work example, for a fictional analytics firm migrating an insurer’s claims database, numbers five: discovery of the source data, a data mapping specification, migration tooling, a parallel run in a non production environment, and a cutover to production with post migration verification. Each activity is a sentence or two, specific enough that nobody could mistake a proof of concept for a production migration.
Scope out is the half most people skip, and it is where disputes start. Write down what a reasonable client would otherwise assume is included: other systems, training, ongoing support after go live, data cleansing beyond mapping. The example handles this through its assumptions and change control, stating that any work outside the scope in section 2 goes through change control. That works, but a short out of scope list is clearer still. The project charter example shows the stronger form: six things in and four things out as two lists side by side, including the third depot and returns processing.
Describe results, not effort. The US federal acquisition rules on performance work statements put it well: describe the work in terms of the required results rather than how it is to be done or the number of hours to be provided, and make performance measurable. business.gov.au’s contract guide makes the same point with an example of a clear description that states dates, place, numbers and materials instead of a vague promise to train staff.
Deliverables that can be accepted
A deliverable is a thing someone can look at and accept or reject. For each one give:
- Name, such as Data Mapping Specification
- Format, such as a spreadsheet or a code repository
- Owner, the party who produces it
- Due, a week number or date
The example’s deliverables table has five rows: a discovery report as a PDF by the end of week 2, the data mapping specification as a spreadsheet by week 5, the migration toolset in a code repository by week 14, and the parallel run results and final cutover plan as PDFs by week 17. A separate indicative schedule sets out five phases across the 18 weeks, with go live in week 18.
Dates by week number are useful when the start date may move, because the schedule survives a delayed signature. Convert them to calendar dates once the effective date is fixed.
Acceptance
Acceptance is the clause that turns delivered into finished, and it prevents more invoice disputes than any fee clause. It needs a review period, what the reviewer checks against, and what happens on silence.
The example gives the client ten business days from receipt to review each deliverable. If no feedback arrives within that period, the deliverable is deemed accepted. The final migration is accepted on successful cutover and data verification as defined in the cutover plan. The software development agreement example uses the same ten business day window, with criteria written before each sprint starts.
Deemed acceptance protects the supplier from a client who never replies, and the review period protects the client from a rushed sign off. Both sides should be able to live with the number.
Fees and how they are earned
State the pricing model, the rates or prices, the total and the GST position. The example is time and materials: four roles with day rates and estimated days, from a lead consultant at $2,200 a day for 40 days to a project manager at $1,600 a day for 20 days, totalling an estimated $412,000 excluding GST. The rows reconcile: $88,000, $180,000, $112,000 and $32,000.
For a fixed price, replace the rate table with a price and a payment schedule tied to deliverables, so that each payment falls due on acceptance of something. The milestone payment clause shows how that link is usually worded. For time and materials, consider a cap or a point at which the supplier must warn the client that the estimate will be exceeded.
Assumptions and change control
Assumptions are the only part of a statement of work that protects a supplier when a project slips for reasons on the client side. The example lists five: timely access to systems and experts, a stable source schema, the target platform ready by the start of phase 2, the client responsible for user acceptance testing, and anything outside section 2 going through change control.
Each one converts a future delay into a variation rather than an argument. Make them specific. “Client will cooperate” protects nobody; “the target platform is available and configured by the start of phase 2” can be checked on a date.
Change control then says how scope, schedule or budget change. The example requires changes to be agreed in writing through a formal change request, as specified in the master agreement. The note on scope creep describes what happens when this step is skipped.
The sections table
The table at the end of this article lists eleven sections of a statement of work, what each contains, the trap it prevents and how the claims migration example handles it. The guide on when to use an MSA with a SOW explains which terms belong in the master agreement instead, so this guide does not repeat that split.
Common mistakes
Hours instead of results. A statement of work that sells 300 hours gives the client nothing to accept.
No acceptance clock. Without a review period and a rule for silence, a deliverable can sit unaccepted for months.
Vague assumptions. An assumption that cannot be checked on a date will not support a variation.
Legal terms repeated from the master agreement. Two versions of a liability clause create an argument about which one applies; refer to the master agreement instead.
No SOW number. Once there are several statements of work under one master agreement, an unnumbered one is hard to invoice against.
Deliverables that depend on the client, with no date for the client. If the data mapping specification cannot start until the client grants system access, give that access its own date in the assumptions or the schedule. Otherwise the supplier’s week 5 deadline stays fixed while the client’s input slips, and the delay lands on the wrong side of the table.
Signing before the contacts are named. The document control block in the example names a contact on each side. Without them, acceptance notices and change requests go to whoever happens to be copied on an email.
Build it
A statement of work is mostly tables: the document control block, deliverables, schedule and fees. A document here has 45 component types, including tables, timelines and callouts, and it is classified before writing by texture, scale and structure, where structure can be flat, numbered or tabular, which suits a scope built from deliverables and rates. Documents do not print citations, so if a clause relies on the master agreement, name the agreement and its date in the text, as the example does.
The AI chat edits text only, so it can rewrite a deliverable description or an assumption, while rows and columns are added in the builder. The page on data tables in a document shows the table block, and the tutorial on creating a document with AI covers writing the first draft from a prompt.
| Section | What it contains | The trap it prevents | In the example |
|---|---|---|---|
| Document control | SOW number, parties, effective date, governing agreement, term, contacts | A scope nobody can file or match to its contract | SOW-2026-041 under an MSA dated 3 March 2026, 18 week term, a contact each side |
| Background | Why the work exists, in two or three sentences | Deliverables read later without their purpose | A legacy claims database moving to a cloud platform |
| Scope of work | Activities in the order they happen | Work that is assumed rather than agreed | Discovery, data mapping, tooling, parallel run, cutover |
| Out of scope | What people would otherwise assume is included | Free extra work that becomes an argument | Handled through assumptions and change control rather than a list |
| Deliverables | Each item with format, owner and due date | Effort billed with nothing to accept | Five items from a discovery report in week 2 to a cutover plan in week 17 |
| Schedule | Phases or milestones with dates or weeks | A deadline with no route to it | Five phases across 18 weeks, go live in week 18 |
| Fees | Pricing model, rates or fixed prices, total, GST position | An invoice that does not match anything agreed | Four roles by day rate, $412,000 estimated excluding GST |
| Acceptance | Review period, what counts as acceptance, what happens on silence | Deliverables that are never formally finished | Ten business days per deliverable, deemed accepted on silence |
| Assumptions and dependencies | Conditions the price and dates rely on | A client side delay absorbed by the supplier | Five, including a stable source schema and client run UAT |
| Change control | How scope, dates or budget change | Scope creep by email | Written change request under the MSA |
| Execution | Signatures for both parties | A scope that was never actually agreed | Name, title and date for each company |
A finished example
Ardent Analytics migrates Coastline Insurance’s claims database to a cloud platform over 18 weeks under SOW-2026-041, governed by a master services agreement dated 3 March 2026. The work is time and materials with four roles priced by the day and a $412,000 estimate before GST, five dated deliverables, ten business days to accept each one, and five assumptions written down before anyone starts.
Read the statement of work template under a master agreementQuestions people ask
What is the difference between a statement of work and a proposal?
A proposal argues for the work and is written to win it. A statement of work records what was agreed once the buyer has said yes, in terms both sides can test: deliverables, dates, acceptance and fees. Proposals persuade, so they can be selective. A statement of work has to be complete, because anything left out will be argued about later.
Can a statement of work be used without a master agreement?
It can be signed on its own, but it will be missing the legal terms a contract needs, such as liability, confidentiality, intellectual property and termination. If there is no master agreement, either add those terms to the statement of work or sign a service agreement that covers them. Otherwise the client is agreeing to a scope with no legal terms behind it.
Fixed price or time and materials?
Fixed price suits work that can be specified in advance and gives the buyer certainty; the supplier carries the risk of underestimating. Time and materials suits discovery or changing requirements and puts the risk on the buyer, usually with an estimate and a cap. Either way, tie payments or estimates to the same deliverables that acceptance applies to.
How detailed should acceptance criteria be?
Detailed enough that two people would reach the same answer. A migration accepted when counts match the source within a stated tolerance can be tested; one accepted when the client is satisfied cannot. Name the review period, what the reviewer checks, how defects are reported and what happens if nobody responds within the period.
Who should write the statement of work?
Usually the supplier drafts it, because they know how the work will be delivered, and the buyer reviews it against what they asked for. Large buyers and government agencies often write their own requirements first, and the supplier's statement of work responds to them. Either way, both sides should read the assumptions section line by line before signing.
How do I handle work that is discovered halfway through?
Through the change control process named in the statement of work or the master agreement. Write a short change request describing the new work, its effect on dates and fees, and who approves it, and get it signed before starting. Work done on an email agreement is the most common source of unpaid invoices on consulting projects.
Written by
Indunil Asanka · Co-founder
Builds the generation pipelines behind OneCraft: the slide, flyer and poster layout engines, the document grid and the render workers that turn a written brief into a finished file.
LinkedIn profileWritten and checked by the OneCraft team. Last checked .
Make your own document
Describe what you need and the generator writes and designs it, then you edit anything you like.
See what it can makeRead next
How to number clauses in a contract
Number contract clauses with a decimal system three levels deep: clauses as 1, 2, 3, sub clauses as 1.1, 1.2, and paragraphs inside them as (a), (b), (c). Once a contract is signed or widely circulated, never renumber it; insert new material as 7A or (aa) so every existing cross reference still points at the right words.
How to write a sponsorship proposal
A sponsorship proposal works when it leads with who the sponsor will reach, prices a small number of tiers, and lists every benefit with a quantity and a date. Sponsors compare proposals line by line, so the one that reads like a benefits table beats the one that reads like a brochure.
How to write a business proposal
Buyers read a proposal out of order: summary, price, then whether you understood the problem. Writing for that order is most of the craft, and it changes where each section goes.
For the steps inside the builder, read the guideon this topic.