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.
For FP&A · Controller · Fractional CFO · Updated
What this skill does
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.
Use it
Works in Claude, ChatGPT, Copilot or any AI assistant. No setup.
01Point your assistant at it
Paste this line into a chat with any assistant that can read a web page. It reads the skill and follows it.
Read https://harbinger.finance/skills/variance-commentary/SKILL.md and follow it.02Download the skill file
Add it to your assistant as a skill, or attach it to a chat. It is plain markdown, so you can read every word first.
Download SKILL.md03Or paste the prompt
Replace the [brackets] with your own numbers first.
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]
What you provide
- -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").
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.
Check before you use it
- 01Tie every number in the commentary back to the table. Assistants will occasionally transpose a figure.
- 02Replace every "[reason needed]" with a real reason, or delete the sentence. Never ship a guess.
- 03Check the timing calls against what you know. The assistant is inferring them from the pattern.
- 04Read 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.
The skill file
Read the SKILL.md your assistant gets
---
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