# Client report narrative framework: five parts, where each part's context comes from, and who writes it

RevSmith, updated 4 November 2026

Use this after the numbers have passed the number-QA checklist and before the report goes to its approver. It works for a monthly retainer report in any tool. The numbers say what moved; only your own records say why. From the guide "How to automate client reporting: the 4-step workflow" (https://revsmith.in/guides/automate-client-reporting).

## The five parts

| Part | The question it answers | Where the context comes from | Who writes it | Length |
|---|---|---|---|---|
| 1. What happened | Did we hit the goal we agreed, and which two or three numbers moved? | The checked figures, against the targets and budget agreed at onboarding or at the last review | AI may draft, but only around figures made by code or the reporting tool | Two to four sentences |
| 2. Why | What caused the movement? | The account change log, call notes and decisions, client-side events (a sale, a stock-out, a price change, a site release), platform changes | A person. AI only when it can cite the record | One sentence per cause, each with its record |
| 3. What we did | Which work was delivered this period? | Completed tasks and deliverables, set against the scope sold | Pulled from the task list; a person edits | A short list |
| 4. What is next | What we will do next period, and why | The plan, the scope left this month, the test queue, the targets for next month | A person | Two or three sentences |
| 5. What we need from you | Which decision or input do we need, and by when? | Open approvals, the client's dependencies, missing assets or access | A person, with a named owner and a date | One ask, two at most |

## Where to keep the context, so the "why" is never written from memory

| Context | Keep it in | Updated by | When |
|---|---|---|---|
| Goals, targets and budgets | The client record or onboarding intake | Account lead | At onboarding and every review |
| Scope sold (what is included, allowances, exclusions) | The statement of work or the scope record | Account lead | At signing and on every change request |
| Account changes (budgets moved, campaigns paused or launched, bids, tests) | A change log per client, one line per change with date and reason | Whoever made the change | The day of the change |
| Decisions and promises from calls | Call notes or a decisions log | Whoever ran the call | Within a day of the call |
| Client-side events (sales, launches, stock, site releases, staff changes) | The same change log, marked "client" | Account lead | When the client tells you |
| Platform changes (attribution, API, policy) | The same change log, marked "platform" | Analyst | When you find them |

If a part has no source in this table, the report cannot say it.

## Rules for every report

1. **Start from the business goal, not the channel.** Open with leads, sales, pipeline or revenue against target, then show the channel figures that explain it.
2. **No number typed by hand or by a model.** Every figure comes from the checked pull. The words go around them.
3. **No cause without a record.** If the "why" cannot point to a change, a call, a client event or a platform change, write "we are checking" and say when you will know.
4. **Say bad news first and plainly.** A missed target goes in the first sentence, with the cause and the fix.
5. **One ask, with a date.** A report with five asks gets none answered.
6. **Out-of-scope requests leave the report.** Turn them into a change request with a price and a date, not a promise in the commentary.
7. **Same names every month.** Use the metric names and definitions the client agreed.
8. **Plain words.** No "performance remained strong", "we saw some fluctuations" or "optimizations were made". Name the number, the cause and the action.

## What AI may draft, and what stays with a person

| AI may draft | A person writes or approves |
|---|---|
| "What happened" sentences around figures it is given as placeholders | Every cause, with its record |
| A first list of "what we did" from completed tasks | What is next, and why |
| A shorter version for an executive reader | The ask and its date |
| Translations of approved text | Anything about fees, scope or the contract |
|  | The final approval of the whole report |

Safe set-up for any AI drafting: code fills every figure; any sentence with a number the code did not make is deleted; the period, currency and client are set by code, never by the prompt; a named person approves before the client sees it.

## Fill-in template

**Client:** ______ **Period:** ______ **Approver:** ______

**1. What happened.** [Goal metric] was [figure] against a target of [target] ([share of target]). [Second figure] [rose or fell] [change] to [figure]. [Third figure, only if it changes a decision].

**2. Why.** [Movement] because [cause], [record: change log entry, call on date, client event]. Unknown causes: "We are checking [what]; we will confirm by [date]."

**3. What we did.**
- [Deliverable or task], [date]
- [Deliverable or task], [date]

**4. What is next.** Next [period] we will [action] because [reason]. If [condition] by [date], we will [fallback].

**5. What we need from you.** [One decision or input], from [named person], by [date].

**Sources and period (foot of the report).** [Source, account ID, period, time zone, currency, pulled at], one line per source.

## Example (not a real client; every number is made up)

**1. What happened.** Qualified leads were 212 against a target of 200 (106%). Cost per lead rose 9% on September.

**2. Why.** Cost per lead rose because we moved a fifth of the budget to the new prospecting campaign on 14 October, as agreed on the 10 October call.

**3. What we did.**
- Launched the prospecting campaign, 14 October
- Replaced the two oldest ads on the retargeting campaign, 21 October

**4. What is next.** If the prospecting campaign's cost per lead is still above $48 on 15 November, we move the budget back to retargeting.

**5. What we need from you.** The November offer copy, from your marketing lead, by 6 November.

**Sources and period.** Google Ads account 123-456-7890 and Meta ad account 987654321, 1 to 31 October, account time zones, USD, pulled 3 November 07:00.

## Approver's last read

- [ ] The first sentence states the goal against target.
- [ ] Every number traces to the checked pull (number-QA check 14 done).
- [ ] Every "why" names its record.
- [ ] The ask has one owner and one date.
- [ ] Nothing in the report promises work outside the scope sold.
- [ ] The version approved is the version sent, and it is kept.
