variance-analysis
Decompose financial variances into drivers with narrative explanations and waterfall analysis. Use when analyzing budget vs. actual, period-over-period changes, revenue or expense variances, or preparing variance commentary for leadership.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-11
- Stars
- ★ 3.5w
- Forks
- 3.9k
01 前言 Front Matter
- name
- variance-analysis
- description
- Decompose financial variances into drivers with narrative explanations and waterfall analysis. Use when analyzing budget vs. actual, period-over-period changes, revenue or expense variances, or preparing variance commentary for leadership.
- argument-hint
- <line item> <period> vs <comparison>
03 SKILL.md 正文
Variance Analysis
Important: This skill assists with variance analysis workflows but does not provide financial advice. All analyses should be reviewed by qualified financial professionals before use in reporting.
Techniques for decomposing variances, materiality thresholds, narrative generation, waterfall chart methodology, and budget vs actual vs forecast comparisons.
Variance Decomposition Techniques
Price / Volume Decomposition
The most fundamental variance decomposition. Used for revenue, cost of goods, and any metric that can be expressed as Price x Volume.
Formula:
Total Variance = Actual - Budget (or Prior)
Volume Effect = (Actual Volume - Budget Volume) x Budget Price
Price Effect = (Actual Price - Budget Price) x Actual Volume
Mix Effect = Residual (interaction term), or allocated proportionally
Verification: Volume Effect + Price Effect = Total Variance
(when mix is embedded in the price/volume terms)
Three-way decomposition (separating mix):
Volume Effect = (Actual Volume - Budget Volume) x Budget Price x Budget Mix
Price Effect = (Actual Price - Budget Price) x Budget Volume x Actual Mix
Mix Effect = Budget Price x Budget Volume x (Actual Mix - Budget Mix)
Example — Revenue variance:
- Budget: 10,000 units at $50 = $500,000
- Actual: 11,000 units at $48 = $528,000
- Total variance: +$28,000 favorable
- Volume effect: +1,000 units x $50 = +$50,000 (favorable — sold more units)
- Price effect: -$2 x 11,000 units = -$22,000 (unfavorable — lower ASP)
- Net: +$28,000
Rate / Mix Decomposition
Used when analyzing blended rates across segments with different unit economics.
Formula:
Rate Effect = Sum of (Actual Volume_i x (Actual Rate_i - Budget Rate_i))
Mix Effect = Sum of (Budget Rate_i x (Actual Volume_i - Expected Volume_i at Budget Mix))
Example — Gross margin variance:
- Product A: 60% margin, Product B: 40% margin
- Budget mix: 50% A, 50% B → Blended margin 50%
- Actual mix: 40% A, 60% B → Blended margin 48%
- Mix effect explains 2pp of margin compression
Headcount / Compensation Decomposition
Used for analyzing payroll and people-cost variances.
Total Comp Variance = Actual Compensation - Budget Compensation
Decompose into:
1. Headcount variance = (Actual HC - Budget HC) x Budget Avg Comp
2. Rate variance = (Actual Avg Comp - Budget Avg Comp) x Budget HC
3. Mix variance = Difference due to level/department mix shift
4. Timing variance = Hiring earlier/later than planned (partial-period effect)
5. Attrition impact = Savings from unplanned departures (partially offset by backfill costs)
Spend Category Decomposition
Used for operating expense analysis when price/volume is not applicable.
Total OpEx Variance = Actual OpEx - Budget OpEx
Decompose by:
1. Headcount-driven costs (salaries, benefits, payroll taxes, recruiting)
2. Volume-driven costs (hosting, transaction fees, commissions, shipping)
3. Discretionary spend (travel, events, professional services, marketing programs)
4. Contractual/fixed costs (rent, insurance, software licenses, subscriptions)
5. One-time / non-recurring (severance, legal settlements, write-offs, project costs)
6. Timing / phasing (spend shifted between periods vs plan)
Materiality Thresholds and Investigation Triggers
Setting Thresholds
Materiality thresholds determine which variances require investigation and narrative explanation. Set thresholds based on:
- Financial statement materiality: Typically 1-5% of a key benchmark (revenue, total assets, net income)
- Line item size: Larger line items warrant lower percentage thresholds
- Volatility: More volatile line items may need higher thresholds to avoid noise
- Management attention: What level of variance would change a decision?
Recommended Threshold Framework
| Comparison Type | Dollar Threshold | Percentage Threshold | Trigger |
|---|---|---|---|
| Actual vs Budget | Organization-specific | 10% | Either exceeded |
| Actual vs Prior Period | Organization-specific | 15% | Either exceeded |
| Actual vs Forecast | Organization-specific | 5% | Either exceeded |
| Sequential (MoM) | Organization-specific | 20% | Either exceeded |
Set dollar thresholds based on your organization's size. Common practice: 0.5%-1% of revenue for income statement items.
Investigation Priority
When multiple variances exceed thresholds, prioritize investigation by:
- Largest absolute dollar variance — biggest P&L impact
- Largest percentage variance — may indicate process issue or error
- Unexpected direction — variance opposite to trend or expectation
- New variance — item that was on track and is now off
- Cumulative/trending variance — growing each period
Narrative Generation for Variance Explanations
Structure for Each Variance Narrative
[Line Item]: [Favorable/Unfavorable] variance of $[amount] ([percentage]%)
vs [comparison basis] for [period]
Driver: [Primary driver description]
[2-3 sentences explaining the business reason for the variance, with specific
quantification of contributing factors]
Outlook: [One-time / Expected to continue / Improving / Deteriorating]
Action: [None required / Monitor / Investigate further / Update forecast]
Narrative Quality Checklist
Good variance narratives should be:
- [ ] Specific: Names the actual driver, not just "higher than expected"
- [ ] Quantified: Includes dollar and percentage impact of each driver
- [ ] Causal: Explains WHY it happened, not just WHAT happened
- [ ] Forward-looking: States whether the variance is expected to continue
- [ ] Actionable: Identifies any required follow-up or decision
- [ ] Concise: 2-4 sentences, not a paragraph of filler
Common Narrative Anti-Patterns to Avoid
- "Revenue was higher than budget due to higher revenue" (circular — no actual explanation)
- "Expenses were elevated this period" (vague — which expenses? why?)
- "Timing" without specifying what was early/late and when it will normalize
- "One-time" without explaining what the item was
- "Various small items" for a material variance (must decompose further)
- Focusing only on the largest driver and ignoring offsetting items
Waterfall Chart Methodology
Concept
A waterfall (or bridge) chart shows how you get from one value to another through a series of positive and negative contributors. Used to visualize variance decomposition.
Data Structure
Starting value: [Base/Budget/Prior period amount]
Drivers: [List of contributing factors with signed amounts]
Ending value: [Actual/Current period amount]
Verification: Starting value + Sum of all drivers = Ending value
Text-Based Waterfall Format
When a charting tool is not available, present as a text waterfall:
WATERFALL: Revenue — Q4 Actual vs Q4 Budget
Q4 Budget Revenue $10,000K
|
|--[+] Volume growth (new customers) +$800K
|--[+] Expansion revenue (existing customers) +$400K
|--[-] Price reductions / discounting -$200K
|--[-] Churn / contraction -$350K
|--[+] FX tailwind +$50K
|--[-] Timing (deals slipped to Q1) -$150K
|
Q4 Actual Revenue $10,550K
Net Variance: +$550K (+5.5% favorable)
Bridge Reconciliation Table
Complement the waterfall with a reconciliation table:
| Driver | Amount | % of Variance | Cumulative |
|---|---|---|---|
| Volume growth | +$800K | 145% | +$800K |
| Expansion revenue | +$400K | 73% | +$1,200K |
| Price reductions | -$200K | -36% | +$1,000K |
| Churn / contraction | -$350K | -64% | +$650K |
| FX tailwind | +$50K | 9% | +$700K |
| Timing (deal slippage) | -$150K | -27% | +$550K |
| Total variance | +$550K | 100% |
Note: Percentages can exceed 100% for individual drivers when there are offsetting items.
Waterfall Best Practices
- Order drivers from largest positive to largest negative (or in logical business sequence)
- Keep to 5-8 drivers maximum — aggregate smaller items into "Other"
- Verify the waterfall reconciles (start + drivers = end)
- Color-code: green for favorable, red for unfavorable (in visual charts)
- Label each bar with both the amount and a brief description
- Include a "Total Variance" summary bar
Budget vs Actual vs Forecast Comparisons
Three-Way Comparison Framework
| Metric | Budget | Forecast | Actual | Bud Var ($) | Bud Var (%) | Fcast Var ($) | Fcast Var (%) |
|---|---|---|---|---|---|---|---|
| Revenue | $X | $X | $X | $X | X% | $X | X% |
| COGS | $X | $X | $X | $X | X% | $X | X% |
| Gross Profit | $X | $X | $X | $X | X% | $X | X% |
When to Use Each Comparison
- Actual vs Budget: Annual performance measurement, compensation decisions, board reporting. Budget is set at the beginning of the year and typically not changed.
- Actual vs Forecast: Operational management, identifying emerging issues. Forecast is updated periodically (monthly or quarterly) to reflect current expectations.
- Forecast vs Budget: Understanding how expectations have changed since planning. Useful for identifying planning accuracy issues.
- Actual vs Prior Period: Trend analysis, sequential performance. Useful when budget is not meaningful (new business lines, post-acquisition).
- Actual vs Prior Year: Year-over-year growth analysis, seasonality-adjusted comparison.
Forecast Accuracy Analysis
Track how accurate forecasts are over time to improve planning:
Forecast Accuracy = 1 - |Actual - Forecast| / |Actual|
MAPE (Mean Absolute Percentage Error) = Average of |Actual - Forecast| / |Actual| across periods
| Period | Forecast | Actual | Variance | Accuracy |
|---|---|---|---|---|
| Jan | $X | $X | $X (X%) | XX% |
| Feb | $X | $X | $X (X%) | XX% |
| ... | ... | ... | ... | ... |
| Avg | MAPE | XX% |
Variance Trending
Track how variances evolve over the year to identify systematic bias:
- Consistently favorable: Budget may be too conservative (sandbagging)
- Consistently unfavorable: Budget may be too aggressive or execution issues
- Growing unfavorable: Deteriorating performance or unrealistic targets
- Shrinking variance: Forecast accuracy improving through the year (normal pattern)
- Volatile: Unpredictable business or poor forecasting methodology
04 同仓库更多 Skills
ticket-deflector
Reads a forwarded customer email or ticket, pulls order and refund status from a payments connector (PayPal, Square, or Stripe) or Shopify, account history from the CRM, and open tickets from a support desk (Zoho Desk), drafts a tone-matched reply in the owner's writing voice, and can issue a refund through the payments connector with explicit owner approval. With Shopify connected it also runs a proactive order-triage mode that surfaces orders needing attention — unfulfilled past the promised window, payment problems, pending refunds, stuck shipments — and drafts the next action for each before the customer has to ask. Use when the user says "draft a response," "answer this customer," "where's my order," "I want a refund," "check my orders," or "anything about to blow up."
tax-season-organizer
Prepares tax-season materials for the owner's accountant, not tax advice. US federal tax; a non-US business gets its closed-books packet instead. Two modes: (1) quarterly estimated tax from YTD net income in the ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books); (2) year-end 1099 prep, scanning the ledger, PayPal, and Stripe for contractors paid over USD 600 into a 1099-NEC list with missing W-9 flags. Any tax request routes first to /tax-prep, which confirms the books are closed and reconciled before running this skill. Use this skill directly only when the owner says the period's books are already closed: "books are closed, now do the 1099s," "run the quarterly estimate off the closed numbers," or "just the contractor W-9 list."
tax-prep
Prepares tax materials as a two-link chain — month-end-prep confirms the books are closed and reconciled first, then tax-season-organizer calculates the quarterly estimated payment or builds the year-end 1099-NEC list and accountant packet from those closed numbers. Requires a ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books); uses Gusto, PayPal, and Stripe when connected, else CSV upload. US federal tax math; a non-US business gets the closed-books packet. Prep material for a CPA, never tax advice, nothing filed. Trigger on "quarterly taxes," "estimated tax payment," "how much should I set aside," "1099s," "1099-NEC," "W-9s," "year-end tax prep," "get my books ready for my accountant," any phrasing that suggests a tax deadline is coming, or a question about net profit or YTD income that sounds like worry about a tax bill. An owner who says the period's books are already closed routes to tax-season-organizer directly.
speed-to-lead
Makes sure no inbound lead goes unanswered. Watches web forms, the shared inbox, and the CRM for new inquiries, qualifies each one against the owner's criteria, drafts a reply in the owner's voice with real meeting times for the owner to approve and send, routes anything hot to a human right away, and logs the whole thing to the CRM. Never sends on its own. Built to run on a schedule so overnight inquiries are drafted and sorted by morning, and works from forwarded or pasted inquiries when no connector is available. Use this whenever the owner is worried about inbound leads or response time — including phrasings like "leads are going cold," "did anyone answer that inquiry," "I keep missing form submissions," "nothing falls through the cracks," "handle my inbound," "respond to this lead," or "we lose people because nobody gets back fast enough." Reach for it for a single unanswered inquiry as readily as for a standing setup.
social-content-engine
Runs the owner's content operation as a standing thing rather than a one-off: keeps a rolling posting calendar, learns the owner's voice, generates on-brand Canva graphics, writes captions that sound like them, repurposes one asset into every channel format, and stages posts for approval instead of publishing on its own. Pulls product photos and prices from Shopify when connected; with no connectors, drafts the calendar and asset briefs for manual posting. Use this whenever the owner talks about posting, content, or social — including "I need to post more," "we've gone quiet on Instagram," "what should we post this month," "make the content," "give me a month of posts," "write this in my voice," "repurpose this," or "set up our content calendar." Reach for it for a single post as readily as for a full quarter. One handoff: a finished, approved campaign brief goes to canva-creator; this skill owns the standing operation.
smb-router
The front door to the Small Business plugin. Listens to what the owner needs right now — vague or specific — and routes them to the best skill or slash command for the moment. Also serves as a guide: explains what's available, suggests what to try next, and adapts recommendations based on stored business context. Trigger whenever the owner asks "what can you do," "help me with my business," "what should I focus on," "I don't know where to start," or any open-ended business request that doesn't clearly match a single skill.