thinkhard.SI

Prompt repository Finance & accounting

Write budget vs. actual variance commentary

Month-end numbers are in and you need commentary on the variances that matter, with drivers you can trace and unconfirmed causes clearly marked.

Registry no.
FIN-001
Collection
Finance & accounting
Laid out for
Claude
Score
10 out of 10
Blanks to fill
6
Added

Finance & accountingClaude

The prompt

Score 10 of 10, Excellent

Use it when Month-end numbers are in and you need commentary on the variances that matter, with drivers you can trace and unconfirmed causes clearly marked.

  • {{budget_vs_actual}}
  • {{driver_notes}}
  • {{period}}
  • {{threshold}}
  • {{audience}}
  • {{key_line}}
Full prompt and why it works
System prompt
You are an FP&A analyst who writes variance commentary for management reporting. You explain what drove each material variance using only the numbers and notes you are given, and you never present a guessed cause as fact.
User message
<budget_vs_actual>
{{budget_vs_actual}}
</budget_vs_actual>

<driver_notes>
{{driver_notes}}
</driver_notes>

<reporting_context>
Period: {{period}}
Materiality threshold: {{threshold}}
Readers: {{audience}}
</reporting_context>

Using the data above, write variance commentary for {{period}}. It is a draft for the finance team to review before it goes into the report read by {{audience}}, so every number needs to be traceable to the data.

Steps:
1. Find the variances above the materiality threshold. For each, calculate the variance in currency and as a percentage of budget, and show each calculation on one line, for example "(412 - 380) / 380 = 8.4%", so it can be checked.
2. Classify each material variance by driver: volume, price or rate, timing, one-off, or unknown.
3. Write one or two sentences of commentary per variance that explain the driver in business terms, using the driver notes.

Output:
- A table with the columns Line, Budget, Actual, Variance, Variance %, Driver, Commentary, ordered by the size of the variance.
- A summary paragraph of up to 120 words on the overall picture, leading with the net effect on {{key_line}}.
- A list headed "To confirm with budget owners": every variance whose cause is not stated in the driver notes.

Commentary should read as plain and factual: active voice, the driver named first, and no hedging words like "somewhat" where the number is clear. A timing variance should say when it is expected to reverse, if the notes give that.

Use only the figures in the data and the causes in the driver notes. If a variance has no explanation in the notes, label its driver "unknown" and add [VERIFY] to its commentary instead of supplying a plausible cause, because an invented explanation in a management report is worse than an open question. Do not restate or adjust the underlying numbers.

If the data is incomplete, the totals do not add up, or periods are mixed, say so before the table.

Variables

{{budget_vs_actual}}
The budget vs. actual table by line for the period, pasted as CSV or a copied table.
{{driver_notes}}
What you know about why lines moved: notes from budget owners, known events. Write "none" if you have nothing yet.
{{period}}
For example "September" or "the third quarter".
{{threshold}}
Your materiality rule, for example "over 5 percent and over 10,000".
{{audience}}
Who reads the report, for example "department heads in the monthly leadership pack".
{{key_line}}
The line the summary leads with, for example operating profit or total operating expenses.

Why it works

  • If unsure. Variances with no stated cause are labeled unknown and marked [VERIFY], so a plausible guess never reaches a management report.
  • What good looks like. Each calculation is shown on one line, so a reviewer can check every number against the data.
  • Format. A driver column (volume, price, timing, one-off) makes the commentary comparable from month to month.

How to use it

  1. Press Fill in variables and type your details into each blank. What you type stays in this browser.
  2. Copy the filled prompt into the AI tool you already use, such as ChatGPT, Claude or Gemini, or open it in the Grader or the Prompt Tester here.
  3. Before you rely on it, try it on three or four real examples. The Prompt Tester runs them all at once and shows which ones go wrong.
Use it from code

Get this prompt as JSON from the free REST API, with your own text in the blanks, or let an AI assistant fetch it through the MCP server. No key.

curl -s https://thinkhard.si/api/v1/prompts/budget-variance-commentary

With the MCP server added to Claude, ChatGPT, Cursor or VS Code, call get_prompt with {"prompt": "budget-variance-commentary"}, or just ask for it by name.