Getting started

Writing an AI automation brief your vendor can actually price

A vendor cannot price what you have not decided. This is the brief that turns a vague automation idea into a fixed scope, an acceptance test, and a number you can compare across quotes.

On this page
  1. What a priceable brief actually contains
  2. Vendors price ambiguity, not effort
  3. Define the unit of work before anything else
  4. The PRICED brief, section by section
  5. The samples are the brief
  6. Write the acceptance test before the build starts
  7. The arithmetic a vendor runs while reading your brief
  8. The brief skeleton, ready to fill in
  9. What to leave out of the brief
  10. Definitions, and the check before you send

What a priceable brief actually contains

The short answer

A brief a vendor can price answers six questions: what one unit of work is, how many arrive and how they cluster, what a correct output looks like on real examples, which systems hold the data and how access is granted, what the system does when it is not sure, and what test decides the project is finished. Answer all six and you get a fixed price you can compare across vendors. Answer three and you get a range, because the vendor is quietly pricing the questions you left open.

  • 6questions a fixed price depends on: unit, volume, correctness, access, uncertainty, acceptance
  • 20 to 50real input samples belong in the brief, including the malformed ones nobody likes showing
  • 1 pageof prose is plenty. The rest of the brief is samples, field lists and access notes
  • Beforethe acceptance test is agreed before the build starts, never negotiated at handover

Most automation briefs are written as a description of a problem. A vendor cannot quote a problem. They quote a bounded piece of work with a definition of done, and everything your brief does not pin down becomes an assumption they make privately and price defensively. The brief below is not longer than the one you were going to write. It is differently shaped: less narrative, more schema, and built around samples of real work rather than descriptions of it.

This guide assumes you already know which process you are automating. If you do not, start with mapping the process and with what not to automate, because a well written brief for the wrong process is an expensive way to be precise.

Vendors price ambiguity, not effort

The number on a quote is rarely a guess about how long the work takes. Experienced teams are reasonably good at estimating work they have seen before. What they are guessing about is how much of your process they have not seen yet, and that uncertainty gets converted into money in one of three ways: a padded line item, a contingency buffer, or a refusal to fix the price at all. You can remove most of it in an afternoon by writing down things you already know.

What the brief leaves outWhat the vendor assumes insteadHow the assumption shows up in the quote
No sample of a real inputInputs are clean and uniformA change order in week one, or a padded parsing line
No definition of correctThe vendor's own definition, discovered at acceptanceTwo extra review rounds priced in, and a difficult handover
No volume or peak shapeSteady, moderate volume, no spikesAn architecture that falls over at month end and is rebuilt at your cost
No named owner for each systemAccess will be granted quicklySchedule buffer, standing weekly meetings, and idle developer time
No exception policyEverything can be handled automaticallyEither an underscoped agent or a large contingency, depending on the vendor
No acceptance testThe client will decide when they are happyPayment weighted to the end, and a higher price to carry that risk
The six silences, and what each one costs you.
The underlying rule

Every question your brief leaves open gets answered by the vendor, in private, in the direction that protects them. That is not bad faith. It is what a competent estimator has to do, and it is why the cheapest edit to your budget is a more specific brief.

Define the unit of work before anything else

The unit of work is the single thing the system processes from end to end: one supplier invoice, one inbound email thread, one candidate application, one weekly report. Everything downstream depends on this choice. It sets the architecture, because a per-item unit implies a queue and a batch unit implies a scheduled job. It sets the retry model, because retries only make sense on units that are independent. It sets the pricing unit, because a vendor who knows your monthly volume can compute a per-unit cost and so can you.

Three tests for a well defined unit

  1. It is countable. You can say how many happened last month, from a system, without asking anybody. If nobody can count it, nobody can measure the automation afterwards either.
  2. It has one trigger event and one terminal state. Not a vague start and a fuzzy end. 'Message arrives in the shared mailbox' and 'posted to the ledger, or sitting in the review queue with a reason attached' are both events a machine can observe.
  3. It can be judged right or wrong on its own. If you have to look at the other units to decide whether this one is correct, you have a batch problem wearing the costume of an item problem, and the automation will need state you have not accounted for.

A unit like 'the month end close' fails all three. Break it down until each unit fits in one queue message and one review decision. The breaking down is not administrative work, it is the design. Most projects that fail an acceptance test fail because the unit was too big and the definition of correct was therefore never stable.

Write the out of scope list in the same breath. A vendor who reads an explicit list of things the system will not do prices a narrower, cheaper, more likely to ship project.

The PRICED brief, section by section

Framework

The PRICED Brief

Six sections. Each one exists because a specific class of project failure traces back to it being missing. Write them in this order, because each depends on the one above it.

