Variance Analysis logo

Variance Analysis

OrganizationPopular
anthropics
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.

Overview

Publisheranthropics
Repositoryknowledge-work-plugins
Skill namevariance-analysis
Stars
24.9K
Forks
3K
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by anthropics on GitHub. Read the source before you install it.

Installation

Install the Variance Analysis AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/anthropics/knowledge-work-plugins.git /tmp/knowledge-work-plugins
mkdir -p .claude/skills
cp -r /tmp/knowledge-work-plugins/finance/skills/variance-analysis .claude/skills/variance-analysis
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Variance Analysis in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Variance Analysis on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Variance Analysis is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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:

  1. Financial statement materiality: Typically 1-5% of a key benchmark (revenue, total assets, net income)
  2. Line item size: Larger line items warrant lower percentage thresholds
  3. Volatility: More volatile line items may need higher thresholds to avoid noise
  4. Management attention: What level of variance would change a decision?

Recommended Threshold Framework

Comparison TypeDollar ThresholdPercentage ThresholdTrigger
Actual vs BudgetOrganization-specific10%Either exceeded
Actual vs Prior PeriodOrganization-specific15%Either exceeded
Actual vs ForecastOrganization-specific5%Either exceeded
Sequential (MoM)Organization-specific20%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:

  1. Largest absolute dollar variance — biggest P&L impact
  2. Largest percentage variance — may indicate process issue or error
  3. Unexpected direction — variance opposite to trend or expectation
  4. New variance — item that was on track and is now off
  5. 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:

DriverAmount% of VarianceCumulative
Volume growth+$800K145%+$800K
Expansion revenue+$400K73%+$1,200K
Price reductions-$200K-36%+$1,000K
Churn / contraction-$350K-64%+$650K
FX tailwind+$50K9%+$700K
Timing (deal slippage)-$150K-27%+$550K
Total variance+$550K100%

Note: Percentages can exceed 100% for individual drivers when there are offsetting items.

Waterfall Best Practices

  1. Order drivers from largest positive to largest negative (or in logical business sequence)
  2. Keep to 5-8 drivers maximum — aggregate smaller items into "Other"
  3. Verify the waterfall reconciles (start + drivers = end)
  4. Color-code: green for favorable, red for unfavorable (in visual charts)
  5. Label each bar with both the amount and a brief description
  6. Include a "Total Variance" summary bar

Budget vs Actual vs Forecast Comparisons

Three-Way Comparison Framework

MetricBudgetForecastActualBud Var ($)Bud Var (%)Fcast Var ($)Fcast Var (%)
Revenue$X$X$X$XX%$XX%
COGS$X$X$X$XX%$XX%
Gross Profit$X$X$X$XX%$XX%

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
PeriodForecastActualVarianceAccuracy
Jan$X$X$X (X%)XX%
Feb$X$X$X (X%)XX%
...............
AvgMAPEXX%

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

Frequently asked questions

What does the Variance Analysis AI skill do?

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.

Why use Variance Analysis on TypingMind?

Because you install it once and use it with any model. Variance Analysis is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Variance Analysis in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/anthropics/knowledge-work-plugins/tree/main/finance/skills/variance-analysis. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Variance Analysis?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Variance Analysis?

As many as you like. As long as a model supports skills, you can use Variance Analysis with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Variance Analysis AI skill free?

Yes. It is published on GitHub by anthropics under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