Write variance commentary that tells a story instead of restating a table — templates for revenue, GM, opex, EBITDA, FCF with named drivers + materiality threshold applied. Source-cite every number. Used by `fpa-analyst` (primary) + `board-pack-composer`.
Scanned 9/23/2026
npx -y skills add mcorbett51090/RavenClaude --skill variance-commentary --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Variance Commentary?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mcorbett51090-variance-commentary)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: variance-commentary
description: Write variance commentary that tells a story instead of restating a table — templates for revenue, GM, opex, EBITDA, FCF with named drivers + materiality threshold applied. Source-cite every number. Used by `fpa-analyst` (primary) + `board-pack-composer`.
---
# Skill: variance-commentary
**Purpose:** How to write variance commentary that tells a story instead of restating a table. Used by `fpa-analyst` (primary), `board-pack-composer`, and any agent that produces a variance walk.
## When to use
- Monthly / quarterly variance walks for management review
- Variance commentary inserts for board / investor packs
- Forecast accuracy reviews
- Pre-audit "explain the year" sessions
## The shape of good commentary
Bad commentary describes the variance:
> Revenue was $1.2M below plan, driven by lower new bookings.
Good commentary names the driver:
> Revenue was $1.2M below plan because two enterprise deals (Customer A, $600K; Customer B, $550K) slipped from Q3 to Q4. Both are on Q4 close lists with weighted probability >70%. Net impact: Q4 will overshoot if both close; FY guidance unchanged.
The bad version restates the table. The good version tells the reader *why*, *what's next*, and *what to do with the information*.
## The variance-commentary canvas
For each material variance, write:
1. **What happened.** One sentence with the size of the variance.
2. **Why it happened.** One or two sentences with the actual driver, named specifically. Not "lower bookings" — *which* bookings, *which* customers, *which* segment.
3. **Direction over time.** Is this a one-time event, a trend, or part of a normal seasonal pattern?
4. **Impact on the outlook.** Does this change the forecast for the next period? The full year? The strategy?
5. **What's being done.** Who owns the response, what's the next-action / next-decision-point.
## Variance walks for the canonical P&L lines
### Revenue
- **Rate vs volume vs mix vs FX** decomposition. State which moved.
- For ARR: new vs expansion vs churn vs FX (if multi-currency).
- For services: hours billed × rate × utilization, separate each driver.
### Gross margin
- Mix shift (higher- vs lower-margin product / segment)
- Pricing changes
- Direct cost movements (COGS line items)
- One-time items (inventory write-down, refund reserve true-up)
### Operating expense (by function)
- Headcount actual vs plan, ramp timing
- Comp & benefits true-ups (commission, bonus accrual, payroll tax)
- Discretionary spend (marketing programs, travel, professional services)
- One-time items (severance, legal settlements, restructuring)
### EBITDA bridge
- Show the bridge from prior period or plan: starting EBITDA + each material driver (signed) = ending EBITDA. Each step on the bridge tied to a P&L line and an owner.
### Free cash flow
- EBITDA → working capital change → capex → cash interest → cash tax → FCF
- Working capital drivers (AR aging, AP timing, inventory build)
- Capex commitments coming due vs deferring
## Materiality
Declare the threshold up front:
> Commentary covers variances ≥ $50K or ≥ 5% of the line, whichever is greater.
Without this, you waste hours on noise and miss real signal.
## Common pitfalls
- **Restating the table in prose.** "Revenue of $5M is $1M below the $6M plan." That's the table; that's not commentary.
- **Naming a driver too high.** "Lower demand" is not a driver. "Lower demand in vertical X due to [specific event]" is.
- **Anchoring on the variance, not the absolute number.** A 50% favorable variance on a tiny line is rarely worth commentary; a 2% unfavorable on the largest line might be.
- **Confusing timing with miss.** A deal that closes in October instead of September is timing; a deal that's not closing is a miss. They have different responses.
- **No outlook implication.** Commentary without a "what does this mean for next period" is half-finished.
- **Forecast revisions reported as "same as last month."** If the forecast didn't move when reality moved, the forecast is broken.
## The 80/20
Most board / management readers can't internalize more than 5-7 variances. Pick the largest by absolute dollar (not %), comment on those well, and put the rest in a table with one-liner explanations in an appendix.
## See also
- Template: [`../../templates/variance-commentary.md`](../../templates/variance-commentary.md)
- Agent: [`../../agents/fpa-analyst.md`](../../agents/fpa-analyst.md)
- Agent: [`../../agents/board-pack-composer.md`](../../agents/board-pack-composer.md)
- Skill: [`../board-pack-composition/SKILL.md`](../board-pack-composition/SKILL.md) — for how variance commentary fits into a board pack
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!