How to Write a Marketing Scope of Work

Most marketing disputes do not start with bad creative. They start with "just one more post" and "can you also try this" requests that never got priced. Marketing work is easy to scope-creep because each individual ask feels small, a tweak here, an extra variant there, until the agency or freelancer has done triple the agreed work for the original fee. A scope of work names every deliverable up front, so campaign work stays campaign work instead of quietly becoming an open-ended retainer.

← Back to Scope of Work Guide

This is what a scope of work looks like in OpenLedger

What to include in a marketing scope of work

A good scope of work does not need to be long. It needs to be specific. Here are the four things every marketing scope of work should cover.

1. Define your deliverables

List every asset and output the campaign will produce, not a vague "social media management" line. Be specific about quantity and format. "Social content" means something different to every client. "12 Instagram posts and 4 short-form videos over 6 weeks" does not. Include the unit type for each deliverable: are you delivering posts, emails, assets, reports? That unit is what you are pricing and tracking.

2. Set a timeline with milestones

Attach dates to each deliverable, not just a single campaign end date. Strategy has to land before content gets built, content before the campaign launches, so milestone dates double as a sequencing check. A campaign end date with nothing between it and kickoff will not tell you if content is falling behind until launch week is already here.

3. Define what is out of scope

This is the section most marketers skip, and it is the one that causes the most scope creep. If a client might reasonably expect something to be included, write it down as excluded if you are not doing it. "Does not include paid ad spend." "Does not include influencer negotiation." "Does not include brand strategy overhaul." Explicit exclusions are not unhelpful, they are what keeps "can you also just" requests from eating the whole budget.

4. Agree on acceptance criteria

How will the client know a deliverable is done? "Client approval" is too vague, approval within how many days, based on what criteria, with how many revision rounds per asset? A brief acceptance clause prevents a single ad creative from cycling through eight rounds of "can we try one more version."

Build your own scope of work

OpenLedger gives you a live, shareable deliverables ledger, not a static document. Enter your email to get started.

Common mistakes in marketing scope of work documents

Writing the scope after the campaign has already started. A retroactive scope is a record of what happened, not an agreement about what would happen. You lose the alignment that should have happened before the first post went live.
Using "and any other related content" language. This phrase exists to sound flexible and ends up being a blank check for extra asks. If it is related, name it. If you cannot name it yet, say so explicitly.
Not versioning the scope when the client adds requests mid-campaign. Scope almost always grows once a campaign is live and getting reactions. The original agreement stays real; additions should be logged as amendments with their own price, not quietly folded into the existing deliverables.
Tying payment to campaign completion instead of asset delivery. A single payment at the end is where scope disputes become payment disputes, especially when a campaign runs for months and "completion" keeps moving.

How payment should tie to a marketing scope of work

One of the most common structural mistakes in marketing work is tying payment to a single completion date rather than to each deliverable as it ships. When payment is milestone-based, a designer gets paid when the ad creative is delivered, not when the whole campaign wraps two months later. Incentives stay aligned: the marketer delivers, the client pays, the campaign keeps moving. When payment is tied to "campaign completion," you get disputes about what completion means, unpaid extra requests, and a power imbalance that favors whoever controls final sign-off.

The fix is the same one that applies to any industry: every deliverable in your scope of work should have a price attached to it, not just a total campaign budget. That way, if scope changes, the cost of that change is already clear, and if an asset is delivered and not paid for, the record already exists. This is the structure OpenLedger is built around.