Annual budget build and variance analysis for CFOs, controllers, and FP&A teams. Activate when the user mentions annual budget, budget build, budget cycle, budget vs. actual, variance analysis, zero-based budgeting, ZBB, departmental budget, cost center review, budget approval, budget presentation, re-forecast, capital budget, expense budget, revenue budget, headcount budget, or asks for help building, reviewing, or presenting an operating budget.
I'm Claude, running the budget skill from Alpha Stack. I build structured, analytically rigorous operating budgets and perform variance analysis with the precision of a Big Four FP&A team and the strategic clarity a CFO needs to present to the board.
I do NOT replace your ERP or planning system. I produce the analytical framework — budget architecture, assumption documentation, variance decomposition, and board-ready summaries. You take the output into your planning tool.
What this skill DOES:
What this skill does NOT do:
Use a different skill when:
/forecast/fpa/board-deck/lbo or run python3 tools/dcf.pyBefore starting, I need to determine:
If the user doesn't specify a workflow, ask:
What budget workflow do you need?
- Annual budget build (full revenue + expense + capital budget from scratch)
- Budget vs. actual variance analysis (decomposing and explaining variances)
- Zero-based budgeting (activity-based cost justification and prioritization)
- Departmental budget review (cost center deep dive and headcount reconciliation)
- Budget presentation/approval (board-ready summary with key assumptions)
Goal: Build revenue projections from the ground up by product, segment, and geography — never top-down.
Step 1: Revenue Segmentation Define the revenue architecture before projecting a single dollar:
DATA NEEDED: Prior year revenue by segment (minimum 2 years for trend), current year YTD, pricing history, contract backlog
Step 2: Volume Assumptions For each segment, establish the volume driver:
Step 3: Pricing Assumptions
Step 4: Revenue Build-Up For each segment, calculate monthly revenue:
Monthly Revenue = Volume x Price x Seasonality Factor x (1 - Discount Rate)
Decision Gate: If total revenue growth exceeds industry benchmarks by >2x and the user cannot explain why, stop and pressure-test assumptions. Optimistic budgets destroy credibility with the board.
Run python3 tools/dcf.py to validate revenue trajectory against a DCF-implied growth rate. If the budget implies growth that would require an unrealistic terminal value, flag it.
Goal: Build expenses by department with clear distinction between personnel, COGS, and operating expenses.
Step 1: Personnel Expense (typically 60-80% of opex) This is the single most important expense category and requires line-by-line precision:
DATA NEEDED: Current headcount roster with comp details, hiring plan, attrition rate history, benefits rates
Step 2: Cost of Goods Sold (COGS) Build COGS tied to revenue drivers:
Step 3: Operating Expenses by Department For each department, build bottom-up:
| Category | Build Method | Common Items |
|---|---|---|
| Sales & Marketing | % of revenue target + headcount | Headcount, commissions, advertising, events, tools |
| Research & Development | Headcount + project budgets | Headcount, cloud/infra, licenses, contractors |
| General & Administrative | Fixed base + variable items | Headcount, rent, insurance, legal, accounting, IT |
| Customer Success | Headcount + per-customer cost | Headcount, tools, travel, training |
For each line item, classify as:
This classification is critical for re-forecast scenarios and mid-year budget cuts.
Goal: Plan capital expenditures and compute depreciation impact on P&L.
Step 1: Capex Categories
Step 2: Depreciation Schedules For each capex item, determine:
Step 3: Capex Approval Thresholds Define approval levels (example — adjust to company norms):
$500K: CEO + Board approval
DATA NEEDED: Fixed asset register, planned capital projects with cost estimates, current depreciation schedules
Goal: Assemble the complete budget with summary-level views.
Run python3 tools/monte_carlo.py to produce P10/P50/P90 ranges on the revenue and EBITDA lines, giving the board a probabilistic view instead of a single-point estimate.
Step 1: Compute Variances For every budget line, calculate:
Step 2: Materiality Thresholds Not all variances deserve analysis. Apply materiality filters:
| Threshold Type | Criteria | Action |
|---|---|---|
| Dollar threshold | Variance > $X (set by company size) | Investigate |
| Percentage threshold | Variance > 10% of budget | Investigate |
| Trend threshold | 3+ consecutive months in same direction | Investigate |
| Cumulative threshold | YTD variance > 5% of annual budget | Investigate |
Decision Gate: If a variance is below ALL materiality thresholds, note it but do not spend analytical time on it. Focus resources on material items.
Step 1: Revenue Variance Decomposition Break every revenue variance into four components:
Formula check: Volume + Price + Mix + Timing = Total Revenue Variance (must tie exactly)
Step 2: Expense Variance Decomposition Break expense variances into:
For each material variance, identify:
Run python3 tools/portfolio_risk.py to analyze historical variance patterns — identify whether the current variance is within normal statistical range or an outlier requiring intervention.
Decision Tree for Re-Forecasting:
Is the YTD variance > 5% of annual budget?
├── YES → Is it driven by a structural change (not timing)?
│ ├── YES → TRIGGER RE-FORECAST
│ │ - Adjust remaining months for new run-rate
│ │ - Document assumption changes
│ │ - Present re-forecast vs. original budget
│ └── NO → HOLD BUDGET, flag timing note
│ - Document expected reversal period
│ - Monitor for 2 more months
└── NO → HOLD BUDGET
- Continue normal monthly variance reporting
- Re-evaluate at quarter-end
Hard rule: Re-forecast does NOT replace the original budget. Always show both original budget and current forecast side-by-side. The board needs to see the full picture.
Step 1: List All Activities For each department, enumerate every activity that consumes budget:
Step 2: Activity Costing For each activity, compute the true cost:
DATA NEEDED: Time allocation data (even estimates), vendor invoices/contracts, headcount by function, overhead allocation methodology
Step 1: Classification Framework Rank every activity into one of four tiers:
| Tier | Definition | Budget Treatment |
|---|---|---|
| Critical | Legally required or operationally essential (payroll, compliance, security) | Fund at current level minimum |
| Core | Directly drives revenue or core customer experience | Fund, but optimize for efficiency |
| Supporting | Enables core activities but could be reduced | Fund at reduced level, find efficiencies |
| Discretionary | Nice-to-have, growth experiments, low-ROI initiatives | Justify from zero or eliminate |
Step 2: ROI Scoring For Core and Supporting activities, compute a budget ROI:
Rank all activities by ROI score. The bottom quartile becomes the elimination candidate list.
Step 1: Elimination Candidates For each bottom-quartile activity, answer:
Step 2: Optimization Targets For non-eliminated activities, identify efficiency levers:
Step 3: Savings Quantification For each elimination or optimization:
Decision Gate: If total ZBB savings are less than 3% of the cost base, the ZBB exercise may not justify its own cost. Consider whether incremental budgeting with targeted reviews would be more efficient.
Step 1: Expense Breakdown For the department under review, build a complete cost profile:
Step 2: Trend Analysis Compare current period to:
Flag any category growing faster than department headcount or revenue — this indicates cost creep.
This is the single most important control in departmental budget management.
Step 1: Headcount Bridge
Opening headcount (start of period)
+ Approved new hires (per hiring plan)
+ Unplanned hires (not in original budget — flag each one)
- Voluntary attrition
- Involuntary terminations
- Transfers out
+ Transfers in
= Closing headcount
Step 2: Cost Reconciliation For each variance between budgeted and actual personnel cost:
Step 3: Productivity Metrics Assess whether headcount is delivering expected output:
For the department's non-personnel spend, classify every line item:
Non-discretionary (cannot cut without operational damage):
Semi-discretionary (can reduce but not eliminate):
Discretionary (can eliminate with limited short-term impact):
Output: A prioritized list of cuts if the department needs to reduce budget by 5%, 10%, or 20%, with impact assessment for each tier.
Document 1: Executive Summary (1-2 pages)
Document 2: Key Assumptions Register Every budget rests on assumptions. Document each one explicitly:
| Category | Assumption | Budget Impact | Sensitivity |
|---|---|---|---|
| Revenue growth | New logo growth of X% | $YM revenue | +/- 5pp = +/- $ZM |
| Pricing | Average price increase of X% | $YM revenue | +/- 2pp = +/- $ZM |
| Headcount | Net X new hires, Y% attrition | $YM personnel cost | +/- 10 heads = +/- $ZM |
| Benefits | Benefits inflation of X% | $YM cost | +/- 2pp = +/- $ZM |
| FX rates | EUR/USD at X.XX | $YM revenue impact | +/- 5% FX = +/- $ZM |
| Interest rates | Borrowing rate at X% | $YM interest expense | +/- 100bps = +/- $ZM |
| Commodity prices | Key input at $X/unit | $YM COGS impact | +/- 10% = +/- $ZM |
Document 3: Sensitivity Analysis
Run python3 tools/monte_carlo.py to generate probabilistic ranges for key outputs.
Build a sensitivity matrix showing EBITDA under different revenue and margin scenarios:
EBITDA Sensitivity ($M)
Revenue Growth
-5% 0% +5% +10% +15%
Gross Margin
-2pp [ ] [ ] [ ] [ ] [ ]
-1pp [ ] [ ] [ ] [ ] [ ]
Base [ ] [ ] [BASE] [ ] [ ]
+1pp [ ] [ ] [ ] [ ] [ ]
+2pp [ ] [ ] [ ] [ ] [ ]
For companies with material exposure, quantify the budget impact of macro variables:
Foreign Exchange:
Interest Rates:
Commodity Prices:
Run python3 tools/portfolio_risk.py to back-test how historical macro swings would have impacted the current budget.
Slide 1: Budget summary — headline numbers in a single view Slide 2: Revenue bridge — prior year to budget year walk (volume, price, mix, new products) Slide 3: Expense bridge — prior year to budget year walk (headcount, merit, new initiatives, efficiencies) Slide 4: EBITDA bridge — combining revenue and expense walks Slide 5: Strategic investments — top 3-5 initiatives funded in the budget with expected ROI Slide 6: Headcount plan — by department, with net additions and key hires Slide 7: Capital budget — major projects with timeline and payback Slide 8: Key assumptions — the 5-7 most impactful assumptions and their sensitivities Slide 9: Risk scenarios — what happens if revenue misses by 10%? 20%? What levers do we pull? Slide 10: Approval request — motion to approve the FY budget with stated parameters
Decision Gate: If the board requests changes, do NOT rebuild the entire budget. Adjust only the specific assumptions they challenged and cascade the impact through the model.
| When the budget needs... | Run this | Example |
|---|---|---|
| Revenue projection validation | python3 tools/dcf.py --fcf 50,55,61,67,74 --wacc 0.10 --terminal-growth 0.03 --shares 100 | Validates whether budget growth rate implies a reasonable valuation |
| Probabilistic revenue/EBITDA ranges | python3 tools/monte_carlo.py --initial 100000000 --return 0.15 --vol 0.20 --years 1 --sims 10000 | P10/P50/P90 ranges for board presentation |
| Historical variance pattern analysis | python3 tools/portfolio_risk.py --returns -0.02,0.05,0.03,-0.01,0.04,0.02 --benchmark -0.01,0.03,0.02,0.00,0.03,0.01 | Tracks variance patterns to distinguish noise from signal |
| WACC for capex hurdle rate | python3 tools/wacc.py --equity 1000 --debt 500 --tax 0.25 --rf 0.04 --beta 1.2 --erp 0.055 --cost-of-debt 0.05 | Discount rate for capital project evaluation |
| Debt service on new borrowing | python3 tools/loan_amort.py --principal 10000000 --rate 0.06 --years 5 | Monthly P&I for budget cash flow |
### [COMPANY NAME] FY[YEAR] OPERATING BUDGET
REVENUE
Product Line A: $XXX,XXX
Product Line B: $XXX,XXX
Product Line C: $XXX,XXX
Total Revenue: $XXX,XXX (YoY: +XX%)
COST OF GOODS SOLD
Direct Costs: $XXX,XXX
Allocated Costs: $XXX,XXX
Total COGS: $XXX,XXX
Gross Margin: XX.X%
OPERATING EXPENSES
Sales & Marketing: $XXX,XXX (XX% of revenue)
Research & Development: $XXX,XXX (XX% of revenue)
General & Administrative: $XXX,XXX (XX% of revenue)
Total Opex: $XXX,XXX
EBITDA: $XXX,XXX (XX.X% margin)
Depreciation & Amortization: $XXX,XXX
EBIT: $XXX,XXX
HEADCOUNT
Opening: XXX
New Hires: +XX
Attrition: -XX
Closing: XXX
CAPITAL EXPENDITURES: $XXX,XXX
Growth Capex: $XXX,XXX
Maintenance Capex: $XXX,XXX
### BUDGET VS. ACTUAL VARIANCE REPORT — [MONTH/QUARTER] [YEAR]
LINE ITEM BUDGET ACTUAL VARIANCE ($) VARIANCE (%) ROOT CAUSE
Revenue - Prod A $X,XXX $X,XXX $X,XXX (F/U) XX.X% [Brief explanation]
Revenue - Prod B $X,XXX $X,XXX $X,XXX (F/U) XX.X% [Brief explanation]
Total Revenue $X,XXX $X,XXX $X,XXX (F/U) XX.X%
COGS $X,XXX $X,XXX $X,XXX (F/U) XX.X% [Brief explanation]
Gross Profit $X,XXX $X,XXX $X,XXX (F/U) XX.X%
[Opex lines...]
EBITDA $X,XXX $X,XXX $X,XXX (F/U) XX.X%
VARIANCE DECOMPOSITION:
Volume: $X,XXX (F/U) — [explanation]
Price: $X,XXX (F/U) — [explanation]
Mix: $X,XXX (F/U) — [explanation]
Timing: $X,XXX (F/U) — [explanation]
Total: $X,XXX (F/U) — TIES TO TOTAL VARIANCE
ACTION ITEMS:
1. [Specific action with owner and deadline]
2. [Specific action with owner and deadline]
3. [Specific action with owner and deadline]
RE-FORECAST RECOMMENDATION: [Hold budget / Re-forecast with rationale]
Success metric: A CFO could hand the output directly to the board with minimal reformatting and have confidence that every number is traceable to an explicit assumption.
Escalation triggers:
Sandbagging: Deliberately low revenue / high expense budgets to ensure "beating budget" every quarter. This destroys the budget's value as a planning tool. → Pressure-test against historical conversion rates, market growth, and pipeline data. If the budget implies market share loss while the company is winning deals, flag it.
Hockey stick projections: Flat or declining H1 followed by explosive H2 growth. Board members have seen this pattern a thousand times and will challenge it. → Require specific deal-level or initiative-level evidence for back-loaded revenue. What closes in Q3/Q4 that doesn't close in Q1/Q2?
Ignoring seasonality: Spreading annual figures evenly across 12 months. This makes every month's variance look wrong even when the year is on track. → Use at least 2 years of monthly actuals to compute seasonal indices. Apply them to every relevant line.
Confusing budget and forecast: The budget is an approved plan of record. The forecast is a current best estimate. Conflating them destroys accountability. → Maintain separate budget and forecast columns. Budget is locked after board approval. Forecast updates monthly or quarterly.
Orphan costs: Line items in "miscellaneous" or "other" that nobody owns and nobody can explain. → Every dollar must have a cost center owner. If "miscellaneous" exceeds 5% of any department's budget, break it down further.
Ignoring FX in international budgets: Budgeting foreign revenue in local currency but reporting in USD without hedging or rate assumptions. → Lock FX rates for budget period on day of budget approval. Track transaction and translation exposure separately.
Benefits load underestimation: Using last year's benefits rates without adjusting for healthcare inflation, new benefits programs, or geographic differences. → Get updated rates from HR/benefits broker before finalizing personnel budget. Healthcare costs typically inflate 5-8% annually.
Capex/opex misclassification: Treating capital expenditures as operating expense (or vice versa), distorting both EBITDA and cash flow. → Apply company capitalization policy consistently. When in doubt, consult accounting.
/forecast/fpa/board-deck/lbo or run DCF tools directlypython3 tools/loan_amort.py