---
title: "Fee Ledger: Track Bank Fees and Catch the Creep"
description: "Turn on the Fee Ledger to classify bank fee lines from your transactions and get alerted when a month’s fees creep above your recent average."
section: "Enrichments"
canonical: "https://banksync.io/docs/enrichments/fee-ledger"
---

The **Fee Ledger** watches the money your bank quietly takes back: it recognizes fee lines in your syncing transactions, keeps a running monthly fee total, and alerts you when a month's fees **creep** meaningfully above your recent average. Fees are the classic slow leak — each line too small to notice, the trend very much worth noticing.

You can create **as many Fee Ledgers as you need** — each instance targets its own set of transaction feeds via its Dependencies tab, so a tight creep threshold on your operating accounts can sit alongside a laxer one covering everything else. Each instance alerts and cools down independently.

Like the other Watch enrichments that read totals, a Fee Ledger has **no data type** of its own: attach any feeds you like and the fee lines come from whichever of them carry transactions.

## What counts as a fee

Classification is deterministic — a curated list of fee shapes matched against the transaction description, not a guess:

- **Overdraft** fees
- **Monthly service** fees
- **ATM** fees
- **Wire** fees
- **FX / foreign transaction** fees
- **Interchange** fees
- Other lines that explicitly say "fee"

**Interest is never counted as a fee** — even when the line also mentions a fee, interest is excluded first. Interest is a cost of borrowing; fees are a cost of banking; mixing them would make both numbers useless.

> **Precision over recall, on purpose:** 'The list is deliberately conservative: a false "fee" label erodes trust in the ledger faster than a missed one. If a genuine fee slips through because your bank words it unusually, the monthly total under-counts slightly — it does not mislabel your ordinary spending as fees.'

Fee **reversals net within the month**: when the bank refunds a fee, the refund subtracts from that month's total, so a charged-and-refunded fee does not inflate the trend.

## The creep alert

Once there are **three full months of tracked fee history**, each month's running total is compared to the **average of the trailing three months**. When the current month exceeds that average by more than your threshold (default **20%**, configurable 1–500%), the creep alert fires to your configured destinations — email, Slack, or webhook, the same channels every Watch enrichment uses. Repeat alerts for the same creep are held back by a 24-hour cooldown.

Until those three months of history exist, the check stays silent — a workspace without fee history cannot "creep", and silence beats noise.

> **Seed the history with a backfill:** 'Fee totals accrue to the month each fee occurred, not the day it synced. A backfill therefore fills in past months (up to 13 months back) — run one after enabling the Fee Ledger and the three-month baseline can exist on day one instead of a quarter from now.'

## How it runs

Fee lines are classified and totalled during your syncs; the creep comparison itself is evaluated by BankSync on a schedule, independent of your syncs. Like every Watch enrichment, the Fee Ledger never modifies records — a transaction recognized as a fee still syncs to your destination exactly as it arrived.

## Setting it up

1. **Create it** — On the Enrichments tab, click "Add an enrichment" and choose Fee Ledger in the Watch
   group.
2. **Set the creep threshold** — Keep the 20% default to start. Raise it if your fee volume is naturally lumpy; lower it if
   you want to hear about smaller drifts.
3. **Choose where alerts go** — Email recipients, a Slack incoming webhook, or a webhook endpoint.
4. **Target the feeds** — In the Dependencies tab, tick the transaction feeds whose fees should count, then flip the
   switch to Enabled — and consider a backfill to seed the baseline.

![The Fee Ledger configuration form: a What counts as a fee explainer card listing bank service charges, overdraft and NSF charges, wire and FX fees, and ATM surcharges matched by a curated pattern list, a Fee creep alert reading alert when a month's fees run 20 percent above the trailing 3-month average, and an Email alert to section with one workspace member selected.](https://cdn.banksync.io/screenshots/enrichments/fees-form.696d5c5fe1be11ea.png "The Fee Ledger: what counts as a fee, the 20% creep threshold, and the alert recipients.")

## Related guides

- [Budgets](/docs/enrichments/budgets): general-purpose threshold alerts on totals — a Budget on a "Fees" category is the hand-rolled alternative.
- [Digests](/docs/enrichments/digests): the scheduled summary built from the same monthly totals.
- [Creating Enrichments](/docs/enrichments/creating-enrichments): the shared enrichment workflow.
