# Variance Bridge Analyzer

> Decomposes a budget-to-actual revenue variance into price and volume effects per product via a bundled calculator that reconciles exactly to the total variance, so "we missed by $400K" becomes a specific, actionable story instead of one unexplained number. Use whenever the user needs to explain why actuals differ from plan, is preparing a variance explanation for leadership, or has a variance reported as a single dollar figure with no breakdown of what actually drove it.

- Skill: `natan-mohart/variance-bridge-analyzer` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add natan-mohart/variance-bridge-analyzer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/natan-mohart/variance-bridge-analyzer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Finance & Business
- Author: Natan-Mohart (https://skillmd.com/u/natan-mohart)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/natan-mohart/variance-bridge-analyzer

---


# Variance Bridge Analyzer

## When to use
Use whenever actuals diverge from plan and someone needs to know why, not just by how much — replacing a variance report that states "revenue missed by $400K" with no explanation of whether that came from selling less, selling for less, or a mix of both.

## What it does
Decomposes revenue variance into volume effect (the impact of selling more or fewer units than planned, at planned price) and price effect (the impact of realizing a different price than planned, at actual volume) per product via a bundled calculator, with the two effects reconciling exactly to the total variance — no unexplained residual.

## Method
1. **Gather plan and actual volume and price by product** — the bridge only works at this level of granularity; a single blended company-wide number can't be decomposed into volume and price effects meaningfully.
2. **Run the bundled calculator** (`scripts/variance_bridge.py`), which computes volume effect as the change in units times planned price, and price effect as the change in price times actual units — a standard, consistent sequencing convention that ensures the two effects sum exactly to the total variance.
3. **Check that the bridge reconciles.** Volume effect plus price effect should equal the total variance exactly, for every product and in total — if it doesn't, an input is wrong; the whole value of a bridge is that it ties out.
4. **Read the ratio between volume and price effect** to characterize the story: if one effect is more than 1.5x the other, it's primarily a volume story or primarily a price story; if they're closer in size, both levers need investigating.
5. **Investigate the actual driver behind whichever effect dominates** — a volume story might trace to a specific lost account, a channel underperforming, or a competitive loss; a price story might trace to discounting, a mix shift toward lower-priced products, or list price execution failing.
6. **Report the bridge, not just the conclusion.** Showing the product-level table lets a skeptical reader verify the story themselves rather than trusting a one-line summary.
7. **Carry the finding into the next forecast cycle** — if this month's miss was a volume problem in one specific product, next month's forecast should reflect that reality, not just extrapolate the prior plan forward.

## Inputs
- Plan and actual volume by product
- Plan and actual price by product
- Config saved as JSON matching the format documented at the top of `scripts/variance_bridge.py`

## Output format
Product-level table of plan revenue, actual revenue, volume effect, price effect, and total variance; company-level totals; a plain-language read on whether the variance is primarily a volume story, a price story, or both.

## Example
A $9,400 total revenue miss looks like a small, uniform shortfall until the bridge shows it's actually two very different stories: Product A grew volume but gave back price (net positive $4,500), while Product B lost significant volume with price roughly on plan (net negative $13,900). The real finding is Product B's volume loss, not a company-wide pricing problem the blended number might have suggested.

## Common pitfalls
- Reporting variance as a single dollar figure with no breakdown, leaving leadership unable to act on the finding.
- Computing volume and price effects with an inconsistent sequencing convention, so they don't reconcile to the actual total variance.
- Stopping at "volume was the driver" without tracing to the specific account, channel, or product behind the volume miss.

