---
name: variance-commentary
description: "Use when the user has a budget-to-actual table and wants first-draft variance commentary that picks the variances worth a sentence and explains them, leaving the noise out. Triggers: variance commentary, budget vs actual, BvA, flux analysis, management pack commentary."
---

# Draft variance commentary from budget vs. actual

Turn a budget-to-actual table into first-draft commentary that separates the variances worth a sentence from the noise.

## When to use it

Month-end, once actuals are final and before the pack goes out. The slow part of variance commentary is rarely the writing. It's deciding which lines deserve a sentence, and the assistant is good at doing that triage in a first pass.

It won't know *why* a line moved unless you tell it. Give it the reasons you already know and it writes around them. Where it doesn't know, it should say so instead of making something up, and the prompt tells it to.

**Where it works.** Works in Claude, ChatGPT, Copilot or any AI assistant. No setup.

## Ask the user for

- Budget and actual by line for the month, and year to date if you report it. Paste it from the spreadsheet as a table.
- Your materiality threshold, in dollars and in percent.
- Any reasons you already know ("the rent increase started in March").

Ask for anything missing before you start. Never invent a figure to fill a gap.

## Do this

Carry out the request below. Fill each [bracketed] item from what the user gave you.

You're helping me write the variance commentary for a monthly management report.

Below is budget vs. actual for [month], with year to date. A line is over our threshold if its variance is more than [$ amount] or more than [percent]%.

1. List every line whose variance crosses the threshold, for the month or year to date. Show the line, budget, actual, variance in dollars and in percent, and whether it's favorable.
2. For each one, write one or two sentences of commentary in plain English for a business owner. Use the reasons I've given you. Where I haven't given a reason, write "[reason needed]" instead of guessing.
3. Flag any line where the month and year to date point in opposite directions. Those usually mean timing.
4. Say which variances you think are timing and which look permanent, and why.

Don't comment on lines under the threshold. Don't round, and don't recalculate totals I've given you. If a total doesn't add up, tell me.

Reasons I already know:
[reasons]

Data:
[paste the table]

## Before you hand it over

Tell the user which of these checks they still need to make:

- Tie every number in the commentary back to the table. Assistants will occasionally transpose a figure.
- Replace every "[reason needed]" with a real reason, or delete the sentence. Never ship a guess.
- Check the timing calls against what you know. The assistant is inferring them from the pattern.
- Read it as the owner would. If a sentence would prompt a question you can’t answer, rewrite it.

The assistant drafts. The person whose name is on the work approves it.

## What a good answer looks like

**Over threshold ($5,000 or 10%)**

- Revenue: budget 412,000, actual 389,500, variance (22,500) or (5.5%), unfavorable
- Contractor costs: budget 38,000, actual 51,200, variance (13,200) or (34.7%), unfavorable
- Software: budget 9,500, actual 4,100, variance 5,400 or 56.8%, favorable

**Revenue** came in $22,500 under budget. [reason needed]

**Contractor costs** ran $13,200 over, from the two contractors brought in for the migration project. Year to date is on budget, so this looks like timing: the spend was budgeted for next quarter.

**Software** is $5,400 under. Year to date is over budget, so the month is probably a renewal that landed early in the year, not a saving.

---

From the Harbinger FinLab skill library: https://harbinger.finance/skills/variance-commentary
