Skip to main content
CodeOperator12 min read

Excel Models from Plain English

Describe logic in English, get full workbooks with real formulas.

Most people think of Claude Code as a coding tool. Finance professionals are discovering it's the best Excel modeler they've ever worked with.

Real example

Claude Code is better at Excel than anyone I know. It writes actual formulas — =IRR, =XNPV, =SUMPRODUCT — not just values. And it structures the workbook with proper tabs, formatting, and documentation.

@fasinisterra

Finance professional who uses Claude Code daily for financial modeling

How It Works

The workflow is simple: describe what you want in plain English, and Claude Code generates a complete Excel workbook with real formulas — not hardcoded numbers.

1

Describe your model

Tell Claude what you're trying to build — a revenue forecast, LBO model, unit economics calculator, whatever it is.

2

Specify the inputs

List your assumptions: growth rates, margins, cost structure, timing. These become the input cells.

3

Define the outputs

What do you need to see? P&L summary, cash flow waterfall, sensitivity table, charts?

4

Claude builds the workbook

It creates a .xlsx file with proper tabs, real formulas (not values), formatting, and named ranges.

5

Review and iterate

Open the file, check the formulas, adjust assumptions. Ask Claude to modify anything that needs refinement.

Quick check

How does Claude Code build financial models from plain English descriptions?

Driver-Based Revenue Forecast

Start with the most common model every operator needs: a revenue forecast built on actual business drivers.

SaaS Revenue Forecast
Build me an Excel revenue forecast model (.xlsx) for a SaaS business with these specs:

INPUTS TAB:
- Starting MRR: $${mrr}
- Monthly new customer adds: ${newCustomers} (growing ${growthRate}% month-over-month)
- Average contract value: $${acv}/month
- Monthly churn rate: ${churnRate}%
- Expansion revenue: ${expansionRate}% of existing base per month
- Forecast period: 24 months

CALCULATIONS TAB:
- Use real formulas, not hardcoded values
- New MRR = new customers × ACV
- Churned MRR = beginning MRR × churn rate
- Expansion MRR = beginning MRR × expansion rate
- Ending MRR = Beginning MRR + New MRR - Churned MRR + Expansion MRR
- ARR = MRR × 12
- Net Revenue Retention = (Ending MRR - New MRR) / Beginning MRR

SUMMARY TAB:
- Monthly and quarterly rollups
- Key metrics: ARR, net new MRR, NRR, customer count
- Conditional formatting: green for growth, red for contraction

Format all currency cells as accounting format. Include cell comments explaining each formula.

Pro Tip

Always ask Claude to use formulas that reference cells, not hardcoded numbers. Say "use =B5B3, not =1250000.025." This makes the model actually useful — you can change assumptions and everything recalculates.

LBO Model Skeleton

Private equity analysts spend weeks building these. Claude Code builds the skeleton in minutes, with proper formula chains you can audit.

LBO Model Framework
Build an LBO model in Excel (.xlsx) with these parameters:

TRANSACTION TAB:
- Enterprise Value: $${ev}M
- Purchase multiple: ${multiple}x EBITDA
- LTM EBITDA: $${ebitda}M
- Senior debt: ${seniorDebt}x EBITDA at ${seniorRate}% interest
- Sub debt: ${subDebt}x EBITDA at ${subRate}% interest
- Equity check = EV - total debt
- Transaction fees: 2% of EV

OPERATING MODEL TAB (5-year projection):
- Revenue growth: ${revenueGrowth}% Year 1, declining 1% per year
- EBITDA margin: ${margin}% (flat)
- Capex: 3% of revenue
- Working capital: 5% of incremental revenue
- Tax rate: 25%
- Use =EBITDA-Capex-Taxes-WC change for free cash flow

