Documents

Excel Model

Try it

Build a real, formula-driven Excel (.xlsx) model — not a static table. Use when asked to build an Excel model, a financial model, a budget/forecast spreadshe...

What it does

Build a real, formula-driven Excel (.xlsx) model — not a static table. Use when asked to build an Excel model, a financial model, a budget/forecast spreadsheet, or any .xlsx with live formulas a user can edit. Produces an actual .xlsx file via a generated openpyxl script: an inputs/assumptions sheet, calculation sheets with real cell formulas, and formatting — so changing an input recalculates the model. Requires a code-execution environment (Claude Code, the API code tool, or Claude.ai).

The skill document

Excel Model Skill

A model is only useful if it's live — change an assumption and everything recalculates. A markdown table can't do that; a real .xlsx with cell formulas can. This skill builds an actual Excel workbook by writing and running an openpyxl script: a clean inputs sheet, calculation sheets that reference those inputs with real = formulas, and sensible formatting — so the user gets a file they can drive, not a snapshot.

Environment: this produces a binary file, so it needs a place to run code — Claude Code, the Anthropic API code-execution tool, or Claude.ai (with the analysis/code tool). In the browser playground (no code execution), use the markdown output as the spec instead.

Required Inputs

Ask for these only if they aren't already provided:

  • What the model is — financial model, budget, forecast, pricing model, scenario planner, etc.
  • The inputs/assumptions — the driver variables (and rough values) the user will change.
  • The outputs — what it should compute (revenue, burn, margins, totals, a P&L, etc.).
  • Structure — periods (months/years), tiers/segments, and any required layout.

Process

  1. Design before coding — lay out the sheets (Inputs · Calculations · Output/Summary), and which cells are inputs vs. formulas. Confirm the calculation logic with the user if non-trivial.
  2. Write an openpyxl script that:
    • Puts all driver assumptions on an Inputs sheet (one source of truth), labelled and formatted.
    • Builds calculation cells as real formulas referencing the input cells (e.g. =Inputs!B2*Inputs!B3), never hard-coded results — so the model is live.
    • Adds formatting: headers, number/currency/percent formats, column widths, and light cell styling for readability.
    • Saves to a clearly named .xlsx.
  3. Run it, then state the formulas used and tell the user which cells to change to flex the model.

Output Format

  • The generated .xlsx file (the deliverable).
  • A short README of the model: the sheets, the input cells to change, the key formulas in plain English, and any assumptions.

Quality Checks

  • Calculations are live cell formulas, not pasted static values
  • All driver assumptions live on one Inputs sheet and are referenced, not duplicated
  • Numbers are formatted (currency/percent/thousands) and sheets are readable
  • The script runs cleanly and the file opens in Excel/Sheets/Numbers
  • The user is told exactly which cells to change to drive the model

Anti-Patterns

  • Do not write computed results as static numbers — the whole point is that inputs recalculate
  • Do not hard-code an assumption inside a formula — put it on the Inputs sheet and reference it
  • Do not scatter inputs across sheets — one assumptions sheet, single source of truth
  • Do not skip formatting — an unformatted grid of numbers is hard to trust or use
  • Do not claim a file was produced if there was no code execution — fall back to a clear spec instead

Based On

Financial-modelling best practice (separate inputs from calculations, formula-driven, no hard-codes) implemented with openpyxl.

Programmatic Helper

This skill ships scripts/xlsx_tool.py — a zero-dependency (stdlib zip+XML) tool that produces real .xlsx files, so the model you design can be delivered as a working workbook, not a markdown table:

# Build a workbook from JSON (numbers stay numbers, "=B2*C2" becomes a live formula)
python3 scripts/xlsx_tool.py create model.xlsx --data '{"Model": [["Item","Qty","Price","Total"],["Widget",4,9.5,"=B2*C2"]]}'

# Fill {{placeholders}} in an existing template workbook
python3 scripts/xlsx_tool.py fill template.xlsx out.xlsx --values '{"month":"July","revenue":21000}'

Design the model first (per this skill), then emit the JSON and run create. Honest limits: default styling only, no charts — for formatted finals, open the generated file and style it, or use the playground's Excel export.

Related skills

Generate XLSX spreadsheets from natural language prompts — financial models, budgets, trackers, and analysis with formulas and charts.

184 installs6 stars

Build auditable, formula-driven Excel financial models with controlled assumptions, linked statements, and reviewed outputs.

19 installs

Build, read, and edit .xlsx workbooks through a CLI with enforced rules for formulas, formatting, and financial-model standards.

24 installs

Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files into proper spreadsheets.

2 installs

Convert Excel (.xlsx) sign-in sheets and rosters to print-ready A4 PDFs with Chinese font support. Use when the user needs to (1) convert an Excel table/rost...

Turn financial model outputs into a clear written narrative. Use when asked to write a financial narrative, explain a financial model, summarise a P&L, or tr...