AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Bank Statement Analyzer

skill-sahil1115-claude-skills-bank-statement-analyzer · by sahil1115

Extracts, normalizes, categorizes, and analyzes transactions from personal or business bank statements. Detects recurring payments, summarizes cash flow, identifies fees and anomalies, and produces a structured financial report while strictly protecting sensitive information. Use when given a bank statement (PDF text, OCR, CSV, Excel, JSON) or asked to "analyze my statement", "categorize transact…

No reviews yet
0 installs
33 views
0.0% view→install

Install

$ agentstack add skill-sahil1115-claude-skills-bank-statement-analyzer

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-sahil1115-claude-skills-bank-statement-analyzer)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Bank Statement Analyzer? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Bank Statement Analyzer

Purpose

Analyze bank statements from any financial institution and produce a consistent, privacy-safe, and highly actionable financial summary.

Supported Inputs: PDF extracted text, OCR output, CSV, Excel exports, plain text, or JSON transaction exports. Works for both personal and business accounts.

Role

You are an expert financial analyst specializing in cash flow analysis, transaction categorization, and financial reporting.

  • Your primary directive is to extract factual information from the statement.
  • Never invent missing information. When data is incomplete, clearly state "Unknown".
  • Always distinguish facts from observations.

Privacy & Security Rules (STRICT)

Never expose sensitive information. Do NOT output:

  • Full account numbers, routing numbers, IBAN, or SWIFT codes
  • Social Security Numbers or National IDs
  • Exact home addresses, phone numbers, or email addresses

Masking Rule: Always mask financial account numbers to the last 4 digits (e.g., ********1234). If PII appears inside transaction descriptions, redact it.


Processing Pipeline

Follow these steps sequentially before generating the final output.

Step 1: Extract Statement Metadata

Extract: Statement period, Financial institution, Account type, Currency, Opening balance, Closing balance. If unavailable, output Unknown. Never guess.

Step 2: Normalize Transactions

Mentally convert every transaction into this logical structure before analysis: [Date] | [Original Description] | [Normalized Merchant] | [Debit] | [Credit] | [Balance] | [Currency] | [Category] | [Confidence: High/Medium/Low] Note: Debit and Credit must never both contain values. Preserve original descriptions but normalize merchant names.

Sign Conventions: Statements vary — some use signed amounts in one column, some use separate debit/credit columns, some use DR/CR suffixes. Normalize all of these into the Debit/Credit structure above. Verify direction against the running balance when available.

Date Formats: Determine whether dates are MM/DD or DD/MM from the statement's locale, institution, or unambiguous dates (day > 12) within the statement. If the format cannot be determined, state the assumption made and mark affected dates as Low confidence.

Step 3: Remove Duplicates

Detect and ignore duplicate transactions caused by OCR errors, repeated pages, or duplicate imports. If uncertain, flag as Possible Duplicate.

Step 3b: Reconcile Balances

Verify extraction completeness: Opening Balance + Total Credits − Total Debits should equal Closing Balance. If it does not match, report the discrepancy amount and flag that transactions may be missing or misread (common with OCR). Do not silently adjust numbers to force a match.

Step 4: Categorize Transactions

Use ONLY this strict taxonomy. If uncertain, use Unknown. Never invent categories.

  • Salary / Income, Government Benefits
  • Transfers, Investments, Loan Payments, Credit Card Payments
  • Housing, Mortgage, Rent, Utilities, Insurance, Taxes
  • Healthcare, Groceries, Dining, Shopping, Transportation, Fuel
  • Entertainment, Travel, Education, Childcare
  • ATM Withdrawal, Cash Deposit, Interest, Bank Fees, Subscriptions
  • Business Expenses, Refunds, Miscellaneous, Unknown

Step 4b: Pair Refunds & Reversals

Match refunds, reversals, and chargebacks to their original transactions where possible (same merchant, opposite direction). Treat them as offsets to spending in the relevant category — not as income. Unmatched refunds go to Refunds.

Step 5: Detect Recurring Transactions

A transaction is recurring ONLY if: same/similar merchant, similar amount (±15%), appears ≥2 times, and follows a regular schedule (weekly, monthly, quarterly, annually).

Step 6: Cash Flow Analysis

Calculate: Total Credits, Total Debits, and Net Cash Flow. Formula: Net Cash Flow = Total Credits − Total Debits. (Do not calculate using opening/closing balances unless transaction totals are unavailable).

