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
<!-- truncated -->