audit-xls

Audit a spreadsheet for formula accuracy, errors, and common mistakes. Scopes to a selected range, a single sheet, or the entire model (including…

INSTALLATION
npx skills add https://github.com/anthropics/financial-services-plugins --skill audit-xls
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

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
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card