Outcome contracts
An Outcome Contract makes a Service a checkable promise in typed terms, done, acceptance, assurance, revisions, remedy, and earns, set before the first Order.
An Outcome Contract is the promise a Service keeps, set on its Offer before the first Order. Its terms are typed fields, so the Startup, the Customer, and any Agent acting for either check every delivery the same way.
Six terms
Each term answers what a buyer asks before paying for work that does not exist yet. Take a Startup that copyedits book manuscripts against the author's style sheet.
| Term | Fields | Asks | Copyediting |
|---|---|---|---|
| Done | done | What counts as complete? | Every chapter follows the style sheet, a 500-word sample per chapter has no spelling errors, and every query to the author is flagged |
| Accept | accept, window, silence | Who accepts, by when, and what silence means | The author, within five days of each delivery; silence accepts |
| Assurance | assurance | How is done checked? | Evaluators for style, spelling, and flagged queries, plus a 5% sample graded by a person |
| Revisions | revisions | How often may the Customer send work back? | Once per line |
| Remedy | remedy | What happens on a miss? | Re-edit within three days, then refund the line |
| Earns | earns | Which Event earns the fee? | Order.confirmed |
The contract is data on the Offer, so delivery, billing, and the buyer's Agent read the same terms:
outcome: {
done: 'Every chapter follows the style sheet; no spelling errors in a 500-word sample per chapter; every author query flagged',
accept: 'customer',
window: 'P5D',
silence: 'accepts',
assurance: ['style-sheet', 'spelling', 'queries-flagged', { sample: 0.05, by: 'human' }],
revisions: 1,
remedy: [{ kind: 'redo', within: 'P3D' }, { kind: 'refund' }],
earns: 'Order.confirmed',
}Done is a claim, acceptance is a verdict
Done is the Startup's claim: the work meets its terms and every Evaluator passed. Acceptance is the Customer's verdict, given line by line: they confirm a line, or its window closes without a dispute.
Keeping the two apart protects both sides. A Startup that bills on done charges for work nobody has checked. A Startup that waits for an explicit sign-off rarely earns, because most satisfied Customers never reply.
The window gives the Customer a fixed time to object, and silence says what happens when it passes. Acceptance binds to the exact delivery the Customer saw: a redelivery opens a new window.
Promise what you control
Warrant the work, not the business result that follows it. The copyeditor promises a clean, consistent manuscript. It does not promise a publishing deal, because no Evaluator can check that before the fee is earned.
A promise the Startup controls is a promise it can price. Every remedy has a cost, and the expected miss rate times that cost belongs in the Price. A vague done raises the miss rate, so sharpening it is the cheapest margin a Service finds.
Assurance makes done checkable
An Evaluator is a versioned Function that grades output against a rubric and returns a verdict. assurance names the Evaluators that verify the contract, and deliver runs every one before the Customer sees anything.
The doer is never the checker. An Evaluator never shares the model that did the work, so one blind spot cannot pass its own output. Calibrate each Evaluator against work a person graded, and version it whenever its rubric moves.
Assurance also bounds the remedy. An Offer fails its launch check until the named Evaluators pass on sample work, so no Service publishes a refund promise its checks cannot back.
Revisions, then remedies
revisions counts how often the Customer may revise a line before the remedy applies. One revision absorbs a matter of taste, such as a preferred spelling in dialogue, without calling the work a miss. Past the allowance, the line becomes a Dispute and the remedy starts.
Each remedy is a Verb the Startup runs. It redoes the work, refunds the line, grants a Credit Grant on the next Order, or has a person finish the job. A remedy no Verb performs is a sentence, not a contract term.
Order remedies from cheapest to most expensive, and bound each one. The copyeditor re-edits once, then refunds; it never loops on fixes. Refunds run inside the Limit of the Role that issues them, and a larger amount waits for an Approval.
Earns and the authorization
earns names the Event that turns a payment into revenue. For a Service it is Order.confirmed, which fires on a confirmation or when a line's window closes in silence.
Payment is authorized when the Customer accepts the Quote or places the Order. Each line's share is captured on its earns Event and posts as revenue then. A refund before that Event releases the authorization, and no revenue was ever counted.
Terms that never vary
A contract is versioned with its Offer. A new Version applies to new Orders, and every placed Order keeps the terms it was bought under.
Experiments test copy, intake forms, and Evaluators freely. They never vary a buyer's remedy, revisions, refund rights, or window: two Customers buying the same Offer get the same promise.
Next
- Quotes and intake: pricing one job and checking it against its brief.
- Delivery and acceptance: an Order moving through these terms, line by line.
- Disputes: when the two sides read a term differently.