How do I report AI work done on a monthly retainer?

Send a monthly packet, not a narrative: the month's jobs listed with their handover links, the decisions the client recorded on them, the agent spend against its limits, and the exceptions, in one short document. A retainer renews on confidence, and confidence is built by records the client can check in minutes.

Last updated: 2026-10-17

Retainer reporting fails in a familiar way: a polished summary arrives, the client cannot see the work behind it, and renewal becomes a negotiation about trust at exactly the moment the fee is questioned. The packet inverts the flow: the summary shrinks to a page, and the evidence is attached as the month's records themselves.

The packet's four sections mirror the questions a retainer client actually holds. What did you do: the job list, each job one line with its handover link, steps and acceptances one click away. What did I decide: the month's recorded acceptances and holds, which also reminds the client of their own involvement in the outcomes. What did it cost to run: agent spend for the month against the caps in force, refusals included, because a client who sees the controls trusts the autonomy. What needs attention: the exceptions page, unresolved sources, held steps, and next month's proposed focus.

Assemble it from the records rather than writing it fresh: the job list is /today filtered by the month, the decisions sit on the handovers, the spend sits in the limit records. An hour a month, most of it the one page of summary. Agencies that report this way find the renewal meeting changes subject, from whether the work happened to what next month should hold.

Template: the monthly retainer packet

Header: client, month, preparer. Section 1, work done: table of jobs (name, date, handover link, status). Section 2, decisions recorded: acceptances and holds with dates. Section 3, run cost: agent spend for the month, caps in force, refusals count. Section 4, exceptions and next month: unresolved items named; proposed focus in three lines. Delivery: one message, packet attached or linked, with the sentence "Every job above opens its full record from its link." File with the month's records.

Worked example

Section 1's links open like the public handovers in this section: https://zambo.dev/handover/508a46e2-8d6e-4099-bd12-7ae461c72c55 is a four-step job a client can read in minutes. A month of rows linking to records like this is the packet's substance; the prose around it is a page at most.

Frequently asked questions

My retainer is small, a few jobs a month. Is a packet overkill?

At that size the packet is half a page and five minutes of assembly, and it still changes the renewal conversation. Scale the ceremony to the retainer; never scale the checkability down.

Should the packet include work the client held or rejected?

Yes, in Section 2 with the holds named. A packet that shows only successes teaches the client to discount it; a packet that shows the month as it was, holds included, is believed about everything else.

What if the client never opens the links?

The packet still did its work: the client knows the records exist and can be opened, which is most of the confidence effect. And in the one month something is questioned, the answer is already in their inbox.

By Brennan Zambo, founder of Zambo.

Last verified: 2026-10-17.

Send this month's packet built from records, not from memory: https://zambo.dev/demo/ .

Try a handover

A handover gives your client one proof link with verifiable receipts to review, then Accept or Flag.

try it: say 'use zambo to hand this over to <client>' in your ai

Add Zambo · Handover docs · Real public handover · AER-1