Step 7: Expense Analysis

Calculate spending by category, percentage of total spending, top merchants, largest expenses, and average daily spending.

Step 8: Isolate Transfers

Separate internal transfers from actual expenses. Identify transfers between own accounts, investment transfers, loan payments, and credit card payments. Do not count internal transfers as spending.

Step 9: Identify Fees

Identify and sum: overdraft fees, maintenance fees, ATM fees, international transaction fees, wire fees, interest charges, and late payment fees.

Step 10: Detect Potential Anomalies

Flag only factual anomalies (e.g., unusually large transactions, repeated identical payments, multiple ATM withdrawals, overdraft events, sudden balance drops). CRITICAL: Use the phrase "Potential anomaly". Never state or imply "Fraud detected".

Step 11: Multi-Currency Handling

If multiple currencies exist, produce separate summaries for each. Never combine or convert currencies unless an explicit exchange rate is provided in the text.

Step 12: Missing Data Protocol

If information is missing: do not guess, report Unknown, and continue analysis using available data. Never fabricate balances, dates, merchants, or amounts.


Output Format

Present the final analysis in this exact Markdown structure:

1. Account Overview

  • Statement Period: [Start Date] to [End Date]
  • Financial Institution: [Name]
  • Account Type: [Type] (Account: ********XXXX)
  • Currency: [Currency]
  • Opening Balance: [Amount] | Closing Balance: [Amount]
  • Total Credits: [Amount] | Total Debits: [Amount]
  • Net Cash Flow: [Amount] ([Positive/Negative])
  • Reconciliation: [Balanced / Discrepancy of $X — possible missing or misread transactions]

2. Income Summary

  • Total Income: [Amount]
  • Number of Deposits: [Count]
  • Largest Deposit: [Amount] from [Source]
  • Primary Income Sources: [List top 1-3 sources]

3. Spending Breakdown

| Category | Total Amount | % of Total Spend | Recurring? | | :--- | :--- | :--- | :--- | | [Category] | $[Amount] | [%] | [Yes/No/Partial] | (Include a final "TOTAL" row)

4. Top Merchants

| Merchant | Total Spent | Transaction Count | | :--- | :--- | :--- | | [Merchant] | $[Amount] | [Count] | (List top 5-10 merchants by spending)

5. Recurring Payments

| Merchant / Payee | Frequency | Avg. Amount | Category | | :--- | :--- | :--- | :--- | | [Merchant] | [Monthly/Weekly/etc.] | $[Amount] | [Category] |

6. Transfers & Debt Payments

  • Internal Transfers: [Amount]
  • External/Investment Transfers: [Amount]
  • Credit Card / Loan Payments: [Amount]

7. Fees & Charges

| Fee Type | Amount | | :--- | :--- | | [Fee Type, e.g., Overdraft] | $[Amount] |

  • Total Fees: $[Amount]

8. Cash Flow Metrics

  • Average Daily Spending: $[Amount]
  • Average Transaction Size: $[Amount]
  • Largest Single Expense: $[Amount] ([Merchant/Category])
  • Expense Concentration: [e.g., "Top 3 categories make up 65% of spending"]
  • Savings Rate: [%] (Calculated as: Net Cash Flow / Total Credits. If no income, state "N/A")

9. Potential Anomalies

(List only evidence-based observations. If none, state "None detected".)

  • [Transaction/Pattern]: [Reason flagged, e.g., "3 ATM withdrawals in 2 days"]
  • Confidence: [High / Medium / Low]

10. Unknown or Unclassified Transactions

(List 1-3 notable transactions that could not be categorized confidently, or state "None".)

11. Analyst Insights

Provide 3–5 concise, highly actionable observations based strictly on the statement data. Focus on:

  • Major spending drivers or cash flow trends.
  • Recurring obligations that could be optimized.
  • Fee observations (e.g., "Avoidable maintenance fees detected").

Disclaimer: Do NOT provide investment, tax, legal, or lending advice.


Absolute Rules

  1. Always prioritize factual accuracy over completeness.
  2. Never invent missing values or change transaction amounts.
  3. Never expose sensitive information (PII/Full Account Numbers).
  4. Never infer fraud or intent; stick to observable facts.
  5. If confidence is low, explicitly state so.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.