name: audit-xls
description: Audit a spreadsheet for formula accuracy, errors, and common mistakes. Scopes to a selected range, a single sheet, or the entire model (including financial-model integrity checks like BS balance, cash tie-out, and logic sanity). Triggers on "audit this sheet", "check my formulas", "find formula errors", "QA this spreadsheet", "sanity check this", "debug model", "model check", "model won't balance", "something's off in my model", "model review".
Audit Spreadsheet
Audit formulas and data for accuracy and mistakes. Scope determines depth — from quick formula checks on a selection up to full financial-model integrity audits.
Step 1: Determine scope
If the user already gave a scope, use it. Otherwise ask them:
What scope do you want me to audit?
- selection — just the currently selected range
- sheet — the current active sheet only
- model — the whole workbook, including financial-model integrity checks (BS balance, cash tie-out, roll-forwards, logic sanity)
The model scope is the deepest — use it for DCF, LBO, 3-statement, merger, comps, or any integrated financial model before sending to a client or IC.
Step 2: Formula-level checks (ALL scopes)
Run these regardless of scope:
Check
What to look for
Formula errors
#REF!,
#VALUE!,
#N/A,
#DIV/0!,
#NAME?
Hardcodes inside formulas
=A1*1.05 — the
1.05 should be a cell reference
Inconsistent formulas
A formula that breaks the pattern of its neighbors in a row/column
Off-by-one ranges
SUM/
AVERAGE that misses the first or last row
Pasted-over formulas
Cell that looks like a formula but is actually a hardcoded value
Circular references
Intentional or accidental
Broken cross-sheet links
References to cells that moved or were deleted
Unit/scale mismatches
Thousands mixed with millions, % stored as whole numbers
Hidden rows/tabs
Could contain overrides or stale calculations
Step 3: Model-integrity checks (MODEL scope only)
If scope is model, identify the model type (DCF / LBO / 3-statement / merger / comps / custom) and run the appropriate integrity checks below.
3a. Structural review
Check
What to look for
Input/formula separation
Are inputs clearly separated from calculations?
Color convention
Blue=input, black=formula, green=link — or whatever the model uses, applied consistently?
Tab flow
Logical order (Assumptions → IS → BS → CF → Valuation)?
Date headers
Consistent across all tabs?
Units
Consistent (thousands vs millions vs actuals)?
3b. Balance Sheet
Check
Test
BS balances
Total Assets = Total Liabilities + Equity (every period)
RE rollforward
Prior RE + Net Income − Dividends = Current RE
Goodwill/intangibles
Flow from acquisition assumptions (if M&A)
If BS doesn't balance, quantify the gap per period and trace where it breaks — nothing else matters until this is fixed.
3c. Cash Flow Statement
Check
Test
Cash tie-out
CF Ending Cash = BS Cash (every period)
CF sums
CFO + CFI + CFF = Δ Cash
D&A match
D&A on CF = D&A on IS
CapEx match
CapEx on CF matches PP&E rollforward on BS
WC changes
Signs match BS movements (ΔAR, ΔAP, ΔInventory)
3d. Income Statement
Check
Test
Revenue build
Ties to segment/product detail
Tax
Tax expense = Pre-tax income × tax rate (allow for deferred tax adj)
Share count
Ties to dilution schedule (options, converts, buybacks)
3e. Circular references
- Interest → debt balance → cash → interest is a common intentional circ in LBO/3-stmt models
- If intentional: verify iteration toggle exists and works
- If unintentional: trace the loop and flag how to break it
3f. Logic & reasonableness
Check
Flag if
Growth rates
>100% revenue growth without explanation
Margins
Outside industry norms
Terminal value dominance
TV > ~75% of DCF EV (yellow flag)
Hockey-stick
Projections ramp unrealistically in out-years
Compounding
EBITDA compounds to absurd $ by Year 10
Edge cases
Model breaks at 0% or negative growth, negative EBITDA, leverage goes negative
3g. Model-type-specific bugs
DCF:
- Discount rate applied to wrong period (mid-year vs end-of-year)
- Terminal value not discounted back
- WACC uses book values instead of market values
- FCF includes interest expense (should be unlevered)
- Tax shield double-counted
LBO:
- Debt paydown doesn't match cash sweep mechanics
- PIK interest not accruing to principal
- Management rollover not reflected in returns
- Exit multiple applied to wrong EBITDA (LTM vs NTM)
- Fees/expenses not deducted from Day 1 equity
Merger:
- Accretion/dilution uses wrong share count (pre- vs post-deal)
- Synergies not phased in
- Purchase price allocation doesn't balance
- Foregone interest on cash not included
- Transaction fees not in sources & uses
3-statement:
- Working capital changes have wrong sign
- Depreciation doesn't match PP&E schedule
- Debt maturity schedule doesn't match principal payments
- Dividends exceed net income without explanation
Step 4: Report
Output a findings table:
#
Sheet
Cell/Range
Severity
Category
Issue
Suggested Fix
Severity:
- Critical — wrong output (BS doesn't balance, formula broken, cash doesn't tie)
- Warning — risky (hardcodes, inconsistent formulas, edge-case failures)
- Info — style/best-practice (color coding, layout, naming)
For model scope, prepend a summary line:
Model type: [DCF/LBO/3-stmt/...] — Overall: [Clean / Minor Issues / Major Issues] — [N] critical, [N] warnings, [N] info
Don't change anything without asking — report first, fix on request.
Notes
- BS balance first — if it doesn't balance, everything downstream is suspect
- Hardcoded overrides are the #1 source of silent bugs — search aggressively
- Sign convention errors (positive vs negative for cash outflows) are extremely common
- If the model uses VBA macros, note any macro-driven calculations that can't be audited from formulas alone