Excel Model Audit Skill

Before a model goes to a lender, client or board, run 12 checks that find the classic spreadsheet errors, then have your agent write the review note. Read-only: it never edits your file.

Excel Model Audit Skill cover

What it checks

CheckSeverityExample it catches
broken_refhigh=MAX(0,#REF!*Inputs!$B$7) after a deleted row
error_valuehigha cell showing #DIV/0! / #N/A in the last saved calculation
hardcode_in_formula_rowhigh151200 typed over the formula in the middle of the revenue row
circularhighnet income feeding a total that feeds net income (strongly connected cells, Tarjan)
external_linkhigh=[Budget2025.xlsx]Inputs!B2
broken_namehigha defined name pointing at a deleted sheet or #REF!
inconsistent_formulahigh=D2*Inputs!$B$4 in E3, where every other cell in the row points at its own column (=E2*...)
constant_in_formulamedium=D5*1.03 (growth typed into a formula instead of the inputs sheet)
sum_misses_adjacentmedium=SUM(B2:B5) with a number in B6 right above the total
hidden_sheet_usedmediumformulas reading a hidden or very-hidden sheet
hidden_cells_usedmediumformulas reading hidden rows or columns
volatileinfoINDIRECT, OFFSET, NOW, TODAY, RAND

Tested

./run_tests.sh builds a clean 5-year model and 12 copies, each with one planted error, and checks that:

  • the clean model gets zero findings
  • each copy gets exactly the expected findings, at the expected cell, and nothing else
  • a workbook recalculated and saved by LibreOffice reports its five #DIV/0! cells from the saved values
  • the CLI exit codes are 0/1/2, the report and JSON are written, and the workbook file is byte-for-byte unchanged afterwards
  • 24 tests, run on Python 3.10 and 3.13 with openpyxl 3.1.5.

What you get

  • xlaudit/: the checker (refs.py formula tokenising, audit.py checks, __main__.py CLI)
  • skills/excel-model-audit/SKILL.md: drop into ~/.claude/skills/, .agents/skills/ or your agent’s skills folder
  • examples/build_model.py: builds the clean model and the 12 mutants
  • tests/: the test suite and the LibreOffice-recalculated fixture
Real audit report and passing tests from the example model

Quick start

pip install -r requirements.txt        # openpyxl, the only dependency
python -m xlaudit model.xlsx --out audit.md --json audit.json

Honest limits

  • It does not calculate. Error values are read from the last saved calculation. A file written by a script (not saved by Excel or LibreOffice) has none, and the report says so.
  • The checks are heuristics: they find things worth asking about, not proven mistakes. Expect a few findings that turn out to be deliberate; use --ignore and --allow for those.
  • It does not read VBA, Power Query, pivot caches, charts, data validation or conditional formatting.
  • Password-protected or encrypted workbooks can't be opened (exit 2). .xls and .ods need saving as .xlsx first.
  • It does not prove a model is right. "No findings" means none of these checks fired.

Requirements

Python 3.9+ and openpyxl (tested on 3.10 and 3.13 with openpyxl 3.1.5). Not affiliated with Microsoft or Anthropic.

Format and license

Zip, 25 KB, v1.0, 12 files. Use and modify it for yourself and for your clients; no resale or redistribution of the kit itself. Full terms in LICENSE.txt.

FAQ

Does it work with Claude for Excel or Copilot?
It’s separate: your coding agent (Claude Code, Codex, Cursor) runs it on the file. Use it alongside any Excel add-in.
Does it change my workbook?
No. It’s read-only (tested: the file is byte-for-byte unchanged).
.xls or Google Sheets?
Save or download as .xlsx first.
Does my file get uploaded?
No. It runs on your machine.
How do I get the files?
Right after payment, Stripe’s confirmation page shows your download link.
Refunds?
Email hello@youraitools.co within 14 days if it doesn’t work and we can’t fix it.
Can I pay with crypto?
Yes. Pay the same price in USDC or USDT on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana from the "Pay with crypto" button, with no account or KYC. We check the payment on-chain and show your download links as soon as it confirms.

Get Excel Model Audit Skill

Find #REF!, numbers typed over formulas, inconsistent formulas, SUM gaps and circular refs before a model ships. Read-only, runs locally.

Save with a bundle

Pairs well with

Download$29

Stripe Payout Reconciliation Skill

Reconcile Stripe payouts to your bank: missing deposits, disputes, double charges and fees, plus proposed entries. Offline CLI + agent skill. $29.

View Stripe Payout Reconciliation Skill
Download$29

Shopify Payments Payout Reconciliation Skill

Reconcile Shopify Payments payouts to your bank: missing deposits, disputes, double charges and fees, plus proposed entries. Offline CLI + agent skill. $29.

View Shopify Payments Payout Reconciliation Skill
Download$19

PayPal Payout Reconciliation Skill

Reconcile PayPal payouts to your bank: missing deposits, disputes, double charges and fees, plus proposed entries. Offline CLI + agent skill. $19.

View PayPal Payout Reconciliation Skill

Related