It's the fourth working day of close. The P&L is final, the variances are in column H, and you owe the CFO a page of commentary by noon. You've written "Revenue below budget due to lower volumes" nine months in a row. Everyone has stopped reading it.
The good news is that writing the sentences is the part AI does well. The bad news is that the same tool will happily write "driven by softer demand in the enterprise segment" without having any idea whether that is true. AI prompts for finance analysts need one structure above all: you do the calculation and the facts, the model does the prose and the questions, and every number in the final memo is ticked back to a cell.
These are untested templates. I haven't run them on a live close, and the figures in the worked example are invented (the arithmetic in it was checked with a short script, described below). Calibrate to your company's materiality rules and reporting style.
How do I write variance commentary with AI?
First, fix what people complain about in bad commentary. The recurring complaints in practitioner writing are the same: it restates the gap ("costs higher than plan") without explaining it, it treats a trivial line the same as a material one, it ignores what happens next, and it blames. Most of the sources saying this are FP&A vendors or consultancies with something to sell, so treat their specific thresholds as starting points. The complaints themselves are consistent enough to build a prompt around.
You are drafting variance commentary for the [MONTH] management pack.
Audience: [CFO / BU heads]. House style: concise, factual, no blame.
INPUTS (quote numbers exactly as given; do NOT calculate any new numbers):
Materiality rule: comment only where |variance| >= [X]% of budget AND
>= [AMOUNT] [CURRENCY]. Lines below the rule get one summary sentence.
For each line:
LINE | Budget | Actual | Variance | Variance % | Price / Volume / Mix split
(if given) | Reason from the budget owner (verbatim) | Owner
Reasons below are the ONLY causes you may state.
For each material line write 2-3 sentences:
1. What moved, with the figures given.
2. Why, using only the owner's reason. If none was supplied, write
"CAUSE NEEDED from [owner]".
3. Outlook: will it continue, reverse or grow, and what action is proposed?
If the owner didn't say, write "OUTLOOK NEEDED".
End with: a list of every number you used, and any line where the owner's
reason does not match the size of the variance.
The last instruction is your audit trail. It makes the model list every number it used so you can tick them off. And "CAUSE NEEDED" is the whole point. An analyst who gets that flag knows who to call. An analyst who gets a fluent made-up reason finds out in the review meeting.
Do the decomposition outside the model
Headline revenue variance can hide opposite stories. Splitting into price, volume and mix before writing makes the commentary hold up under follow-up questions. This is arithmetic, so do it in your spreadsheet or a script, then paste the result in.
Here is a small example I actually ran (the data is invented). Two products, budget versus actual revenue:
| Product | Budget units | Budget price | Actual units | Actual price |
|---|---|---|---|---|
| Standard | 1,000 | 50.00 | 1,150 | 46.00 |
| Premium | 400 | 120.00 | 330 | 121.00 |
Budget revenue is 98,000 and actual is 92,830, a variance of -5,170. A Python script using the convention volume = change in total units at budget mix and budget price, mix = shift in each product's share at budget price, price = price change on actual units, gave:
TOTAL volume +5,600 mix -6,500 price -4,270 sum -5,170
The three effects add exactly to the variance, which is the check to insist on. "Revenue was 5.2k below budget" would be the lazy line. The decomposed version says units were up, but sales shifted toward the cheaper product and the cheaper product was also discounted. Different conclusion, different action.
Conventions vary (some teams compute price at budget units, which gives a different split with the same total), so state yours in the memo. If you want the model to help, ask it to write the formulas or the script and run them yourself, rather than computing the split in its head. The same rule applies to everything arithmetic; for spreadsheet formulas in particular, see ChatGPT Excel and Google Sheets formula prompts.
Model review: ask for questions, not verdicts
A model can't open your workbook and tell you it's correct. It can generate a checklist of things to look at, tailored to what you describe, and can read formulas you paste. Use it as a second reader who asks awkward questions.
I'm reviewing a [3-statement / revenue / cost] forecasting model.
Structure: [SHEET NAMES AND PURPOSE]
Key drivers: [LIST]
Pasted formulas (cell address: formula) from [SHEET/RANGE]:
[PASTE]
Produce a review checklist as questions, ordered by likely impact:
1. Hardcoded numbers inside formulas (list each cell address).
2. Formulas in the pasted range that break the pattern of neighbours.
3. Sign convention and unit risks (thousands vs units, % vs decimal).
4. Places where an assumption on the Inputs sheet isn't referenced.
5. Circularity or timing risks (opening vs closing balances, period shifts).
6. Checks that should exist and don't (balance sheet balances, cash ties,
subtotals equal totals).
Do NOT state that the model is correct. For each item, say how I can test it
in Excel (a specific formula or Go To Special step).
Item 6 is the underrated one. Models without checks fail silently, and a prompt that makes you list missing checks tends to find the real problem. Reading only the pasted formulas has limits: it can't see links to other workbooks, hidden sheets or manual overrides, and it can mis-read a formula. Treat each flagged item as a lead.
Memo drafting: structure the argument, then fill it
A decision memo (approve a capex, change a forecast, take a reserve) works best as a skeleton you fill with verified facts. Ask for the skeleton and the counterarguments, not the finished memo.
I need to write a [2-page] memo to [APPROVER] recommending [DECISION].
Facts (the only facts you may use; each has a source label):
[F1: ... (source: ...), F2: ...]
My recommendation: [ONE SENTENCE]
Constraints: [POLICY, DEADLINE, BUDGET LIMIT]
Create:
1. Recommendation and ask in the first two sentences.
2. Section outline with what each section must prove.
3. The three strongest objections a sceptical CFO would raise, each with
which fact answers it or "no supporting fact yet".
4. Open data requests I should make before sending.
Do not write numbers into the memo that aren't in the facts. Use placeholders
like [NPV - to compute] instead.
Placeholders are the discipline. A memo with [NPV - to compute] is honest and unfinished. A memo with an invented NPV is a career event.
Reconciliation questions: use it to think, not to match
For a reconciliation that won't tie, the model can't see your ledger, but it can suggest where differences usually come from. Describe the symptom and paste a small, anonymised sample.
A reconciliation between [SYSTEM A] and [SYSTEM B] differs by [AMOUNT]
([+/-]) for [PERIOD]. Counts: A has [N] items, B has [M].
Sample of unmatched items (anonymised: IDs replaced with R1, R2...):
[PASTE 10-20 ROWS: date, amount, type, side]
List the most likely reasons ranked by fit with this pattern (timing,
cut-off, FX, rounding, duplicates, sign flips, fees netted, partial
payments). For each, give a test I can run to confirm or rule it out.
Do not assume any reason is true.
Anonymise before pasting. Replace vendor, customer and account names with IDs. If a sample can't be anonymised enough to leave the building, don't use an external tool for it.
A worked example (illustrative)
An invented scenario. The inputs are the decomposed numbers from earlier, and the budget owner's note: "Standard promo launched in week 2 to clear stock; Premium lost two accounts to a competitor." Materiality rule given: comment if over 3% of budget.
What good output looks like (shape):
Revenue: 92,830 vs budget 98,000, -5,170 (-5.3%). Volume was +5,600 but
mix (-6,500) and price (-4,270) more than offset it. Per the product owner,
a Standard promotion in week 2 drove unit volume and lowered price, and
Premium lost two accounts to a competitor (mix). OUTLOOK NEEDED: whether the
promotion continues next month and whether the two accounts are recoverable.
Number check: 98,000; 92,830; -5,170; 5,600; -6,500; -4,270.
The model hasn't computed anything or invented a reason. It has flagged the missing outlook and listed its numbers, so you can tick them in a minute. If your own tick finds a mismatch, the model quoted something wrong, and now you know it's the kind of tool that needs the check.
Where this goes wrong
| Failure | What it looks like | Fix |
|---|---|---|
| Invented cause | "Softer demand", "timing of orders" with no basis | Owner reasons only; CAUSE NEEDED flag |
| Mental arithmetic | A percentage that's slightly off, a total that doesn't add | Compute outside; "do not calculate" rule; number-check list |
| Unit slips | Thousands read as units | State units and currency in every input row |
| Smooth wording on bad news | "Slightly below" for a 12 percent miss | Give the materiality rule; ask it to quote the percentage |
| Pasted-in confidential data | Unreleased results in an unapproved tool | Check policy; anonymise or scale; use approved tools |
| Overconfident model review | "No errors found" | Forbid verdicts; ask for tests you can run |
| Stale context | A figure from last month's chat appears | New chat per pack |
What not to automate
- The numbers. Calculation, tie-outs and sign-offs are yours. Every figure in a final memo should be traceable to a cell.
- The explanation of why. The budget owner knows; the model doesn't. Collect reasons from the people who own the lines.
- Judgements on estimates, reserves and accounting treatment. These need your professional judgment and, depending on your role, your auditors or technical accounting team. A model's confident answer on a standards question is not a source. Check the standard or your policy manual.
- Forecast changes. The model can draft the narrative after you decide the number.
- Anything with unreleased results or confidential data in an unapproved tool. At a listed company, ask compliance before pasting anything that hasn't been published. I haven't stated rules for any jurisdiction here, so ask the people who own that.
- Sending the pack. Read it as if you'll be asked about every sentence, because you will.
If you work with Indian GST and tax workflows, prompts for chartered accountants covers that side, and AI prompts for data analysts goes deeper on SQL and exploration. For why the "use only these inputs" pattern works, read avoiding hallucinations, and the prompt library has more templates you can copy.



