Purpose
Turn a period-over-period variance table into review-ready flux commentary that explains why each material line moved — with quantified driver attribution, business context, and materiality filtering — so analysts stop hand-writing the same explanations every close cycle and reviewers get consistent, defensible narrative.
When to Use
Invoke this skill when the user asks to:
- Write flux or variance commentary for a monthly, quarterly, or annual close
- Explain budget-to-actual or actual-to-prior-period differences
- Draft MD&A-style narrative for a management or board reporting package
- Convert a raw variance table into written explanations for a review deck
- Explain why a specific P&L or balance sheet line moved
- Produce consistent flux commentary across multiple entities or cost centers
Inputs Required
Before starting, collect:
- Financial data: Line-item values for both periods (current and comparison) — pasted table, CSV, or list. Include account/line name, current period, comparison period.
- Comparison basis: What's being compared — actual vs. prior month, actual vs. prior year, actual vs. budget, or actual vs. forecast.
- Period labels: The two periods being compared (e.g., "Q3 2024 vs. Q3 2023")
- Materiality threshold: Dollar amount and/or percentage that makes a variance worth explaining (e.g., ">$50K and >10%"). Default: >$25K or >10% of the line if not provided.
- Known drivers: Any events the analyst already knows caused variances (headcount changes, one-time items, price changes, timing, reclasses)
- Audience: Who reads this — CFO, board, controller, operational leaders — which sets tone and depth.
If materiality is not provided, apply the default threshold and state it explicitly at the top of the output.
Instructions
Step 1: Compute and Classify Variances
For each line item, calculate:
- Dollar variance: Current − Comparison
- Percent variance: Dollar variance ÷ absolute value of comparison period
- Direction: Favorable or Unfavorable — determined by line type (revenue up = favorable; expense up = unfavorable; contra/reserve lines flagged for manual confirmation)
Classify each line as Material or Immaterial against the threshold. Only material lines get full narrative; immaterial lines may be grouped into a single roll-up sentence.
Step 2: Attribute Drivers
For each material variance, break the change into its underlying drivers rather than restating the number. Use this attribution hierarchy:
- Volume vs. Rate/Price: Did the change come from more/fewer units or a change in unit economics? (e.g., "revenue rose $420K: $310K from 12% higher units, $110K from a 4% price increase")
- Timing vs. Permanent: Is this a shift between periods that will reverse, or a structural change?
- One-time vs. Recurring: Isolate non-recurring items (true-ups, accruals, legal settlements, impairments) so the underlying run-rate is clear.
- Known driver mapping: Attach any analyst-supplied drivers to the correct line.
Where the data does not support definitive attribution, state the most probable driver and flag it as [requires confirmation] rather than inventing specifics.
Step 3: Write the Line-Level Narrative
For each material line, write a 1–3 sentence explanation following this pattern:
- What moved — line name, dollar and percent variance, favorable/unfavorable
- Why it moved — the quantified driver(s) from Step 2
- So what (when relevant) — run-rate implication, whether it reverses, or action being taken
Keep each explanation tight. Lead with the largest variances. Never restate a number without a reason attached to it.
Step 4: Organize by Statement Structure
Group the narrative in standard financial statement order:
- Revenue (by segment/product if provided)
- Cost of Goods Sold / Cost of Revenue (and gross margin movement)
- Operating Expenses (by function: S&M, G&A, R&D as applicable)
- Below the line (interest, tax, other)
- Balance sheet lines (if provided — receivables, payables, inventory, cash)
Within each group, order lines by dollar magnitude of variance, largest first.
Step 5: Write the Executive Summary
Open with a 3–5 sentence summary that gives the reviewer the headline before the detail:
- Net direction of the period (overall favorable/unfavorable and by how much)
- The 2–3 largest drivers of the total variance
- Any one-time items distorting the picture
- Whether the underlying trend is improving, stable, or deteriorating
Output Format
- Structure: Executive summary → line-level narrative grouped by statement section → immaterial roll-up → items requiring confirmation
- Length: 600–1,000 words, scaling with the number of material lines
- Format: Executive summary as prose; line-level commentary as bulleted or bolded-line entries (line name → explanation); optional variance table if the user wants figures alongside narrative
- Sections: Materiality note → Executive Summary → Revenue → COGS & Gross Margin → Operating Expenses → Other/Below the Line → Balance Sheet (if applicable) → Immaterial Items Roll-Up → Items Requiring Confirmation
- Tone: Controller-grade — precise, quantified, neutral. No hedging filler, no speculation presented as fact, no adjectives that aren't backed by numbers.
Quality Checklist
Before delivering output, verify:
- [ ] Every material variance has a stated driver, not just a restated dollar amount
- [ ] Dollar and percent variance are shown for each material line and the math is correct
- [ ] Favorable/unfavorable direction matches the line type (expense increases are unfavorable)
- [ ] Every line above the materiality threshold is explained; nothing material is silently dropped
- [ ] Any invented or uncertain driver is flagged as [requires confirmation] rather than stated as fact
- [ ] The materiality threshold used is stated explicitly at the top of the output
Notes
- The most common failure in auto-generated flux commentary is restating the number ("Revenue increased 12%") without a driver — this skill treats an unexplained variance as incomplete.
- When volume/rate decomposition isn't computable from the inputs, ask for units or price data rather than fabricating the split.
- For multi-entity or multi-cost-center runs, apply the same threshold and structure to each so commentary is comparable across the consolidation.
- Encourage the analyst to feed known drivers up front — the narrative quality is bounded by the business context provided, and the skill will not invent operational causes it can't verify.
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