01
P: Process boundary

The unit of work, the trigger event, the terminal states, the monthly volume and its shape, and an explicit out of scope list. Volume shape matters more than volume: a system built for a steady flow and then handed a month-end surge will hit provider rate limits and retry storms at exactly the moment finance is watching.

02
R: Records and access

Every system the work touches, what role it plays, who owns it inside your company, how authentication works, whether a sandbox exists, and whether the integration needs write access or only read. Name a human per system. Access is the most common cause of schedule slip on these projects, and it is a scheduling problem rather than a technical one.

03
I: Inputs, the real ones

Twenty to fifty genuine samples with the natural distribution intact. Not a curated set. The samples are the specification, and any description you write of the inputs is a lossy summary of them.

04
C: Correctness

Split the output fields into critical and tolerated. Define correct per field, not as one blended accuracy figure. Name the person who breaks ties and the turnaround they commit to. A project with no adjudicator will discover at acceptance that two senior people disagree about the right answer, and that argument gets billed to you as rework.

05
E: Escape hatch

What the system does when it is not confident. Where the unit goes, what information travels with it, who picks it up, and how quickly. Any system with no defined behaviour under uncertainty will invent one, and the invented behaviour is usually to guess and carry on.

06
D: Done

The acceptance test, defined before the build: which held-out samples it runs on, when that set was frozen, the pass threshold, who runs it, and who signs. Without this, done becomes whoever loses patience first.

The order is deliberate. You cannot define correctness before you have samples, and you cannot design an escape hatch before you know which fields are critical. Teams that write the brief in a different order usually end up with a correctness definition that fits their idea of the process rather than the process itself.

The samples are the brief

If you send only one thing, send the samples. Forty real inputs tell a vendor more than four pages of description, and they tell it more honestly, because the description is written by someone who has stopped noticing the odd cases and the samples are not. A good vendor reads the samples first and your prose second.

  • Keep the natural distribution. Take every unit from a few randomly chosen working days rather than picking the interesting ones. The proportion of ugly cases is itself a specification, and it is the figure that decides whether this project is a two week build or a two month one.
  • Include the cases you argue about internally. The ones where two people on your team would fill a field differently. Those decide the acceptance test, so surface them now while they are cheap.
  • Redact by substitution, never by deletion. Replace a bank account with a different bank account of the same shape. Replacing it with the word REDACTED changes the structure of the document and quietly deletes the field the parser has to find.
  • Include the failures. The unit that got rejected, the one that needed a phone call, the one that took six weeks. If they never reach the vendor, the vendor will not build for them, and you will meet them again in production.
  • Say what happened to each one. For a subset, twenty is plenty, attach the correct output. That subset becomes the seed of your evaluation set and later of your regression suite.
Scrubbing the samples kills the project

Somebody on your team will want to tidy the sample set before it goes out, because the mess is embarrassing. When that happens, the vendor builds for the tidy version, the system meets the real version in week one, and the gap gets called a defect by you and a change of scope by them. Both of you will be right, which is the worst kind of dispute to be in.

Write the acceptance test before the build starts

An acceptance test is four things: a held-out set of real units, a threshold expressed per field class, a named adjudicator, and the date the set was frozen. Agreeing it before the build costs an hour. Agreeing it after the build costs a relationship, because by then both sides have a financial position and the test is being negotiated rather than designed.

  1. Hold units back before the vendor sees anythingday one

    Split your sample set. The vendor gets the development portion and never sees the held-out portion. If the vendor can tune against the test set, the test measures memorisation rather than capability, which is the oldest failure mode in applied machine learning and it happens on small projects constantly.

  2. Classify the output fieldsone hour

    Critical fields are the ones where a wrong value causes money to move, a person to be contacted, or a record to become untrustworthy. Tolerated fields are cosmetic. A single blended accuracy figure hides the only thing you actually care about, which is whether the bank account was ever wrong.

  3. Set thresholds per class, not overallone hour

    Something like: zero critical field errors across the held-out set, and no more than a stated fraction routed to human review. Notice that routing to review is not a failure. A system that knows it does not know is behaving correctly, and confusing those two outcomes is how teams end up demanding accuracy they do not need and paying for it.

  4. Name the adjudicator and the turnaroundfive minutes

    One person decides disputed cases, within one working day. Two people means an escalation path and a delay. No named person means the argument goes to whoever is most senior and most annoyed.

  5. Write down who runs the test and who watchesfive minutes

    The vendor runs it, you observe, both parties sign the same result sheet on the day. Tests run privately and reported by email get re-run in the meeting anyway.

