runbookify
← All plans
Accounting & Finance / Cash Flow & Treasury Management

Bank Fee Analyzer

Build an internal tool that reads your bank account-analysis statements, normalizes the wildly inconsistent fee names, compares every charge to your negotiated fee schedule, flags overcharges and brand-new fees, trends total fees over time, and drafts the dispute email — with the analyst approving which charges to actually dispute.

BeginnerAn afternoonBuilds onNext.js (App Router) on VercelSupabase (Postgres, Storage, Auth + RLS)Resend (dispute-email drafts and alerts)
What you'll build

A login-protected tool where you import account-analysis statements and your negotiated fee schedule, the agent categorizes every fee and compares it to the agreed rate, flags overcharges and never-before-seen fees, trends total fees month over month, the analyst reviews the flags and approves which to dispute, and you export a clean fee-analysis report plus a dispute list — and a drafted dispute email — with a full audit trail.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A free Vercel account
  • A free Supabase account
  • A free Resend account (and a sender address you can use)
  • A few real bank account-analysis statements (CSV or PDF)
  • Your negotiated fee schedule (contract proforma, pricing sheet, or spreadsheet)
  • Claude Code or any AI coding agent

The problem this kills

Your bank sends an account-analysis statement every month. It lists dozens of charges — wire fees, ACH origination, lockbox items, positive-pay, account maintenance, FDIC pass-through, controlled disbursement — each under a name the bank invented, in a layout that changes just enough to be annoying. Somewhere in your files is the fee schedule you negotiated, where those exact services were promised at specific rates. Almost nobody reconciles the two.

So banks overcharge. Not maliciously, usually — a rate that was supposed to drop after the renegotiation never got loaded, a "per item" charge creeps up a few cents, a brand-new line item appears that nobody agreed to. Across hundreds of line items and several accounts, it adds up to real money leaking out every single month. And it's invisible, because checking it by hand means cross-referencing a 6-page PDF against a contract proforma while the names don't even match — "Wire Transfer Out — Domestic" on the statement versus "Outgoing Domestic Wire" in the schedule.

This tool turns that dreaded, skipped reconciliation into a two-minute review. It reads the statement, speaks the bank's many dialects for the same service, compares every charge to what you agreed to pay, and hands you a short list of exactly what's wrong and how much it's costing you — so you can get the money back.

What you'll build

A small internal web app, just for your treasury and finance team, that:

  • Imports your bank account-analysis statements from CSV or PDF, and your negotiated fee schedule from a spreadsheet.
  • Normalizes the messy fee naming — maps every variant the bank uses ("Outgoing Wire — Dom", "Wire Out Domestic", "DOM WIRE TRANS") to a single canonical service, using a dictionary you can grow over time.
  • Categorizes each fee (wires, ACH, lockbox, depository, account services, fraud/positive-pay, and so on).
  • Compares each charge to your agreed rate and computes the expected amount versus what you were actually billed.
  • Flags overcharges (billed above the agreed rate), rate mismatches, and brand-new fees that aren't in your schedule at all.
  • Trends total fees over time so you can see costs creeping up across months and accounts.
  • Lets the analyst review every flag and approve which ones to dispute — nothing gets disputed automatically.
  • Drafts the dispute email (via Resend) to your banker, citing the account, statement period, fee, agreed rate, and overcharged amount.
  • Dedupes on statement + fee line so re-importing the same statement can't double-count anything.
  • Exports a clean fee-analysis report and a dispute list as CSVs.

What's inside the Implementation Plan

The plan is a single markdown file you paste into Claude Code (a free AI coding agent). It walks the agent through building the whole tool step by step, and every step ends with a ready-to-paste prompt.

The most important part: the plan opens by interviewing you about your business. Before it writes a line of code, the agent asks which banks and accounts you have, how your statements actually arrive (CSV, PDF, portal, EDI 822), how your fee schedule is documented and how fees are priced (per-item, per-$1,000 of balance, basis points, tiered), the real naming variations your bank uses for the same service, your typical and peak line-item volumes, your exact flag-and-dispute rules, and your messy edge cases (waived fees, reversals and credits, FX on cross-border charges, earnings-credit offsets, partial-month proration). It reads a short tailored spec back to you, you confirm it, and only then does it build — so you get a tool shaped to your bank and your contract, not a generic template you have to fight.

Inside you'll find:

  • The discovery interview and how the agent turns your answers into the data model and the fee-naming dictionary.
  • The full build: database, login, the fee-schedule import, the statement import with duplicate guards, the normalization step, the rate-comparison and flagging engine, the trend view, the review-and-approve screen, and the drafted dispute email.
  • The hard human-in-the-loop gate so no dispute is raised without an analyst's sign-off.
  • Verification steps to prove it works, plus the always-on CSV-export path so the tool is fully usable today — no bank API required.

The governance it includes (this is the point)

This is a treasury tool that touches money you're trying to claw back, so the controls aren't optional. The plan builds in:

  • Login so only your team can open it.
  • Row-level security so you only ever see your own organization's accounts, statements, and fees.
  • A complete audit trail — every import, every fee normalized, every flag, every approval, and every dispute drafted is recorded with who and when.
  • A hard human-in-the-loop gate — the AI flags and drafts, but a real analyst reviews each flagged charge and approves which ones become disputes; nothing is disputed automatically.
  • Duplicate guards so re-importing the same statement (or the same fee line) can't double-count a charge or raise the same dispute twice.

Who it's for

Treasury analysts, cash managers, controllers, and ops/BPM folks who own banking costs and suspect — correctly — that fees are leaking but have never had the time to reconcile statements against the contract line by line. You don't need to write code. You need a couple of recent account-analysis statements, your negotiated fee schedule, and an afternoon.

You've got this — paste the first prompt and let the agent interview you.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.