Guides

    Writing acceptance criteria clients can't argue

    Turn 'approved' from a feeling into a test: technical spec, binary brand checks, a bounded subjective layer, a named approver, and a deemed-accepted window.

    Versely Team9 min read

    When a deliverable took three days to shoot, "approved" could stay undefined, because nobody was going to ask for a fourth version of something that expensive. The cost of production was doing the work that a definition should have been doing. Take that cost away and the sentence "I'll know it when I see it" stops having a stopping condition attached to it. There is always another variant, so there is always a reason not to sign.

    Acceptance criteria fix this, and most people write them badly — a paragraph of adjectives that reads like a brief rather than a test. A criterion is only useful if two people who dislike each other can apply it to the same file and reach the same answer. That means four layers, in this order: a technical spec, brand checks that are binary, a subjective layer with a boundary around it, and a named person with a clock.

    Layer one: the technical spec

    This layer is the easy one and it is the one most often left out, which is why deliveries get bounced for reasons that have nothing to do with the creative. Write it as a table in the statement of work, not as prose.

    Spec line Stated as Why it belongs in writing
    Resolution 1080×1920, no upscale beyond native "HD" means four things
    Aspect ratio 9:16 master, 1:1 and 16:9 as separate deliverables Stops a reformat being called a revision
    Frame rate Named explicitly Versely defaults to 25 fps; a client cutting into a 24 fps sequence needs that stated
    Duration 30s, ±0.5s "About thirty seconds" fails an ad platform
    Audio Stereo, dialogue intelligible against the bed Vague, but a reviewer can still fail it
    Captions Burned in or sidecar file, one or the other The most common late surprise
    File MP4, H.264, named to convention Handoff friction
    Provenance Content Credentials preserved on delivery A re-encode strips them silently unless someone checks

    That last row is the one people assume they can skip, and the reasoning behind it is easy to get backwards. Article 50 of the EU AI Act became applicable on 2 August 2026, and its machine-readable marking obligation sits on the providers building the models — not on your export step. That is precisely why provenance belongs in an acceptance criterion rather than being left to the law: nothing makes your pipeline responsible for carrying a mark forward, so if the client wants credentials intact on the file they receive, the requirement has to come from the contract. Write it as something testable — credentials present on the delivered master — and add the corollary, which is that a re-encode on their side can strip it, putting that failure on their side of the handoff. Rebuilding your export step around machine-readable marking covers what survives each hop.

    The frame-rate row is worth stating out loud rather than assuming, because it is invisible until it is not — a mismatch shows up as judder inside someone else's edit, three weeks after you invoiced. Cutting 24 fps clips on a 25 fps timeline covers what that actually looks like.

    Layer two: brand checks that are binary

    The second layer is where most "acceptance criteria" quietly turn back into a brief. The test: can a reviewer answer yes or no without describing how they feel? If not, it is not a criterion yet.

    Convert each brand rule into a check with an answer:

    • Colour. Named hex values appear on the specified elements. Not "on-brand colour". Getting exact brand values out of prompts is the production half of this — a generated frame will drift toward a pleasant approximation of your palette unless something in the pipeline pins it.
    • Type. Named typeface on all rendered text. Generated type inside an image is a separate check, because it may look right and not be your font at all.
    • Logo. Correct lockup, correct clear space, not warped, not regenerated.
    • Product. Every visible product detail matches the reference photo supplied at brief: label text, cap colour, count of items.
    • Language. Claims list checked against the approved copy; banned words absent; legal line present and legible for its full on-screen duration.
    • People. If a face or presenter recurs, it is the same face across every shot in the deliverable.

    Run that list as a pass, not as a vibe. Auditing generated output against a brand manual turns it into a repeatable checklist, and the artefact-level failures — hands, unreadable text, objects that make contact without weight — belong on the same sheet, since a client will read those as brand damage whether or not the manual mentions them.

    Layer three: bound the subjective part instead of pretending it away

    You cannot make taste objective and you should not try. What you can do is bound it, by moving the subjective decision earlier and converting it into a reference the later stages are measured against.

    The mechanism is two sentences long:

    The tone, look and pace of the deliverable are assessed against the reference set approved at the concept stage. A deliverable that matches the approved references is accepted on this criterion; a request for a different tone, look or pace is a change of direction and is quoted separately.

    That does two things at once. It gives the reviewer a comparison rather than an abstraction — "does this match the board you signed" is answerable, "is this premium enough" is not. And it draws the line between a refinement and a new direction in a place that is defensible, because the client chose the reference themselves. The revision policy that stops scope creep is where that line turns into commercial terms.

    Layer four: the named approver and the clock

    A criterion with no owner is a criterion that gets appealed. Two clauses close this.

    The named approver. One role, not one committee. Write the role rather than the person, so it survives someone leaving: "Approval is given in writing by the Marketing Director or a named delegate. Comments from other stakeholders are welcome and are consolidated by that role into a single response."

    Deemed acceptance. This is the clause that actually closes jobs, and it is the one people are shyest about including:

    A deliverable that meets the acceptance criteria above is accepted on written confirmation, or automatically if no consolidated written objection is received within five business days of delivery. An objection must identify which acceptance criterion the deliverable fails.

    The second sentence is the load-bearing one. It converts "we're not feeling it" into a question with a location — which criterion, which layer — and in practice most objections that cannot name a criterion turn out to be requests for a new direction, which is a commercial conversation rather than a quality one.

    Send that clause with the proposal, not with the invoice. A deemed-acceptance window that appears for the first time after a dispute reads as a trap; the same window agreed up front reads as ordinary project hygiene, because it is.

    Run the criteria yourself before you send

    The cheapest place to fail an acceptance test is your own desk. Two habits do most of the work.

    Iterate in preview, then check. The editor is one re-renderable timeline; preview: true gives a 480p pass at no credit cost, subject to a short per-user cooldown, and the export charge lands once on the version you confirm regardless of how many clips are on the timeline. How previews and the final export are billed is the detail. Practically, it means the technical-spec pass can happen against a preview rather than against a paid export.

    Then run a structured check before anything leaves. Asking the agent for AI feedback on a generation returns a verdict against the original prompt — whether it matches, the issues found, a severity of ok, minor or broken, and a suggested fix. It is a vision check rather than a new generation, and it does not run automatically after every generation — the extra cost and latency are why — so you ask for it at the point it earns its keep: once, on the thing about to go out. The pre-publish check is the deeper version for a deliverable carrying real media spend behind it.

    FAQ

    Isn't this too heavy for a small project?

    The technical spec and the approver clause are worth it at any size — together they are about eight lines. The brand check list only pays off when there is a brand manual to check against. For a one-off deliverable, run layers one and four and skip the rest.

    What if the client refuses to name a single approver?

    Then name one yourself in the delivery note: "I'll treat consolidated notes from you as final unless you tell me otherwise." Most clients never object, because the alternative is them mediating their own stakeholders. If notes still arrive from three directions, consolidate them yourself and send the list back for confirmation before starting work.

    Does deemed acceptance actually hold up?

    It holds up as a working practice far more often than it gets tested as a legal one, which is the point — it exists so that a project has a defined end date, not so you can win an argument. Keep the window generous, remind the client in the delivery email that the clock has started, and it does its job without ever being invoked.

    How do acceptance criteria interact with disclosure of AI use?

    Keep them separate. Acceptance is about whether the deliverable meets spec; disclosure is about what the client is told and what the audience sees. The provenance line in your technical spec is what makes the delivery side of it verifiable, and the conversation about how AI is used on the account belongs earlier, in the proposal.