If you want to go further than a single acceptance gate, the same held-out set becomes your regression suite after launch, which is the subject of writing evals for LLM systems. At the brief stage most teams need only the acceptance version.

The arithmetic a vendor runs while reading your brief

Any competent vendor works out roughly what the process costs you today, because that sets the ceiling on what they can charge and still be worth hiring. Run the same arithmetic before you send the brief, and put the result in it. A brief that states a budget ceiling with the working shown gets quotes you can compare. A brief that hides the budget gets quotes calibrated to what the vendor thinks you can afford.

What this project can be worth

Every default here is a stand-in figure, not a benchmark. Replace all five with your own figures, keep one currency throughout, and treat the output as an order of magnitude rather than a plan.

0Cost of the manual process per year
0Human cost removed per year
0Build budget at a twelve month payback

Two things usually surprise people here. The residual rate matters more than the build cost, because it recurs every year while the build happens once, so the argument about whether the review queue holds ten percent or twenty five percent of units is worth more than the argument about the quote. And a twelve month payback is a strict test that plenty of worthwhile projects fail, which is why the honest version of this arithmetic sometimes ends a project before the brief is finished.

Do not put a guessed number in this box

If you do not know the minutes per unit, do not estimate it in a meeting. Take a real measurement first, which is the subject of the baseline guide. A brief built on a guessed baseline produces a quote built on a guessed baseline, and a year later nobody can tell whether the project worked.

The brief skeleton, ready to fill in

Copy this, replace every value, and delete the fields that do not apply to your process. YAML rather than a document is deliberate: it makes missing information visible, it diffs cleanly when you revise it, and it discourages the paragraph of explanation that usually hides an undecided question.

automation-brief.yamlyaml
# automation-brief.yaml
# Fill every field, because a field you cannot fill is a question the vendor prices as risk.
# Values below are illustrative examples only, replace all of them with your own.

unit_of_work:
  name: "one supplier invoice arriving by email"
  trigger: "message lands in the AP mailbox with at least one PDF attached"
  terminal_state: "posted to the ledger with a cost centre, or queued for review with a reason"
  volume_per_month: 620
  peak_shape: "most of the month's volume arrives in the last three working days"
  out_of_scope: ["expense claims", "anything that arrives on paper", "card statements"]

systems:
  - name: "accounting ledger"
    role: "system of record, written to"
    owner: "finance ops lead"
    auth: "OAuth app, sandbox tenant available"
    write_access: true
    rate_limit: "unknown, vendor to confirm in week one"
  - name: "document archive"
    role: "read only, holds signed purchase orders"
    owner: "IT service desk"
    auth: "service account, request cycle is about two weeks"
    write_access: false

inputs:
  sample_count: 40
  sampling_method: "every invoice received on four randomly chosen working days, unedited"
  redaction: "values replaced with same-shape fakes, structure untouched"
  known_ugly_cases:
    - "scanned documents from two suppliers, no text layer"
    - "line items continuing onto a second page"
    - "credit notes that look like invoices until you read the total"

correctness:
  critical_fields: ["supplier", "total", "currency", "bank account", "purchase order number"]
  tolerated_fields: ["line description wording", "line item order"]
  definition: "a critical field is correct when it matches what a senior clerk would enter"
  adjudicator: "finance ops lead, one working day to rule on any disagreement"

uncertainty:
  behaviour_when_unsure: "never post, write to the review queue with fields and a reason string"
  who_reviews: "clerk on rota"
  target_review_rate: "a number we set together after the first month of live data"
  escalation_sla: "reviewed the same working day"

acceptance:
  test_set: "30 units held back from the samples, frozen the day the contract is signed"
  pass_threshold: "zero critical field errors, and no more than 5 of 30 routed to review"
  who_runs_it: "vendor runs it, client observes, both sign the result sheet"
  when: "before the final payment milestone, on the frozen set only"

commercials:
  build_budget_ceiling: "derived from the arithmetic in this brief, stated so quotes compare"
  running_cost_expectation: "vendor states model, infrastructure and support cost per month"
  change_control: "anything outside unit_of_work is a change order, priced separately"

Attach the sample set as a folder alongside it, with the correct outputs for the labelled subset in a separate file. Send the same package to every vendor on the same day. If you send different versions, you cannot compare the quotes, and you have wasted the work of writing a precise brief.

What to leave out of the brief

Do not specify the solution. A brief that says build this in a particular workflow tool using a particular model has chosen an architecture before anyone has seen the exception distribution, and it removes the one thing you are actually buying, which is judgement about how to build it. State the constraint behind your preference instead: data cannot leave a jurisdiction, our team must be able to modify it after handover, no new vendor contracts this quarter. Constraints are useful. Implementation instructions are you doing the vendor's job with less information than they will have.