DEBT SCHEDULE TAB:
- Mandatory amortization: 5% of original senior debt per year
- Cash sweep: 50% of excess cash flow to senior debt
- Use MIN() formulas for debt paydown (can't pay more than outstanding)

RETURNS TAB:
- Exit at same multiple as entry
- Calculate equity value at exit for each year (Year 3-5)
- Use =IRR() for equity returns
- Use =XIRR() with actual dates
- MOIC = exit equity / entry equity

Include proper formula chains — every cell should trace back to inputs. No circular references.

Warning

Always audit the formula chains in any generated financial model. Claude gets the structure right, but you should verify the logic matches your deal terms. Check cell references in the debt waterfall especially — that's where errors hide.

Operating Model with Department-Level Detail

When you need more than a top-line forecast — full P&L with headcount planning and cost buildup.

Department-Level Operating Model
Create a detailed operating model in Excel (.xlsx):

HEADCOUNT TAB:
- Departments: Engineering, Sales, Marketing, CS, G&A
- For each: current headcount, planned hires by quarter, average fully-loaded cost per head
- Use =SUMPRODUCT(headcount, cost_per_head) for total department cost
- Include hiring ramp (new hires at 50% productivity for first quarter)

REVENUE TAB:
- Self-serve: ${selfServe} customers × $${selfServeACV}/mo, growing ${selfServeGrowth}%/mo
- Sales-led: ${salesLed} customers × $${salesLedACV}/mo, new deals = reps × quota attainment
- Quota per rep: $${quota}/quarter, attainment: ${attainment}%
- Churn: ${churn}% monthly for self-serve, ${enterpriseChurn}% for sales-led

EXPENSE TAB:
- Hosting/infra: ${hostingPct}% of revenue (use formula, not value)
- Marketing spend: $${marketingSpend}/month, growing 5% quarterly
- All department costs pulled from headcount tab via cell references
- Benefits load: 25% on top of base salary

P&L SUMMARY TAB:
- Revenue, COGS, Gross Profit, Gross Margin %
- OpEx by department
- EBITDA, EBITDA margin
- Quarterly and annual columns
- Use =IFERROR() wrappers on all division formulas

Format: accounting format for dollars, percentage format for margins, conditional formatting for negative values.

Formula Debugging

You don't just build models — you fix broken ones. Claude Code excels at debugging Excel logic.

Debug a Broken Formula
I have an Excel model with a circular reference I can't find. Here's the structure:

Tab: Revenue
- B5: =B4*(1+Assumptions!C3) -- MRR growth
- B6: =B5*12 -- ARR

Tab: Expenses
- C10: =Revenue!B5*0.15 -- hosting costs
- C15: =SUM(C10:C14) -- total COGS
- C20: =Revenue!B5-C15 -- gross profit

Tab: Assumptions
- C3: =IF(Expenses!C20>0, 0.05, 0.02) -- growth rate depends on profitability

The circular reference is: Revenue depends on Assumptions, which depends on Expenses, which depends on Revenue.

How do I restructure this to eliminate the circular reference while keeping the logic that growth rate should depend on profitability?
Before
Circular reference: Revenue → Assumptions → Expenses → Revenue. Excel either errors out or uses iterative calculation (unreliable).

SUMPRODUCT for Complex Lookups

SUMPRODUCT is the Swiss Army knife of Excel. Claude writes these formulas faster than you can explain the criteria.

Multi-Criteria Revenue Calculation
Write a SUMPRODUCT formula for this scenario:

I have a data table in Sheet1 with columns:
- A: Sales Rep Name
- B: Region (East, West, Central)
- C: Deal Stage (Won, Lost, Pipeline)
- D: Deal Value
- E: Close Date

I need formulas for:
1. Total won deals for the East region
2. Total pipeline value for rep "${repName}" in Q1 2026
3. Count of won deals over $${threshold} in the West region
4. Average deal size for won deals by region (one formula I can drag across)

Use SUMPRODUCT, not SUMIFS. Show me the formulas with explanations of each component.

XNPV and IRR for Investment Analysis

When you need proper time-value-of-money calculations, not the simplified versions.

Investment Return Analysis
Build an investment analysis workbook (.xlsx) for a real estate or project investment:

CASH FLOWS TAB:
- Initial investment: -$${investment} on ${startDate}
- Monthly cash flows for ${months} months (list provided, or generate realistic ones)
- Exit/sale proceeds: $${exitValue} at end of period
- All dates in column A, cash flows in column B

RETURNS TAB:
- =IRR() on the cash flow series
- =XIRR() using actual dates (more accurate for irregular timing)
- =NPV() at discount rate of ${discountRate}%
- =XNPV() using actual dates at same discount rate
- Include a note explaining when to use IRR vs XIRR

SENSITIVITY TAB:
- Data table varying exit value (+/- 20% in 5% increments) against discount rate (8%, 10%, 12%, 15%)
- Use Excel's Data Table feature (What-If Analysis)
- Conditional formatting: green for positive NPV, red for negative

Show the formula for each cell, not just the result.

Multi-Turn Refinement

The real power is iterative. Build the skeleton, then refine in conversation.

Scenario

You built a revenue model but your CFO wants to see revenue recognition timing — some contracts are annual prepaid, some are monthly, and you need to show recognized vs. deferred revenue.

Scenario

Your model works but the board wants to see a bridge chart showing the components of MRR change month-over-month — new, expansion, contraction, and churned.

Tips for Better Financial Models

Pro Tip

Tell Claude to use named ranges for key assumptions. Instead of =B5C3, you get =starting_mrrgrowth_rate. Makes the model self-documenting and dramatically easier to audit.

Note

Claude Code generates .xlsx files using the openpyxl Python library. It handles formulas, formatting, conditional formatting, named ranges, and multiple tabs. It does not generate macros (VBA) by default — if you need macros, ask explicitly and review the code.

Warning

Always open the generated file and spot-check formulas before distributing. Claude gets the structure and formula logic right in the vast majority of cases, but a misplaced cell reference can cascade through the entire model. Trust but verify.

What to Build Next

Start with one model you actually need this week:

  • If you're fundraising: Three-statement model with projections
  • If you're budgeting: Department-level operating model with headcount planning
  • If you're evaluating a deal: LBO or DCF with sensitivity tables
  • If you're reporting: Monthly P&L with variance analysis (see the Monthly Reporting playbook)

Describe the logic in English. Let Claude handle the formulas.