Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when comparing actuals against a budget or plan and someone wants the variances read correctly — the dollar and percent gap per line, whether each gap is good or bad news, which gaps are big enough to escalate, and (when units and unit price are given) how much of a gap came from price versus quantity. Do NOT use for building next period's budget/forecast, for explaining a metric that moved period-over-period with no budget to compare against, or for booking journal entries.
.claude/skills/budget-variance-analysis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 426% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 401% | 0% |
| case-01 | ✗→✗ | = Same ✗ | 407% | 0% |
| case-02 | ✗→✗ | = Same ✗ | 435% | 0% |
| case-03 | ✗→✗ | = Same ✗ | 440% | 0% |
Handed a budget-vs-actual table, the base model computes actual − budget fine but then labels the result by its arithmetic sign: positive is good, negative is bad. That rule is right for revenue and wrong for costs. Marketing that spent $120k against a $90k budget has a +$30k variance and is over budget — that is bad news, an overspend, even though the number is positive. The whole job is to translate each gap into "did this help or hurt the result," size it, decide whether it is worth flagging, and — when the data supports it — say whether a revenue or cost gap came from price or from quantity. Do the four steps below and reconcile at the end.
For each line: variance = actual − budget, and variance % = variance ÷ |budget|.
dollar alone hides a line that doubled off a small base.
the percent is undefined — report the absolute variance and mark the percent as n/a. Do not print a percent off a zero base.
"Favorable" (F) means the gap helped the operating result; "unfavorable" (U) means it hurt it. That is decided by what kind of line it is, not by the sign of the subtraction:
| Line type | Actual above budget | Actual below budget | |---|---|---| | Revenue, income, sales, profit, net income, gross margin | Favorable | Unfavorable | | Cost, expense, COGS, spend, opex, contra-revenue (returns, discounts, allowances) | Unfavorable | Favorable |
Consequences the base model trips on:
actual − budget is a positive number.result, not a "miss." (Judge only the P&L impact here; whether the underspend hurt the business operationally is a separate question the numbers do not answer.)
(under)/over), a negative cost variance means under budget = favorable. Read the column's sign convention before labeling.
Not every variance is worth a manager's time. A variance is material when it clears both a percent threshold and an absolute-dollar floor — otherwise a 40% swing on a $200 line drowns out a 3% miss on a $4M line. If the org gives thresholds, use them; absent a stated policy, flag lines where |variance %| ≥ 5% and |variance| ≥ a stated dollar floor, and say which test each flagged line tripped. A line that is large on one dimension but tiny on the other is a judgment call, not an automatic escalation — note it rather than burying or over-escalating it.
When a line is quantity × unit price (or × unit cost) and you have budget and actual for both, split the total variance into a volume (quantity) piece and a price (rate) piece. Let Q_b, P_b be budget quantity/price and Q_a, P_a be actual:
= (Q_a − Q_b) × P_b — quantity change valued at the budget price.= (P_a − P_b) × Q_a — price change valued at the actual quantity.(Q_a−Q_b)P_b + (P_a−P_b)Q_a = P_aQ_a − P_bQ_b. Always showthat the two pieces reconcile back to the line's total variance; if they do not, you mis-assigned which quantity is held constant.
units (positive volume variance) is favorable and a higher price is favorable; for a cost line, using more units is unfavorable and a higher unit cost is unfavorable.
joint = (P_a − P_b)(Q_a − Q_b), leaving volume = (Q_a−Q_b)P_b and price = (P_a−P_b)Q_b. State which convention you used; the two-way split above (joint folded into price) is the common default.
The favorable and unfavorable line variances should tie back to the total budget-vs-actual gap for the statement, and any price/volume split should tie back to its line total. If a summary says the quarter was "over budget," confirm that means the result was worse, not merely that some number went up. Lead with the material, unfavorable items; that is what a reviewer acts on.
Other measured skills in the registry, with their headline benchmark lift.