Gets a fixed priceGets a range and a discovery call
Unit of workOne named unit with a trigger and terminal statesA department, a system, or a goal
InputsForty unedited samples with the ugly casesA description of the inputs, or three good examples
CorrectnessCritical fields listed, adjudicator namedIt needs to be accurate
VolumeMonthly count and the peak shapeA lot, especially at month end
AccessOne named owner per system, auth method statedIT will sort that out
UncertaintyReview queue defined, reviewer namedUnaddressed, so the system will guess
DoneHeld-out set, freeze date, threshold, signaturesDecided later, under pressure

The right hand column is not a careless brief. It is the normal output of an intelligent person describing a process they know well, in prose, from memory. The difference is structural rather than a matter of effort.

Definitions, and the check before you send

Terms worth agreeing on before you write
Unit of work
The single item an automated process handles from trigger to terminal state, countable in a system, and judgeable as correct or incorrect on its own without reference to other units.
Held-out set
A portion of real samples withheld from the build team and frozen on a stated date, used once to decide whether a system passes acceptance. Its value comes entirely from the fact that nobody was able to tune against it.
Critical field
An output field where a wrong value causes money to move, a person to be contacted, or a record to become untrustworthy. Critical fields get a zero-error threshold; everything else gets a tolerance.
Escape hatch
The defined behaviour of a system when its confidence is low: stop, route the unit to a named human with the working shown, and record the reason. A system without one guesses and carries on.
Change order
Work outside the written unit of work, priced separately. Its existence in the contract is what allows the base price to be low, so a brief with a precise scope and a clear change process is cheaper than a vague brief with neither.
Before you send the brief
0 of 11 done

A brief written this way takes most teams a day, and about half of that day goes on discovering that two people disagree about what the process actually does. That discovery is cheaper to have on your own time than during a build. If you would rather run the exercise with someone who has priced these projects before, that is what a scoping engagement inside business process automation is for.

Cite this

A vendor does not price the effort in your brief. They price the questions your brief leaves open, in private, in the direction that protects them.

Questions readers ask next

How long should an AI automation brief be?
One page of prose is usually enough, plus the structured fields and the attached samples. Length is not the useful measure here. A three page narrative that never names the unit of work is less priceable than half a page of YAML with forty real inputs attached. If your brief keeps growing past two pages of prose, that is normally a sign the scope covers several units of work and should be split into separate projects.
What if I cannot share real data with a vendor before signing anything?
This is common and it is solvable. Redact by substitution rather than deletion, so a bank account becomes a different bank account of the same shape and the document structure survives. If the data is genuinely too sensitive to leave your systems, run a short paid scoping engagement under an NDA where samples are reviewed in place. What you should not do is send a description instead of samples, because the description is the part of the brief most likely to be wrong.
Should I put my budget in the brief?
Put the arithmetic in, which is better than putting a number in. Show the volume, the minutes per unit, the loaded hourly cost and the payback period you require, then state the ceiling that falls out of it. That gives every vendor the same frame and makes their quotes comparable to each other. Hiding the budget entirely tends to produce quotes calibrated to how wealthy your company looks rather than to the work in front of them.
What is the difference between an acceptance test and an evaluation suite?
The acceptance test is a one-time gate that decides whether the delivered system meets an agreed threshold on a frozen held-out set. An evaluation suite is the ongoing version that runs on every change after launch and catches regressions when a model, a prompt or a dependency shifts underneath you. They usually share the same data. Agree the acceptance test in the brief, and build the evaluation suite during the project.
Can I write this brief before I have mapped the process?
You can write the shell, but the fields that matter will be empty, and empty fields are exactly what vendors price as risk. The unit of work, the exception distribution and the correctness definition all fall out of mapping. Doing the mapping first usually takes a few days and removes most of the guesswork from the brief, which is why the two guides are meant to be read in that order.
What should I do if a vendor refuses to quote a fixed price even with a full brief?
Ask which specific field of the brief they consider unresolved, because a good vendor can name it immediately. Sometimes the answer is legitimate: an undocumented legacy system, an unknown rate limit, or a data quality question that only becomes visible once they have access. The right response is a small paid discovery phase with its own fixed price and a written deliverable, not an open ended time and materials contract for the whole build.
Cite this

ChatGPTalker. "Writing an AI Automation Brief Your Vendor Can Price." chatgptalker.com, 2026-08-26. https://chatgptalker.com/guides/writing-an-ai-automation-brief/

Rather have it built than read about it?

Send the process you want automated. You get a scoped plan back, with the build shape, the stack and a realistic timeline.

Start a project