Purpose
Turn a raw actual-vs-budget table into structured, decision-ready variance commentary that isolates the true root cause of each material gap — not just the dollar difference — and hands FP&A a defensible narrative for the management review. Eliminates the "we spent more than planned" non-explanation that gets analysts sent back to their desks.
When to Use
Invoke this skill when the user asks to:
- Analyze actual vs. budget (or actual vs. forecast) results for a period
- Write variance commentary or explanations for a management/board deck
- Explain why a line item came in over or under plan
- Categorize variances by root cause for a P&L or department budget
- Prepare the narrative section of a monthly or quarterly business review
- Identify which variances are material enough to require action
Inputs Required
Before starting, collect:
- Variance data: Line items with actual, budget (or forecast), and variance — as a table, list, or pasted export
- Period: The reporting period (e.g., "May 2024," "Q2 FY25," "YTD through June")
- Materiality threshold: Dollar and/or percentage floor for what counts as material (default: ±5% AND ±$25K if not specified)
- Statement type: P&L, department expense budget, cost center, project budget, or cash flow
- Known drivers: Any context the analyst already has (e.g., "a large deal slipped," "we hired 3 late," "vendor price increase")
- Favorable/unfavorable convention: Whether over-budget spend is shown as positive or negative
- Audience: Who reads this — department head, CFO, board, or investors
If materiality threshold is missing, apply ±5% and ±$25K and state the assumption. If favorable/unfavorable convention is unclear, treat higher revenue and lower cost as favorable and note it.
Instructions
Step 1: Normalize and Rank the Data
Before analyzing, put every line item on the same footing:
- Recompute variance in both dollars and percentage for each line
- Standardize sign convention so favorable = good (revenue above plan, cost below plan) and label each item F or U
- Rank all line items by absolute dollar variance, largest first
- Flag every item that breaches the materiality threshold — these get full treatment; sub-threshold items are summarized in aggregate
Step 2: Categorize Each Material Variance by Root Cause
For every material item, assign a primary root-cause category. Do not accept a variance without a category.
- Volume/Activity — the variance is driven by more or fewer units, transactions, headcount, or activity than planned (e.g., higher sales volume, more support tickets, delayed hires)
- Price/Rate — same volume, different rate: unit price, wage rate, vendor rate, FX, or discount level moved (e.g., vendor raised prices, average selling price fell)
- Timing — the spend or revenue is real but landed in a different period than budgeted; it will reverse or catch up (e.g., invoice slipped a month, project kickoff delayed, revenue recognized early)
- One-Time/Non-Recurring — a discrete event not expected to repeat (e.g., severance, legal settlement, one-off bonus, asset write-off)
- Structural/Permanent — a lasting change to the run rate that should be reflected in the forecast (e.g., permanent headcount add, new recurring subscription, pricing model change)
- Budget/Planning Error — the budget itself was wrong or built on a bad assumption (e.g., forgot annual license renewal, double-counted a cost)
Where a variance splits across categories, decompose it (e.g., "$180K U total: $120K volume from delayed hires, $60K timing from a slipped recruiter invoice").
Step 3: Quantify the Drivers
For each material item, express the "why" in numbers the reader can trace:
- Isolate the dollar impact of each root cause within the line
- Where volume and price both moved, use a simple price/volume bridge: Volume impact = (Actual units − Budget units) × Budget rate; Rate impact = (Actual rate − Budget rate) × Actual units
- Tie the number back to a business event whenever context is available
- For timing items, state the expected reversal period so the reader knows it self-corrects
Step 4: Assess Trend and Trajectory
Judge whether each material variance is a one-period blip or a developing pattern:
- Is this variance new this period, worsening, or stable?
- Does the root cause imply the run rate is now different (structural) versus a self-correcting timing gap?
- For unfavorable structural items, estimate the annualized or full-year impact if the trend holds
Step 5: Recommend Management Actions
Translate diagnosis into a decision. For each material unfavorable variance and each significant favorable one, recommend one of:
- Reforecast — structural change; update the outlook to reflect the new run rate
- Corrective action — controllable overspend; specify the lever (renegotiate, pause, reallocate)
- Monitor — timing or minor; watch for reversal next period, no action yet
- No action / accept — one-time and closed, or favorable and sustainable
Be specific about the lever — "reduce spend" is not an action; "renegotiate the software contract at renewal in Q3, estimated $40K annual savings" is.
Step 6: Write the Executive Summary
Open with a 3–5 sentence headline the audience can read in isolation: net variance for the period (favorable/unfavorable), the two or three biggest drivers, and whether the full-year outlook is at risk. Lead with the story, not the spreadsheet.
Output Format
- Structure: Executive summary first, then a material-variance table, then per-item commentary blocks, then a recommended-actions list
- Length: 700–1,100 words, scaling with the number of material line items
- Format: Prose executive summary + table for the variance overview + short structured commentary blocks per material item
- Sections: 1. Executive Summary — net result and top drivers in plain language 2. Material Variance Table — line item | actual | budget | $ var | % var | F/U | root cause 3. Variance Commentary — one block per material item: what happened, root cause, dollar decomposition, trend, recommended action 4. Immaterial Variances — one aggregated paragraph 5. Recommended Actions — numbered list, ranked by dollar impact, each with owner-level lever
- Tone: FP&A business partner — precise, quantified, opinionated on cause; every claim ties to a number
Quality Checklist
Before delivering output, verify:
- [ ] Every material line item has exactly one primary root-cause category assigned (no uncategorized variances)
- [ ] Every dollar variance is accompanied by a percentage, and F/U labeling is consistent throughout
- [ ] At least the top 3 drivers are decomposed into specific dollar amounts, not just described in words
- [ ] Timing variances state the expected reversal period; structural variances state annualized impact
- [ ] Every recommended action names a specific lever — no "reduce spend" or "monitor closely" without detail
- [ ] The executive summary states net variance and would stand alone if the reader saw nothing else
Notes
- The most common mistake in variance analysis is describing the variance instead of explaining it — "Marketing was $60K over" restates the number; "Marketing was $60K over from a Q2 event pulled forward from Q3 (timing, reverses next period)" is analysis.
- If the underlying volume and rate data isn't provided, request it before attempting a price/volume bridge rather than guessing the split.
- Timing variances are the most over-reported real cause and the most under-diagnosed — pressure-test whether a "timing" item is actually a permanent structural change dressed up as a slip.
- When favorable variances are large, scrutinize them as hard as unfavorable ones: under-spend often signals a delayed initiative or a hiring gap, not efficiency.
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