TL;DR
Month-end is closed, you have an actuals-vs-plan table, and the CFO wants commentary by 9am. AI cannot tell you why a line missed, but if you hand it the variances plus your known cause for each material line, it writes a clean one-page narrative in under five minutes. The whole job is upstream: set a materiality threshold, paste only material lines, give one cause-hint per line, and forbid the model from inventing causes. The copy-ready prompt below does exactly that.
The task
Month-end closed. You have an actuals-vs-plan table that is reconciled and locked. The CFO wants variance commentary by 9am. You have 30 minutes and a copy of the file. This is a writing problem, not an investigation problem — and that is precisely the part AI is good at.
When this is the right job for AI
- Your variance table is closed and reconciled, not still under revision. If numbers move after you draft, you redo the narrative.
- You can give AI just the variances and your top one to two known causes per line. The model explains; it does not discover.
- You want narrative, not root-cause analysis. If you do not yet know why a line missed, mark it “in progress” — the model cannot reverse-engineer a GL it never saw.
If you are still hunting for the driver behind a line, that is a different task — see AI business driver breakdown — and you should do that first.
Set the materiality threshold before you prompt
The single biggest quality lever is what you exclude. FP&A teams typically gate commentary on a dual threshold — an absolute dollar figure AND a percentage — so a tiny line with a 40% swing and a huge line with a 2% swing both get filtered correctly. Common public guidance lands around “explain only variances above $50K or 10%,” but use whatever your variance policy already documents and apply it consistently every month (auditors notice when the threshold drifts).
Pick a rule, then only paste lines that breach it. A typical P&L produces 8-15 material lines worth commentary; everything else is noise.
What to feed the AI
| Input | Why it matters |
|---|---|
| Variance table: line, actual, plan, $ variance, % variance, F/U flag | The raw facts the narrative is built on |
Materiality threshold (e.g. > $200K OR > 10%) | Stops line-item noise; forces the model to rank |
| One cause-hint per material line | The “why” you already know — the model cannot guess it |
| Audience + length (CFO, 200 words) | Controls register and prevents bloat |
Note the F/U (favorable / unfavorable) flag: favorable means actual revenue beat plan or a cost came in under plan; unfavorable is the reverse. Keep the two visually separated in the output — a favorable variance can still hide a problem (a delayed cost is not a saved cost).
Copy-ready prompt
You are writing month-end variance commentary for the CFO.
Materiality: explain only variances > $200K OR > 10%.
Table:
| Line | Actual | Plan | Var $ | Var % | F/U | Known cause hint |
| Revenue | 12.4M | 12.0M | +400K | +3.3% | F | Enterprise renewal closed 2 weeks early |
| Gross margin | 56.2% | 58% | -180bps | - | U | Input costs up; freight |
| Sales OpEx | 2.8M | 2.5M | +300K | +12% | U | Two open reqs filled |
| Marketing OpEx | 0.9M | 1.2M | -300K | -25% | F | Q3 campaign delayed |
| R&D | 1.8M | 1.8M | 0 | 0 | - | - |
Rules:
- If I gave no cause hint for a line, mark it "cause unknown - in progress" and do not invent one.
- Default every variance to ONE-TIME unless the cause is clearly recurring; say so explicitly.
- Keep favorable and unfavorable lines in separate bullets.
Write:
1. One headline: net P&L impact and the single most important explanation.
2. One bullet per material line: variance, root cause in plain English, structural vs one-time, and whether to expect recurrence.
3. One "watch this": the variance with the most uncertain cause.
200 words. No raw percentages a non-finance reader cannot interpret.
What good output looks like
Headline: P&L net favorable +$220K, driven by the Q3 marketing campaign push-out — operating leverage was timing, not improvement.
- Revenue +$400K favorable: enterprise renewal closed two weeks early. One-time — do not assume in Q4.
- Gross margin -180bps unfavorable: input costs and freight. Structural — expect this to persist absent supplier renegotiation.
- Sales OpEx +$300K unfavorable: two open reqs filled mid-month. Structural going forward — full quarter run-rate hits in Q4.
- Marketing OpEx -$300K favorable: Q3 campaign pushed to Q4. One-time — full spend lands in Q4.
Watch this: gross margin. If input costs hold, Q4 margin lands closer to 55% than plan’s 58%.
Notice the headline does the analyst’s real job — it tells the CFO the +$220K is timing, not a structurally better quarter. That judgment is yours; the model just phrases it.
Which model and how to feed the table
You have two ways in, and the trade-off is precision vs polish:
| Method | Best for | Watch out for |
|---|---|---|
| Paste the markdown table into the prompt (any chat model) | A clean 8-15 line variance table you already trimmed | Model may restate a $ figure slightly off — verify the headline number |
| Upload the closed workbook and ask it to filter to material lines | When you have not pre-trimmed; lets the tool do the materiality math | Larger surface for hallucinated arithmetic; spot-check every number |
For the narrative itself, the workhorse models are close. As of June 2026, Claude Sonnet 4.6 (in the $20/mo Claude Pro plan, which now bundles Claude Code and Claude Cowork) tends to follow the “do not invent causes” rule most reliably and writes tight finance prose. GPT-5.5 (ChatGPT Plus, $20/mo) is the default for upload-and-analyze: its data-analysis sandbox can ingest a spreadsheet and do the filtering for you. ChatGPT spreadsheet uploads run up to roughly 50MB per CSV/Excel file, and ChatGPT Plus allows about 80 file uploads per 3 hours (the Free tier is limited to 3 per day, as of June 2026). Gemini 3.1 Pro (Google AI Pro, $19.99/mo) is a fine third option if your data already lives in Google Sheets.
For pasted-table narrative work, pick whichever you already pay for — the quality gap on a 200-word commentary is small.
How to refine the output
- AI labels everything “structural.” Push back: “Most month-level variances are one-time. Default to one-time unless the cause is clearly recurring.”
- Commentary is too soft (“could be a concern”). Add: “Use direct language; the CFO has seen one-month noise before — call it what it is.”
- AI invents causes for blank lines. The strict rule is already in the prompt; if it slips, repeat: “If I gave no cause hint, write
cause unknown - in progressand move on.” - Numbers restated wrong. Ask it to echo your
$variances back verbatim before writing, then diff against your table.
Common mistakes
- Pasting the full GL trial balance. The model dutifully explains noise. Trim to material lines first.
- Forgetting the materiality threshold. Commentary becomes a line-item list, not analysis.
- Mixing favorable and unfavorable in one bullet. Separate them — a favorable variance can mask a deferred cost.
- Shipping without checking the math. Models occasionally restate a
$variance off by a rounding step. Always verify the headline number by hand.
A note on data privacy
Variance tables are non-public financials, so route them through a corporate-approved tenant. By default, OpenAI does not train on ChatGPT Enterprise, Business, Edu, or API inputs and outputs — but a thumbs-up/down on a response can opt that single conversation into training, so disable feedback in sensitive workspaces. The consumer Free/Plus tiers are not the place for entity-level financials; if your policy is strict, strip the legal entity name and any customer names before pasting. See OpenAI’s business data page for the current terms.
FAQ
- Budget vs forecast vs actuals — does the same template work? Yes. Swap “plan” for “forecast” in the prompt. The structural-vs-one-time framing is identical; only the baseline changes.
- Can I just upload the Excel file instead of pasting a table? Yes, in ChatGPT’s data-analysis sandbox (Plus or higher) or Claude with file upload. It is more convenient but expands the surface for arithmetic errors — spot-check every restated number. Pasting a pre-trimmed table is more controllable.
- How is variance commentary different from driver analysis? Drivers explain why a metric moved; variance explains why it missed plan. Same data, different lens — see AI business driver breakdown.
- Will AI catch a sign error or a busted formula in my table? No. It explains the numbers you give it; it does not audit them. Reconcile and lock the table first.
- What length should I ask for? 150-250 words for a CFO one-pager. Anything longer reads as a list, not a narrative.
Related
- AI business driver breakdown
- AI financial trend analysis
- AI KPI weekly report
- AI executive summary
- Excel / Spreadsheet Analysis Prompts
Tags: #AI writing #Finance #Business analysis #KPI #Executive update