/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 financial-model integrity checks like BS balance, cash tie-out, and logic sanity). Triggers on "audit this sheet", "check my
$ npx -y skills add anthropics/financial-services --skill audit-xls --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/audit-xls
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
audit-xls.SKILL.mdname: 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 downstrea
Read more
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 downstrea
Reference agents, skills, and data connectors for the financial-services workflows we see most — investment banking, equity research, private equity, and wealth management.
Other skills on financial-services.
- /verify
Verify changes to the claude-for-msft-365-install admin scripts and commands by driving them against an isolated fake $HOME.
Open skill - /earnings-analysis
Create professional equity research earnings update reports (8-12 pages, 3,000-5,000 words) analyzing quarterly results for companies already under coverage. Fast-turnaround format focusing on beat/miss analysis, key metrics, updated estimates, and revised thesis. Includes 1-3
Open skill - /earnings-preview
Build pre-earnings analysis with estimate models, scenario frameworks, and key metrics to watch. Use before a company reports quarterly earnings to prepare positioning notes, set up bull/bear scenarios, and identify what will move the stock. Triggers on "earnings preview", "what
Open skill - /model-update
Update financial models with new data — quarterly earnings, management guidance, macro changes, or revised assumptions. Adjusts estimates, recalculates valuation, and flags material changes. Use after earnings, guidance updates, or when assumptions need refreshing. Triggers on
Open skill - /morning-note
Draft concise morning meeting notes summarizing overnight developments, trade ideas, and key events for coverage stocks. Designed for the 7am morning meeting format — tight, opinionated, actionable. Triggers on "morning note", "morning meeting", "what happened overnight", "trade
Open skill - /xlsx-author
Produce a .xlsx file on disk (headless) instead of driving a live Excel workbook — for managed-agent sessions with no open Office app.
Open skill

