Purpose
Turn a table of actuals-vs-budget (or forecast) deltas into clear, defensible written commentary that explains what drove each material variance, whether it's favorable or unfavorable, and whether it's timing or structural — so the reporting package reads as analysis, not just arithmetic.
When to Use
Invoke this skill when the user asks to:
- Write variance commentary for a monthly or quarterly financial package
- Explain why actuals differed from budget or forecast
- Draft the MD&A or narrative section of a board or management deck
- Summarize P&L line-item drivers for a review meeting
- Convert a variance table into readable finance prose
- Produce favorable/unfavorable driver explanations for revenue, COGS, or opex lines
Inputs Required
Before starting, collect:
- Reporting period: The month, quarter, or period being reported (and prior period for context if relevant)
- Comparison basis: Actuals vs. Budget, vs. Forecast, vs. Prior Year, or multiple
- Variance data: Line items with Actual, Comparison figure, $ variance, and % variance — table or list
- Materiality threshold: Dollar and/or % floor below which variances aren't commented on (default: $50K or 5%, whichever is larger, if unspecified)
- Known drivers: Any explanations the analyst already knows (e.g., "headcount hire delayed to Q2," "one-time legal settlement")
- Audience: Board / CFO / department heads / lenders — sets tone and depth
- Statement scope: P&L only, or include Balance Sheet / Cash Flow variances
If drivers are not supplied for a material line, generate the 2–3 most probable driver hypotheses and clearly flag them as requiring analyst confirmation.
Instructions
Step 1: Apply Materiality and Sort
Filter the variance list to items at or above the materiality threshold. Sort remaining items by absolute dollar variance, largest first. Note the aggregate of all immaterial variances as a single "all other" line so the commentary reconciles to the total.
Step 2: Classify Each Variance
For every material line, tag it on three dimensions:
- Direction: Favorable (F) or Unfavorable (U) — judged by earnings impact, not sign. Lower opex than budget = Favorable; lower revenue than budget = Unfavorable.
- Nature: Timing (will reverse in a later period) vs. Permanent (structural change to the run rate)
- Controllability: Operational decision, volume-driven, rate/price-driven, or one-time/non-recurring
Step 3: Quantify and Attribute
For each line, state the variance in both dollars and percent, then attribute it to a driver. Where a variance has multiple components, decompose it:
- Price/Rate vs. Volume: Split revenue and COGS variances into volume effect and price/rate effect where data allows
- Mix: Note when product/customer mix shifted margins
- Attribute the dollar amount to each component so the parts sum to the total variance
Step 4: Write the Commentary Per Line
Use this sentence pattern for each material variance:
"[Line item] was [$ actual] versus [$ comparison], a [$X] ([Y%]) [favorable/unfavorable] variance, driven primarily by [driver]. This is [timing/permanent] and is [expected to reverse in Q_ / a change to the ongoing run rate]."
Lead with the driver, not the number the reader can already see. Avoid restating the whole table.
Step 5: Build the Executive Summary
Open with a 2–4 sentence roll-up: net variance to budget/forecast, the two or three largest favorable drivers, the two or three largest unfavorable drivers, and the single most important message the CFO should take away.
Step 6: Add Forward Look and Flags
Close with implications: which timing variances will reverse, which permanent variances change the full-year outlook, and any items requiring analyst confirmation or management action. Flag any driver hypotheses that were assumed rather than provided.
Output Format
- Structure: Executive summary paragraph → commentary grouped by statement section (Revenue, COGS/Gross Margin, Operating Expenses, Below-the-line, then Balance Sheet/Cash Flow if in scope) → forward look and flags
- Length: 500–900 words depending on number of material lines
- Format: Prose commentary with bolded line-item leads; each material variance as its own short paragraph or bullet
- Sections: Executive Summary → Revenue Drivers → Cost & Margin Drivers → Operating Expense Drivers → Other/Non-Operating → Forward Look & Items to Confirm
- Tone: FP&A specialist — precise, neutral, driver-first; no hedging on numbers, no editorializing beyond the data
Quality Checklist
Before delivering output, verify:
- [ ] Every commented line states both a dollar and a percent variance
- [ ] Each material variance is labeled favorable or unfavorable by earnings impact, not raw sign
- [ ] Each variance is classified as timing or permanent
- [ ] The sum of commented variances plus the "all other" line reconciles to the total variance
- [ ] Any driver not supplied by the analyst is explicitly flagged as an assumption to confirm
- [ ] The executive summary names the top favorable and unfavorable drivers, not just the net number
Notes
- Favorable is not always good: an opex variance that's favorable because a critical hire slipped is a risk, not a win — note the operational implication.
- Timing vs. permanent is the classification finance leaders care about most; when in doubt, state which quarter a timing variance is expected to reverse.
- For revenue and COGS, always attempt the price/volume/mix decomposition — "revenue was up on higher volume" is far stronger than "revenue was up."
- If comparison basis is ambiguous, default to Actuals vs. Budget and state the basis explicitly at the top of the commentary.
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills